Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,17 @@ phase prompts or direct activations; the irrelevant session ran zero turns;
five of five temporary sessions and all coordinator artifacts were removed.

The completed result is deliberately classified `state=blocked` and
`liveProductEvidence=false`: verifier custody and Git effects are still
fixture-owned or simulated. This proves bounded real session initiative, not
M5.2 or production closure. The next checkpoint reuses the existing Git and
verifier foundations in this correlated path, then measures against a manual
relay/polling baseline. Non-mainline expansion remains frozen.
`liveProductEvidence=false`: that retained run used fixture-owned or simulated
Git and verification effects. The next branch now wires the existing bounded
Git worktrees and process-isolated child verifier into the same correlated
path. Its live rerun is pending after a reproducible local DNS/TLS failure; it
has not been upgraded into product evidence. After that rerun, the remaining
checkpoint is the manual relay/polling baseline and minimum critical
negative/restart closure. Non-mainline expansion remains frozen.

[Read the exact fixture evidence](docs/09-reviews/2026-09-01-m5-2-autonomous-fixture.md) ·
[Read the real Codex behavior](docs/09-reviews/2026-09-01-m5-2-real-codex-event-pump-behavior.md) ·
[Read the real-effects checkpoint](docs/09-reviews/2026-09-01-m5-2-real-effects-integration.md) ·
[Read the M5.2 scenario guide](docs/06-guides/m5-2-live-agent-scenario.md)

## Quickstart
Expand Down
24 changes: 15 additions & 9 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,13 @@ nine bound native turns, zero later runner prompts or direct activations, an
irrelevant zero-turn control, and exact cleanup.

This exposed an execution-order imbalance rather than a change in product
direction. The behavioral checkpoint is now passed. The immediate checkpoint
is to reuse the existing bounded Git-worktree and verifier foundations inside
that correlated live path, then add the manual baseline and minimum critical
negative/restart evidence. New substrate, generalized recovery, cross-harness,
or presentation work remains frozen. The completed run correctly remains
`blocked` and `liveProductEvidence=false` while verifier custody and Git effects
are simulated; it demonstrates behavior, not M5.2 closure.
direction. The behavioral checkpoint is passed. The existing bounded
Git-worktree and child-verifier foundations are now wired into that correlated
path, but a successful live rerun is pending after a reproducible local DNS/TLS
failure. The manual baseline and minimum critical negative/restart evidence
remain next. New substrate, generalized recovery, cross-harness, or
presentation work remains frozen. No partial integration attempt is promoted
to M5.2 evidence.

- [x] Ship a one-command local demo with generated identities, grants, example
sessions, and an inspector
Expand All @@ -181,9 +181,15 @@ are simulated; it demonstrates behavior, not M5.2 closure.
prompts or direct activations, exact real session/turn/dispatch bindings,
dependent ordering, an irrelevant zero-turn control, and exact cleanup.
Simulated verifier and Git effects remain explicitly labeled.
- [x] Reuse the existing bounded Git topology and process-isolated child
verifier in the correlated event-pump implementation, with exact cleanup
and no new coordinator or verifier subsystem.
- [ ] Retain one successful live Codex traversal of that real-effects path;
current reruns are blocked by a reproducible local DNS/TLS endpoint error.
- [ ] M5.2 closure: reuse the existing bounded Git and verifier foundations
in the same correlated run, add the manual baseline and minimum critical
negative/restart evidence, and keep raw product data out of public output.
in one successful correlated run, add the manual baseline and minimum
critical negative/restart evidence, and keep raw product data out of public
output.
- [ ] M5.3: pass three fresh relevant runs plus the manual baseline,
irrelevant, stale/unverified, restart, and cleanup matrix.
- [ ] Repeat the loop across Codex and one ACP-compatible harness
Expand Down
18 changes: 12 additions & 6 deletions docs/06-guides/m5-2-live-agent-scenario.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,8 @@ export THREADMESH_CODEX_COMMAND=/absolute/path/to/codex
node scripts/run-m5-2-event-pump-gate.mjs --mode live --artifacts-dir /fresh/owned/directory
```

Six bounded attempts are retained:
Ten bounded attempts are retained. Attempts 1–6 cover the behavioral path;
attempts 7–10 exercise the real Git/child-verifier integration:

| Attempt | Stop | Chain evidence | Cleanup evidence |
|---|---|---|---|
Expand All @@ -194,6 +195,10 @@ Six bounded attempts are retained:
| 4 | Exact lifecycle publication action mismatch after kickoff | Five tasks and one kickoff intent; no pump dispatch | Normal five-of-five session and temporary-resource cleanup |
| 5 | Ambiguous reconciliation during the admitted same-A fix turn | Real chain through reviewer review and same-A acceptance | Normal five-of-five session and temporary-resource cleanup |
| 6 | Completed with expected `threadmesh_m52_independent_verifier_service_pending` product-gate classification | Full real `A -> R -> same-A -> V -> dependent`; one kickoff, nine bound turns, zero later runner prompts/direct activations, irrelevant zero turns | Normal five-of-five session cleanup, coordinator removal, zero journals, and removal of the exact empty artifacts directory |
| 7 | R admitted turn ended before a tool selection | Real A implementation commit and autonomous R route | Complete role/verifier/Git/coordinator cleanup |
| 8 | R admitted turn ended after its detached-checkout read | Real A implementation plus one R read action | Complete role/verifier/Git/coordinator cleanup |
| 9 | R decision turn was terminally reconciled | Real A implementation and R route selection | Complete role/verifier/Git/coordinator cleanup |
| 10 | R admitted turn became ambiguous during a reproduced DNS/TLS endpoint failure | Real A implementation, R acceptance, and admission start | Complete role/verifier/Git/coordinator cleanup |

[#126](https://github.com/fyaic/threadmesh/pull/126) and
[#127](https://github.com/fyaic/threadmesh/pull/127) fixed the first two observed
Expand All @@ -203,11 +208,12 @@ extended only protected admitted business turns to 300 seconds. Attempt 6 is a
completed `state=blocked` gate result and the first real autonomous behavioral
chain.

The next checkpoint is no longer another behavioral rerun. Reuse the existing
bounded Git-worktree and verifier foundations inside this correlated event-pump
path, then add the manual relay/polling baseline and minimum critical
negative/restart evidence. Until those gates pass, the correct public result
remains `state=blocked` and `liveProductEvidence=false`.
The bounded Git-worktree and process-isolated child-verifier foundations are
now wired into this correlated path. The next checkpoint is one successful
live rerun after `codex doctor` no longer reports the current WebSocket
certificate failure, then the manual relay/polling baseline and minimum
critical negative/restart evidence. Until those gates pass, the correct public
result remains `state=blocked` and `liveProductEvidence=false`.

See the [bounded attempt audit](../09-reviews/2026-09-01-m5-2-real-codex-event-pump-attempt-audit.md)
and [real behavior record](../09-reviews/2026-09-01-m5-2-real-codex-event-pump-behavior.md).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

Date: 2026-09-01

Latest attempted `main`: `f98c56b83057b43f8b9618d6f69e1b2f481f77bd`
Latest completed behavioral `main`: `f98c56b83057b43f8b9618d6f69e1b2f481f77bd`

Classification: six live attempts; attempt 6 completed the real autonomous
behavioral chain, while the integrated M5.2 product gate remains blocked
Latest real-effects integration attempt: `1845d86`

Classification: ten live attempts; attempt 6 completed the real autonomous
behavioral chain, while attempts 7–10 exercised the real Git/child-verifier
integration without completing its end-to-end product gate

## Why this record exists

Expand All @@ -15,6 +18,11 @@ the operator-supplied Codex-shaped event-pump attempts actually
established without combining those evidence classes or upgrading a failed or
paused run into product evidence.

This is a bounded operator audit record, not a canonical machine-verifiable
attempt bundle. The live failure CLI retained exact cleanup projection but did
not yet emit SQLite-derived partial-stage manifests for attempts 7–10. Their
partial-progress rows therefore remain descriptive and cannot close a gate.

## Attempt ledger

| Attempt | Stop condition | Evidence established | Autonomous chain | Cleanup claim |
Expand All @@ -25,6 +33,10 @@ paused run into product evidence.
| 4 | The first user-kickoff turn reached lifecycle publication, then failed `threadmesh_lifecycle_publication_action_mismatch` | Five registered tasks; one durable kickoff turn intent; no event-pump dispatch; the live model's selected tool arguments did not reproduce the coordinator-bound lifecycle material | Not started | Normal scenario cleanup deleted and absence-confirmed five of five sessions and removed the coordinator database, journals, and run root |
| 5 | The chain reached the same-A admitted fix turn, then failed `threadmesh_codex_live_context_reconciliation_ambiguous` | Real kickoff publication; reviewer offer, acceptance, admission, and two-tool review; durable `review-failed`; irrelevant skip; same-A offer and acceptance; the admitted fix turn started but had no safely confirmable terminal result inside the existing product-operation window | Partial through `A -> R -> same-A acceptance`; verifier and dependent did not start | Normal scenario cleanup again deleted and absence-confirmed five of five sessions and removed the coordinator database, journals, and run root |
| 6 | Completed the bounded event-pump scenario and returned the expected `state=blocked`, `code=threadmesh_m52_independent_verifier_service_pending` result | One kickoff; nine bound real Codex native turns; eight protected receiver turns; eight business tool calls; four published event-pump dispatches; one durable irrelevant skip; same-A identity/worktree reuse; verifier-finalization-before-dependent ordering | Complete `A -> R -> same-A -> V -> dependent`; zero runner phase prompts, direct activation dispatches, manual relay, polling, or irrelevant native turns | Normal scenario cleanup deleted and absence-confirmed five of five sessions, removed the coordinator, and left zero journals; the exact empty operator artifacts directory was then removed |
| 7 | Real-effects R admitted turn ended before a business tool selection | A created and published a real bounded implementation commit; the event pump selected R | Partial through `A -> R admission start` | Normal cleanup deleted and absence-confirmed 5/5 sessions, stopped the child verifier, removed Git and coordinator resources, and left zero journals |
| 8 | Real-effects R admitted turn ended after one completed detached-checkout read | Real A commit/publication and one R read action | Partial through `A -> R detached checkout read` | Same complete 5/5, verifier, Git, coordinator, and journal cleanup |
| 9 | R receiver-decision turn was terminally reconciled | Real A commit/publication and autonomous R route selection | Partial through `A -> R decision start` | Same complete 5/5, verifier, Git, coordinator, and journal cleanup |
| 10 | R accepted, then its admitted turn became ambiguous during a machine-observed DNS/TLS failure | Real A commit/publication, R acceptance, and R admission start | Partial through `A -> R admission start` | Same complete 5/5, verifier, Git, coordinator, and journal cleanup |

The fixes in #126 and #127 do not retroactively change the evidence class of
attempts 1 or 2. Attempt 3 is bootstrap and cleanup evidence only. Attempt 4
Expand All @@ -35,6 +47,14 @@ attempts produced a completed `state=blocked` event-pump gate result. Attempt 6
did. It is the first retained real behavioral pass of the autonomous chain, not
an M5.2 completion claim.

Attempts 7–10 run the branch that replaces simulated Git and fixture-owned
signing with the existing bounded Git topology and child-owned verifier key.
They establish partial real-effect execution and cleanup, not a completed
real-effects chain. Attempt 10's Codex log recorded a certificate for
`*.extern.facebook.com` while connecting to the ChatGPT Responses WebSocket;
the system resolver and `curl` independently reproduced the wrong endpoint,
and `codex doctor` reported the WebSocket failure. No TLS check was bypassed.

## What the combined work established

- the operator-supplied Codex-shaped probe is strict and bounded;
Expand Down Expand Up @@ -73,12 +93,15 @@ production reliability.

## What is not established

- verifier custody and Git implementation/fix effects were not independently
real in an event-pump run;
- verifier custody and real Git effects are wired into the event-pump branch,
but no successful live Codex run has yet traversed the complete integrated
chain;
- the completed run demonstrates zero relay and polling by construction, but it
does not yet include a timed manual-workflow baseline;
- OS-kill recovery, long-turn lease heartbeat, a global cross-dispatch chain,
Kimi parity, and repetition remain untested on this live path.
- interrupted live runs do not yet expose a bounded SQLite-derived partial
stage/turn/dispatch manifest through the public failure projection.

## Sequencing correction

Expand Down Expand Up @@ -107,10 +130,9 @@ timeout/reconciliation path without a safely confirmable terminal observation.
The bounded window correction in #131 closed that blocker without changing the
reconciliation policy.

The next mainline checkpoint is to reuse—not redesign—the existing bounded Git
worktree and verifier foundations in this same correlated event-pump path, then
add the manual relay/polling baseline and the minimum critical negative/restart
case. Attempt 6 correctly reports `state=blocked` and
`liveProductEvidence=false` because verifier custody and Git effects remain
fixture-owned or simulated. It demonstrates real session initiative and clears
the behavioral checkpoint; issue #91 and M5.2 remain open.
The existing bounded Git worktree and child verifier are now wired into the
same correlated event-pump path. The next checkpoint is one successful live
rerun after the local DNS/TLS condition clears, followed by the manual
relay/polling baseline and minimum critical negative/restart case. Attempt 6
remains the behavioral checkpoint; attempts 7–10 do not upgrade it into an
integrated product pass. Issue #91 and M5.2 remain open.
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,18 @@ still `state=blocked`.

The complete attempt history, including five earlier fail-closed runs, is in
the [attempt audit](2026-09-01-m5-2-real-codex-event-pump-attempt-audit.md).

## Follow-on real-effects integration

The next branch now reuses the existing bounded Git fixture and process-isolated
child verifier in this same event-pump path. Four follow-on live attempts
created real implementation commits and reached R, but none completed the
integrated chain. The latest attempt coincided with a reproducible local
DNS/TLS failure that resolved `chatgpt.com` to a Meta endpoint and presented a
certificate valid only for `*.extern.facebook.com`; TLS verification remained
enabled.

This does not weaken the behavioral result above, and it does not establish a
real-effects pass. See the
[real-effects checkpoint](2026-09-01-m5-2-real-effects-integration.md) for the
implemented boundary, cleanup evidence, and exact remaining work.
Loading
Loading