Skip to content

Commit 3fcbd4e

Browse files
committed
feat(run_loop): add interrupt event emissions
1 parent b0bd442 commit 3fcbd4e

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

src/run_loop.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ pub async fn run(mut config: Config) -> Result<Outcome> {
139139
let streaming_result = match run_result {
140140
RunResult::Interrupted => {
141141
formatter::print_interrupted(config.iteration, &task_id, &task.title);
142+
formatter::emit_event_info(
143+
"interrupt",
144+
&format!("interrupted \u{2014} {} \"{}\"", task.id, task.title),
145+
);
142146

143147
// Release claim first so interrupt follow-up failures do not strand task state.
144148
dag::release_claim(&db, &task_id).context("Failed to release task claim")?;
@@ -166,6 +170,10 @@ pub async fn run(mut config: Config) -> Result<Outcome> {
166170
&task_id,
167171
&format!("User feedback (iteration {}): {}", config.iteration, fb),
168172
)?;
173+
formatter::emit_event_info(
174+
"interrupt",
175+
&format!("feedback appended to {}", task_id),
176+
);
169177
}
170178

171179
// Journal entry for the interrupted iteration
@@ -190,12 +198,17 @@ pub async fn run(mut config: Config) -> Result<Outcome> {
190198

191199
// Ask whether to continue
192200
if crate::interrupt::should_continue()? {
201+
formatter::emit_event_info(
202+
"interrupt",
203+
"continuing \u{2014} user chose to proceed",
204+
);
193205
formatter::print_separator();
194206
config = config.next_iteration();
195207
formatter::emit_iteration_divider(config.iteration);
196208
formatter::print_iteration_info(&config);
197209
continue;
198210
} else {
211+
formatter::emit_event_info("interrupt", "stopping \u{2014} user chose to halt");
199212
return Ok(Outcome::Interrupted);
200213
}
201214
}

0 commit comments

Comments
 (0)