{"authoritative_lifecycle":{"launch_exit_code":0,"launched_pid":3945420,"path":"/home/cube/.local/state/dualcoach-task26-controller/lifecycle-5e6f2f2a01321ac89c2950e511e7346d23070c51146c14c22c04db54034b28f1.json","sha256":"8753fb2ac34527060af9ebdc8174769a89607b8c6f5ea8338f6beb40aa978775"},"failing_test":{"deterministic":true,"name":"test_launch_refuses_to_start_without_a_durable_owner_review_to_recover","pre_repair_result":"FAILED: ControllerState.ARMED instead of ControllerState.UNARMED; service start was accepted with no recoverable owner review"},"full_candidate_digest":"5e6f2f2a01321ac89c2950e511e7346d23070c51146c14c22c04db54034b28f1","hypotheses":[{"evidence":"PID 3945420 was active/running; gateway_state telegram=connected; startup log recorded Application started and Connected to Telegram.","name":"service_or_telegram_startup_failed","verdict":"REJECTED"},{"evidence":"deployed direct_url and sealed wheel both SHA-256 6a3f5f04a2982658f1c334273b05ae958b0353470997fc8df143c5b1fe12cbeb; sealed controller SHA-256 76212d9caae866d7c5ed451d247165c8eb352c1a3af8281690b0ca7b9ba40a49.","name":"wrong_or_stale_deployed_candidate","verdict":"REJECTED"},{"evidence":"room-bootstrap sessions=[], customer-bootstrap sessions=[], publication ledger records=[]; startup recovery iterates those durable sessions and therefore correctly had no work.","name":"pending_owner_review_existed_but_recovery_failed","verdict":"REJECTED"},{"evidence":"registry pins owner user/chat/topic 8693203710/8693203710/0, but no owner-review state reached routing or publication.","name":"owner_route_mismatch_blocked_publication","verdict":"REJECTED"},{"evidence":"launch_controller called only systemctl start and returned a fixed Approve instruction without proving a recoverable AWAITING_ACTIVATION + committed owner_review state.","name":"controller_launch_contract_omitted_owner_review_prerequisite","verdict":"CONFIRMED"}],"next_safe_boundary":"Service remains stopped. Before any reseal/re-arm/relaunch, use the supported journaled synthetic-session preparation/reconciliation path to establish exactly one candidate-bound recoverable owner_review state. Do not fabricate a Telegram card or issue a human action pointer now: no valid prepared invite or owner-review card exists.","non_actions":{"commits":0,"customer_or_registry_mutations":0,"provider_auth_requests":0,"pushes":0,"relaunches":0,"releases":0,"telegram_get_updates_calls":0,"telegram_sends_or_clicks":0},"protected_state_sha256":{"/home/cube/.hermes/profiles/dualcoachtest/customers/registry.json":"9eb1b5ae0e511dbafbed6b683ec7baa2ffb15518637d8ad63200567c4009a518","/home/cube/.hermes/profiles/dualcoachtest/data/onboarding/telegram-customer-bootstrap-v1/ledger.json":"b5f0be8716f4f8e3c5493bb13fe58d25e35f039efc214a37b6fb899f2cefb28a","/home/cube/.hermes/profiles/dualcoachtest/data/onboarding/telegram-publication-outbox-v1/emergency.json":"8df495c29a91042a06dc8824092760b999408328d972639595bbbc9083a50e48","/home/cube/.hermes/profiles/dualcoachtest/data/onboarding/telegram-publication-outbox-v1/ledger.json":"8df495c29a91042a06dc8824092760b999408328d972639595bbbc9083a50e48","/home/cube/.hermes/profiles/dualcoachtest/data/onboarding/telegram-room-bootstrap-v1/ledger.json":"87a6df5656fdfd1b66806c63034df9205279d12f7093fe47a76c0fd1094b70ff"},"recorded_at":"2026-08-14T16:13:54Z","repair":{"behavior":"arm and launch now fail closed with owner_review_not_ready unless exactly one AWAITING_ACTIVATION bootstrap session is bound to a COMMITTED onboarding projection whose payload state is owner_review","candidate_invalidated_by_repair":true,"controller_path":"/home/cube/projects/richard/hermes-agent/gateway/platforms/dualcoach_tasks21_25_controller.py","controller_sha256":"b303634599c17e2f35339f964b2277c1a236f42c0ad5f3e4be18d3f38e556e13","scope":"controller launch/arm contract only","sealed_candidate_controller_sha256":"76212d9caae866d7c5f567ff0f7a2332b70676d38e53091126fbf27048c4704dbd","test_path":"/home/cube/projects/richard/hermes-agent/tests/gateway/test_dualcoach_tasks21_25_controller.py","test_sha256":"95300eb8243d88af01d0e1167390ab1c30d900fed34bad44f44f2e1aca65bcdf"},"root_cause":"The controller treated generic gateway startup as creation of an owner-review handoff. launch_controller started only systemd and then unconditionally reported AWAITING_HUMAN_TELEGRAM_ACTION, while Telegram startup performs recovery only. The clean profile had zero room-bootstrap sessions, zero customer-bootstrap sessions, zero publication records, and no committed owner_review session, so there was nothing for startup recovery to publish.","schema":"task26-post-launch-owner-review-repair-v1","shutdown":{"candidate_and_lifecycle_unchanged":true,"main_pid":0,"protected_state_unchanged":true,"result":"success","service":"inactive/dead"},"status":"PASS","verification":{"focused_tests":"44 passed","live_owner_review_recovery_ready":false,"lsp":"UNAVAILABLE: tool rejected sibling repository paths outside request cwd","ruff":"PASS","ty":"PASS"}}
