Inline JMAP branded confirmation: portal link primary (/g/…?t=…&ns=…) + /m manage link. Cal's own .ics may also arrive — separate mail.
15DB rows landedathena
events row + meetings row live-verified. Expected: contact_id = NULL — no bind mechanism deployed (enrich E4 gated), and NO new crm_contacts row minted. Booking will NOT appear in the /g meetings list — that is correct today.
P5
/m manage + reschedule
16/m from mail — full manage surfaceyou
UPCOMING card, countdown, JOIN + "Choose a new time" + Cancel — all own-domain (no cal.boas.dev anywhere).
17Reschedule request — first-ever manual walkyou
"Choose a new time" → own-domain picker (apollo desktop calendar). Pick a slot, submit → opens a host-awaiting proposal; calendar stays untouched until host confirms.
known gap · will hitHost notification rides the dead notifications queue — you get no email. Metis surfaces the reschedule-proposal slug live from DB so the leg can be inspected.
18Idempotency re-POSTsathena
accept + request-otp re-POST on the booked row → 303 (never 410), booking_uid unchanged, no double-book. The T078 fix, live.
P6
Own-domain cancel (084 route)
19Cancel → branded confirm stepyou
GET shows "Cancel this meeting?" with reason field + "Keep the meeting" + reschedule escape hatches. Never cancels on GET.
20Confirm → "Meeting cancelled" terminalyou
Reason typed, POST → branded cancelled state with WAS card + contact fallback.
21Cal "Canceled:" mail landsyou
Cal's stock cancellation notice arrives (branded cancel-mail = tracked follow-up metis#242, not this walk).
Cancelled state again, zero forms — never re-fires Cal.
P7
Decline leg (booking B)
24Invite B → /p pending → Decline linkyou
Decline on /p is a mailto:contact@boas.dev compose, not a button-action — there is no guest decline POST (decline.ts is host-token-only). Pass = mailto opens, row stays pending.
your ruling neededAccept mailto-decline as-designed, or direct a guest-side decline action as follow-up work. Either way metis then fires the host-token decline live so leg 25 runs.
25Declined terminal + DB statemetis
Host-token decline fired → /p shows declined terminal (danger card). Athena verifies: proposal declined, no booking, no meetings row.
P8
Post-walk: CRM, purge, log
26CRM integrity + purge + RUN 7 logathenametis
Athena: no mimir crm_contacts duplicate minted, Mímir row 20acda98 untouched, agent identity intact. Purge: meetings tombstoned meeting_class=operator_test, proposals declined. Metis: RUN 7 appended to TEST-RESULTS.md.
WALK GREEN
All 26 legs passed. Acceptance complete — Juergen GO package unblocked.