Skip to content

test: prove deterministic GenAgent admission and settlement boundaries (closes #880) - #881

Draft
joshrotenberg wants to merge 2 commits into
mainfrom
test/880-gen-agent-adapter-proof
Draft

joshrotenberg wants to merge 2 commits into
mainfrom
test/880-gen-agent-adapter-proof

Conversation

@joshrotenberg

@joshrotenberg joshrotenberg commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

An Oban executor can die while its GenAgent invocation is still running. A terminal response or stop acknowledgement can also arrive while a tool is still alive. Neither condition should cause an automatic replay or premature release of the lead's active turn.

Adds a standalone proof in spikes/gen_agent_adapter_proof with a disposable SQLite journal, real Oban executor delivery, GenAgent supervision, and a guarded synthetic CLI through the Claude backend and Forcola. Fifteen deterministic tests cover admission versus pause, consumed and stale permits, result persistence after waiter death, exact-job redelivery, lost outcomes, native exit, and escaped descendants.

Validation: all 15 tests pass under seeds 1, 12345 and 777. Formatting, compilation with warnings as errors, Credo and Dialyzer pass for the standalone proof and Custode. Custode's existing suite passes 2,710 checks with 3 exclusions. RESULTS.md records the local toolchain and observed qualification limits.

Dedicated proof CI wiring is deferred because the current GitHub credential lacks workflow scope. Existing repository CI does not execute this standalone project; its results are from the explicit local commands documented in the README.

The escaped-child case deliberately retains uncertainty. The proof's independent process witness does not establish a production runner settlement/recovery contract; #777 remains open.

Operating note

The only migration belongs to the standalone proof's disposable repo. No Custode production schema, dependency, runtime, prompt, schedule, UI or MCP changes. No live provider turns or delegated model review. No fleet pull, migration or restart is needed. Keep this as an isolated draft for review.

Closes #880.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: prove deterministic GenAgent admission and settlement boundaries

1 participant