Merge branch 'codex/dependable-question-journey' into codex/dependable-qualification-checkpoint

* codex/dependable-question-journey:
  style: format runner continuation regression sources
This commit is contained in:
Dotta committed 2026-10-21 10:10:21 -05:00
commit 2db949c26e
2 files changed
+33 -10

No files matched your search

@@ -981,10 +981,23 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
}
continue;
}
if message.get("method").is_none() && message.get("id") == Some(&json!("terminal-result-request")) {
if message.get("method").is_none()
&& message.get("id") == Some(&json!("terminal-result-request"))
{
let success = message.pointer("/result/success") == Some(&json!(true));
log_call(call_log.as_deref(), if success { "terminal-result:accepted" } else { "terminal-result:rejected" })?;
finish_turn(&state_path, &mut state, if success { "completed" } else { "failed" })?;
log_call(
call_log.as_deref(),
if success {
"terminal-result:accepted"
} else {
"terminal-result:rejected"
},
)?;
finish_turn(
&state_path,
&mut state,
if success { "completed" } else { "failed" },
)?;
continue;
}
if message.get("method").is_none() && message.get("id") == Some(&json!("tool-request-1")) {
@@ -5313,11 +5313,15 @@ mod tests {
#[test]
fn terminal_tool_authority_preserves_controller_resolved_workspace_yields() {
for continuation in [None, Some(Value::Null), Some(json!({
"kind": "same_agent",
"summary": "Continue the prepared repository.",
"idempotencyKey": "repository:task:receipt:run"
}))] {
for continuation in [
None,
Some(Value::Null),
Some(json!({
"kind": "same_agent",
"summary": "Continue the prepared repository.",
"idempotencyKey": "repository:task:receipt:run"
})),
] {
let mut state = opencode_result_state();
let mut result = valid_opencode_result();
result["reportedWorkDisposition"] = json!("yielded");
@@ -5325,8 +5329,14 @@ mod tests {
result["continuation"] = value;
}
admit_terminal_tool_authority(&mut state, "paperclip_finish", &result, false).unwrap();
assert_eq!(state.active_provider_result_disposition.as_deref(), Some("yielded"));
assert_eq!(state.active_provider_result_fingerprint.as_deref(), Some(semantic_value_digest(&result).as_str()));
assert_eq!(
state.active_provider_result_disposition.as_deref(),
Some("yielded")
);
assert_eq!(
state.active_provider_result_fingerprint.as_deref(),
Some(semantic_value_digest(&result).as_str())
);
assert!(state.validate().is_ok());
}
}