fix: complete state-contract naming cleanup

This commit is contained in:
2026-10-10 17:48:59 +09:00
parent 3263d50125
commit 6a12b6cc34
109 changed files with 3696 additions and 576 deletions
@@ -2111,15 +2111,7 @@ mod tests {
for field in ["runtime_id", "worker_id", "reason"] {
assert!(schema.contains(field));
}
for forbidden in [
"expected_worker_revision",
"proof",
"actor",
"workspace_id",
"policy",
"plan",
"stage",
] {
for forbidden in ["proof", "actor", "workspace_id", "policy", "plan", "stage"] {
assert!(!schema.contains(forbidden), "schema leaked {forbidden}");
}
}
@@ -2149,23 +2141,28 @@ mod tests {
.await
.unwrap_err();
}
let _error = tool
.execute(
&serde_json::json!({
"subject": {
"kind": "runtime_worker",
"runtime_id": "runtime-1",
"worker_id": "worker-7",
},
"expected_worker_revision": "revision-1",
"reason": "retire",
"source_proof": "caller-controlled"
})
.to_string(),
ToolExecutionContext::new("call-spoof", "batch-remove", 0),
)
.await
.unwrap_err();
// Unknown authority fields must be rejected individually, before mutation.
for (field, value) in [
("unexpected_state_guard", "caller-controlled"),
("source_proof", "caller-controlled"),
] {
let mut input = serde_json::json!({
"subject": {
"kind": "runtime_worker",
"runtime_id": "runtime-1",
"worker_id": "worker-7",
},
"reason": "retire",
});
input[field] = serde_json::json!(value);
let _error = tool
.execute(
&input.to_string(),
ToolExecutionContext::new("call-spoof", "batch-remove", 0),
)
.await
.unwrap_err();
}
assert!(client.removals.lock().unwrap().is_empty());
}
@@ -841,7 +841,7 @@ mod tests {
let projected = project_ticket_detail(json!({
"id": "internal-ticket",
"resource_key": "T-588",
"content_digest": "revision-1",
"content_digest": "ticket-content-digest",
"title": "Queued Submit",
"body": "Body",
"state": "planning",
@@ -892,7 +892,7 @@ mod tests {
.expect("current Ticket blocker shape must project");
let projected = serde_json::to_value(projected).expect("serialize Ticket detail");
assert_eq!(projected["content_digest"], "revision-1");
assert_eq!(projected["content_digest"], "ticket-content-digest");
assert_eq!(
projected["relations"]["blockers"],
json!([{
@@ -944,7 +944,7 @@ mod tests {
});
let projected = project_ticket_detail(json!({
"resource_key": "T-716",
"content_digest": "current-ticket-revision",
"content_digest": "current-ticket-content-digest",
"title": "Source evidence",
"body": "Body",
"state": if merged { "done" } else { "inprogress" },
@@ -982,7 +982,7 @@ mod tests {
Some(&json!(integration_error))
);
}
assert_eq!(projected["content_digest"], "current-ticket-revision");
assert_eq!(projected["content_digest"], "current-ticket-content-digest");
assert_eq!(projected["evidence"]["review_after_rescope"], attested);
assert_eq!(projected["evidence"]["complete_for_integration"], merged);
}
-1
View File
@@ -806,7 +806,6 @@ mod tests {
"MergeRequestReview",
"MergeRequestReadinessCheck",
"MergeRequestComplete",
"MergeRequestAddRevision",
] {
assert!(
!combined.contains(stale_operation),
+10 -3
View File
@@ -393,9 +393,16 @@ mod tests {
)));
let parsed: serde_json::Value = serde_json::from_str(&state.status_json()).unwrap();
assert_eq!(parsed["state"], "running");
assert!(parsed["worker_state"].get("execution_generation").is_none());
assert!(parsed["worker_state"].get("revision").is_none());
assert_eq!(parsed["worker_state"]["state"]["kind"], "busy");
assert_eq!(
parsed["worker_state"],
json!({
"last_command_id": 0,
"state": {
"kind": "busy",
"state": { "kind": "maintenance", "state": "compacting" }
}
})
);
assert_eq!(parsed["worker_name"], "test-worker");
assert!(parsed["segment_id"].is_string());
}
+1 -2
View File
@@ -10793,7 +10793,7 @@ mod build_summary_prompt_tests {
let binding = crate::BackendJobExecutionBinding {
job_id: "job-1".into(),
attempt_id: "attempt-1".into(),
input_digest: Some("revision-1".into()),
input_digest: Some("input-content-digest".into()),
subjektiv_consolidation: true,
};
worker.bind_backend_job(binding.clone()).unwrap();
@@ -14244,7 +14244,6 @@ permission = "write"
_ => None,
})
.unwrap();
assert!(payload.get("revision").is_none());
let restored: PendingActivationState = serde_json::from_value(payload.clone()).unwrap();
assert_eq!(restored.snapshot(), cleared);
}