ouroboros/devtools/benchmarks/common
Ouroboros 6c53eee45f release 6.95.0: forced-exit lifecycle honesty — delivery control, provider death, child absorption (sprint phase B)
Squashed landing of sprint/slime-b-lifecycle (e3184c6f + 9df9368d + 2912e634)
onto the phase A mainline (cccc758f, v6.94.0).

Forced delivery-control resolution is pure and no-retry: under the armed
latch, any parsed object carrying the delivery_control key (unknown verbs
included) and any JSON-looking non-parse degrade to the retained candidate
with the typed delivery_control_degraded reason — protocol JSON can no
longer ship as the owner's answer; unarmed JSON passes through untouched.
Both resolvers carry the hardened protocol-intent rule.

Batch child disposition: tree_note(kind='decision') payloads accept a
children array expanded into the same per-child authoritative ledger rows
(exact child_result_sha256 per entry, per-entry rejection); the absorption
reminder and tool schema advertise the batch form.

Acceptance review runs on the forced children_unabsorbed rail (owner Q2A)
through the ordinary panel entry point, with the undispositioned children in
the evidence packet (explicit omission marker past 20); a requested
improvement pass the rail cannot grant terminalizes finalized_unaccepted
with the typed revision_unavailable_on_forced_rail reason.

Provider-death honesty: a provider-killed task terminalizes
failed/provider_unavailable (left BEST_EFFORT_REASON_CODES; salvage text
still rides the result body), and the owner gets an immediate single-shot
"NOT completed" notification with no false resume promise. The
reaper-delivered notification suppression bug is fixed and pinned by
regression test: registration happens only after a successful send, after
task-done cleanup, below the ephemeral-turn return.

A child's settled result stamps the parent's own progress (including
reaper-delivered terminals via the final_task_result fallback), so a
coordinator waiting on children is not idle-killed when its last child
delivers.

The forced-path nanny note closes the 6.94.0 disclosed residual: grounded in
durable custody evidence from the canonical custody root via the one
task_execution_evidence reducer shared with phase A's ordinary nudge
(delegated_runs_succeeded / failure states / evidence_read_failed).

Merge resolution: kept phase A's richer task_execution_evidence reducer
(SUCCEEDED_STATES set, delegated_run_failure_states, evidence_read_failed)
as the single reducer both nanny paths read; phase B's simpler succeeded
count was subsumed by the same delegated_runs_succeeded key.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-08-11 01:23:57 +03:00
..
__init__.py feat(devtools-benchmarks): add official benchmark harnesses and workspace executor 2026-06-06 12:03:30 +03:00
launcher_audit.py feat: add apply_patch and edit_batch editing tools with editbench evidence 2026-08-06 00:03:01 +03:00
manifests.py v6.81.0: benchmark artefacts must not carry or claim what did not happen 2026-07-26 05:04:14 +00:00
model_slots.py devtools(swe-bench-pro): adapter hardening — crash-resilience + musl install-in-image + gold-history strip 2026-06-25 18:40:52 +03:00
official_commands.py feat: v6.55.0 bench devtools alignment — scaffold defaults, ProgramBench e2e, CLB launcher, OSWorld 2.0 2026-07-03 22:49:01 +03:00
result_index.py release 6.95.0: forced-exit lifecycle honesty — delivery control, provider death, child absorption (sprint phase B) 2026-08-11 01:23:57 +03:00
run_roots.py feat(v6.81.0): benchmark provenance becomes a gate, and the artefacts stop lying 2026-07-26 03:40:44 +00:00
secrets.py fix(minimax): review findings — slash-form routing, docs pins, secret enums 2026-08-04 16:09:57 +03:00
server_runner.py fix(minimax): review findings — slash-form routing, docs pins, secret enums 2026-08-04 16:09:57 +03:00
subprocesses.py feat(devtools-benchmarks): add official benchmark harnesses and workspace executor 2026-06-06 12:03:30 +03:00