# Journey result: Telegram bot assistant delivery

- **Walked**: 2026-05-29 by Claude (Opus 4.8) against commit `bf12b0f7d8`
- **Verdict**: **pass (surface)** — `/profile/telegram` renders the link/unlink
  panel; the live bot round-trip needs a real Telegram bot.
- **Walker**:
  `/tmp/claude-oshun-lt-2-walkthrough/walk.mjs telegram-bot-assistant-delivery`

## Observations

- `/profile/telegram` renders the live "linked vs not" panel: when unlinked, the
  deep-link CTA + countdown to expiry; when linked, /unlink instructions
  (rebuilt goal `9ba3d0823d`). Prior 404 **fixed**.
- 0 page errors, 0 persistent failures.

## 2026-06-28 addendum — expired link recovery

- `/profile/telegram` now wraps the unlinked card in a client countdown panel:
  once browser time reaches `expiresAtIso`, the stale Telegram anchor is
  removed, the copy changes to the closed-window recovery copy, a disabled "Link
  expired" control renders at 44 px+, and the `Refresh link` server action
  remains available.
- `profile-telegram-bridge.spec.ts` drives the branch against real dev infra by
  minting a live BFF nonce, advancing browser time beyond that nonce's expiry,
  asserting the disabled state, then restoring browser time and clicking refresh
  to prove the real `POST /v1/telegram/link` rotation recovers an active `t.me`
  link.

## Not exercisable headless

- The actual bot link round-trip + message delivery needs a real Telegram bot
  token; the linking surface is verified.
