mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-24 10:13:11 +02:00
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:
commit
2db949c26e
2 files changed
+33
-10
No files matched your search
+16
-3
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user