fix(issue-6): fail-closed registry timeout and TUI turn handshake
- Introduce finalize_unfinished in multi-agent-mux-delegate-job for fail-closed atomic transitions - Enforce CAS dispatch_token and attempt_id pinning across engine, CLI, and lifecycle scripts - Integrate Herdr wait_for_agent_idle turn handshake to prevent prompt loss and race conditions - Resolve bash 3.2 set -u empty array expansion compatibility in lib.sh - Preserve Issue #5 R2 contract in CAS transition engine (engine.py, publish_event.py, service.py) - Add comprehensive regression suites (test_issue6_fail_closed.py, test_issue6_turn_handshake.py) - Bump lockstep framework and skills to v4.4.1 across lib.sh, eager.py, VERSIONS.md, 8 SKILL.md - Synchronize documentation (IMPROVEMENTS.md, MESSAGING.md, state-transitions.md, task.md, phase5-e2e.md) - Unanimous PASS achieved across 4 reviewer team leaders (Claude, Codex, OpenCode, Grok) Closes #6
This commit is contained in:
1 parent
7b761be7b8
commit
ec61511699
51 files changed
+3477
-293
No files matched your search
@@ -101,17 +101,16 @@ def test_x03_the_record_carries_iteration_not_an_attempt_id(mam_sandbox, tmp_pat
|
||||
"""Why auto-completion does not use the engine's expected_attempt.
|
||||
|
||||
The engine compares expected_attempt against `attempt_id` falling back to
|
||||
`iteration`. A record has only the latter, and the two mean different things,
|
||||
so the attempt guard is applied where attempt identity actually lives: the
|
||||
dispatch record in the shadow store, compared against observed evidence."""
|
||||
`iteration`. A record now carries attempt_id (initialized to 1 in Issue 6)
|
||||
and iteration, and the attempt guard is applied where attempt identity
|
||||
actually lives: the dispatch record in the shadow store, compared against
|
||||
observed evidence."""
|
||||
monkeypatch.chdir(mam_sandbox)
|
||||
reg = _reg(tmp_path)
|
||||
job_id = _make_job(reg)
|
||||
record = _load(reg, job_id)
|
||||
assert "iteration" in record
|
||||
assert "attempt_id" not in record, (
|
||||
"if this ever changes, revisit the layering decision in the phase 2b report"
|
||||
)
|
||||
assert record.get("attempt_id") == 1
|
||||
|
||||
|
||||
def test_x04_policy_rejects_evidence_from_a_superseded_attempt():
|
||||
|
||||
Reference in new issue
Block a user