I read this as test-only implementation - WORKING: I’ll inspect the Python testing/runtime conventions, write the six failing-first recovery scenarios in the owned file, run the exact pytest command, and save the behavioral RED transcript.


I read this as test-contract discovery - I’m tracing the existing publication ledger, Telegram adapter seams, restart fixtures, and sibling v1.1.1 tests before writing the owned test file.


I read this as red-test implementation - the existing seams are sufficient; I’m now encoding six deterministic restart/race contracts, with the forced concurrency coordinated by a barrier rather than timing.


I read this as RED verification - I’m running the exact isolated pytest target once and teeing the full result to the required evidence file; success here means collection succeeds and failures are behavioral.


I read this as RED quality correction - the first run exposed one genuine behavior gap and one over-instrumented race fixture; I’m removing the fixture-induced barrier from internals, keeping concurrency at the public claim/replay boundary, then regenerating the transcript.


I read this as test-only delivery - completed the six recovery scenarios and captured behavioral RED.

- Result: `1 failed, 5 passed`; exit code `1`
- RED gap: ambiguous edit response incorrectly falls back to a new send
- Evidence: `.omo/evidence/v1.1.1-stability/red-publication-recovery.txt`
- Quality: Ruff and no-excuse checks pass; 186 pure LOC
- Review: single-purpose test module, no type escape hatches or production edits
- Only the owned test and evidence files were changed by this task.