I read this as implementation - I will wire and verify Telegram integration through the existing Todo 4 stepper, starting from the target worktree and its current contracts.


I read this as implementation - I have identified the existing direct customer routes and Todo 4 boundary; I will first establish the requested characterization baseline before adding the failing stepper-wiring tests.


I read this as implementation - the RED tests now demonstrate the missing cursor and projection boundary; I will add a narrow typed transport/transition seam and expose only the value-free bridge metadata it requires.


I read this as implementation - I am completing the remaining Telegram ingress, recovery, QA, and evidence work around the durable stepper.


I read this as implementation - Todo 5 is complete.

- Routed typed nutrition text/callback mutations through Todo 4's durable stepper with exact ingress/cursor identities, single-send publication, and prompt binding.
- Added no-replay resume observation and poll-terminal enforcement.
- Added RED-to-GREEN integration coverage, including duplicate and uncertain-send recovery behavior.
- Added zero-network fake-bot QA: `TELEGRAM_STEPPER_FAKE_BOT_QA_PASS`.
- Added evidence and DoneClaim: `.omo/evidence/nutricoach-v150-combined/task-5-telegram-stepper-integration.json`.
- Verified: 205 related tests passed, Ruff and scoped ty passed, compile passed, and no generated target bytecode remains.

No commits created.


I read this as an evidence-path correction - I will copy the JSON byte-for-byte, retain the existing source evidence, and verify both SHA-256 values.


I read this as evidence-path correction - completed without changing product/tests.

- Source SHA-256: `c50a47282d2b63f8e70883c9ecd3e9752fd330a8627b93e083d7151d6d1e0206`
- Destination SHA-256: `c50a47282d2b63f8e70883c9ecd3e9752fd330a8627b93e083d7151d6d1e0206`

Match verified. Source evidence was retained because its directory contains other evidence.


I read this as a focused Todo 5 fix - I will close the malformed-ingress, strict-typing, and manual-oracle blockers with new RED-to-GREEN coverage, then refresh evidence only.


I read this as blocker closure - I’ll run only the focused Todo 5 checks, remove stale authority evidence, refresh both evidence copies with current hashes, and clean generated artifacts.


I read this as blocker closure - Todo 5 is complete.

Amended DoneClaim: **DONE**

- Malformed applicable Telegram ingress now reserves fail-closed; no legacy/generic fallback.
- Typed transport, integration test, and fake-bot QA pass strict checks.
- Focused regression suite: **205 passed**.
- QA emits exactly one validated JSON oracle with zero network/customer messages.
- Removed `candidate_authority` from both task evidence copies.
- Evidence copies match: `45c213b6cc311cffa418adf76864d43c8974008945e5c6aca53ba5804842bc19`.
- Temporary bytecode artifacts cleaned; no commits created.