J5: after the session — review, correct, rewrite, approve; J6 reaches the Read tab; Needs you shows a binned transcript waiting (#730, #819) #820

Merged
claude-bot merged 6 commits from build/lane4-journeys-j5 into main 2026-09-25 17:22:18 +00:00
Collaborator

Closes #819. This is lane 4's last PR (#730).

🐞 The bug J5 found (#819)

  • The bug: Home's Needs you never showed "A transcript to review" under the default retention, "bin once transcribed". The item required the audio to still be waiting, but that setting bins the audio the moment the transcript is saved. The bell and Review were right; Home missed it.
  • The fix: the item is keyed on content approval (D95/D96), bounded by the bin.
  • Tests: four regression tests (two failed before the fix). J5 also exercises it end to end: withdrawing approval puts the row back.

Shared state: one recorded evening per project

J5 approves, bins, publishes and posts. The seed therefore records three evenings through the real pipeline, one per project (Sessions 4–6, generated at run time; no audio committed). A failure in one project can't leak into the next. The campaign keeps its audio until approval, so approving is what bins it.

J5: j5-after-the-session.spec.js

The same steps run on desktop, phone and keyboard-only. Dana and Priya each have their own browser.

  1. Priya, before approval.
    • Her recap notification opens Read. The summary shows, with "Dana has not approved it yet".
    • There are no Highlights and no tabs.
    • She answers Accurate (D96).
    • /review redirects her back to Read.
  2. Dana, from Home to Review.
    • Needs you → Review.
    • Still to do shows five rows.
    • The recording: "Ready for you to look over", and the tally "1 says it looks right". Approve… sits under The recording.
    • The full transcript, with pronouns.
  3. Corrections (D31). She strikes one event and rewords another, and the banner says "Two changes waiting". Both survive a reload.
  4. Rewrite, then put back (D51).
    • The rewrite drops the struck paragraph and uses her wording. Versions shows two.
    • She puts back the version from the recording, and its text is restored.
  5. Approve (D95).
    • The single confirmation names the bin, the Discord post, the three highlights and the wiki run.
    • Exactly one session_summary_approved reaches the bot (D96).
    • Needs you clears.
  6. Withdraw, and approve again. The row returns to Home, and a second approval posts once more.
  7. Priya, after. "Approved by Dana on…", the highlights published, and the question gone.
  8. The wiki door.
    • Setup: the fake AI now scripts the lore calls.
    • Dana sees "1 suggested wiki update ready". Following it lands on the suggestions page, and the journey stops there (lane 8).

axe runs on Read before and after approval, on Review (after its slowest reads), on the reword editor, and on the rewrite, put-back and approve dialogs.

J6 through the door

Priya follows "Read the full recap" to a played session's Read tab, which is scanned. "Said by" checks each speaker by name.

Checks

  • Two full journey runs back to back: 60/60 each (20 each on desktop, phone and keyboard).
  • The first run's only red was a counting race in the spec itself, fixed in ea62a0dc.
  • The attention and approval tests pass (64).
  • Ruff and ESLint are clean over e2e/.

Follow-ups

  • WikiProposals.jsx fails colour contrast. Its sky link, amber heading and emerald buttons all fall short. That page is lane 8's (#734); noting it there.
  • A fixed 60-second wait before wiki consolidation makes every wiki run take at least a minute. Worth a look when lane 8 rebuilds that flow.

🤖 Generated with Claude Code

Closes #819. This is lane 4's last PR (#730). ## 🐞 The bug J5 found (#819) - **The bug:** Home's Needs you never showed "A transcript to review" under the default retention, "bin once transcribed". The item required the audio to still be waiting, but that setting bins the audio the moment the transcript is saved. The bell and Review were right; Home missed it. - **The fix:** the item is keyed on **content approval** (D95/D96), bounded by the bin. - **Tests:** four regression tests (two failed before the fix). J5 also exercises it end to end: withdrawing approval puts the row back. ## Shared state: one recorded evening per project J5 approves, bins, publishes and posts. The seed therefore records **three** evenings through the real pipeline, one per project (Sessions 4–6, generated at run time; **no audio committed**). A failure in one project can't leak into the next. The campaign keeps its audio until approval, so approving is what bins it. ## J5: `j5-after-the-session.spec.js` The same steps run on desktop, phone and keyboard-only. Dana and Priya each have their own browser. 1. **Priya, before approval.** - Her recap notification opens Read. The summary shows, with "Dana has not approved it yet". - There are no Highlights and no tabs. - She answers **Accurate** (D96). - `/review` redirects her back to Read. 2. **Dana, from Home to Review.** - Needs you → Review. - **Still to do** shows five rows. - **The recording:** "Ready for you to look over", and the tally "1 says it looks right". Approve… sits under The recording. - **The full transcript**, with pronouns. 3. **Corrections (D31).** She strikes one event and rewords another, and the banner says "Two changes waiting". **Both survive a reload.** 4. **Rewrite, then put back (D51).** - The rewrite drops the struck paragraph and uses her wording. Versions shows two. - She puts back the version from the recording, and its text is restored. 5. **Approve (D95).** - The single confirmation names the bin, the Discord post, the three highlights and the wiki run. - **Exactly one** `session_summary_approved` reaches the bot (D96). - Needs you clears. 6. **Withdraw, and approve again.** The row returns to Home, and a second approval posts once more. 7. **Priya, after.** "Approved by Dana on…", the highlights published, and the question gone. 8. **The wiki door.** - Setup: the fake AI now scripts the lore calls. - Dana sees "1 suggested wiki update ready". Following it lands on the suggestions page, and the journey stops there (lane 8). **axe** runs on Read before and after approval, on Review (after its slowest reads), on the reword editor, and on the rewrite, put-back and approve dialogs. ## J6 through the door Priya follows "Read the full recap" to a played session's **Read** tab, which is scanned. "Said by" checks each speaker by name. ## Checks - **Two full journey runs back to back: 60/60 each** (20 each on desktop, phone and keyboard). - The first run's only red was a counting race in the spec itself, fixed in `ea62a0dc`. - The attention and approval tests pass (64). - Ruff and ESLint are clean over `e2e/`. ## Follow-ups - **`WikiProposals.jsx` fails colour contrast.** Its sky link, amber heading and emerald buttons all fall short. That page is lane 8's (#734); noting it there. - **A fixed 60-second wait before wiki consolidation** makes every wiki run take at least a minute. Worth a look when lane 8 rebuilds that flow. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
"Needs you" listed a transcript to review only while the audio was `ready`.
"Bin once transcribed" — the instance default — moves the audio to the bin
the moment the transcript is saved (#427), so on an install left at its
default a GM was never shown the row, while the bell said "A transcript to
review" and the Review tab's checklist said "Waiting for you". A withdrawn
approval dropped off Home the same way.

Approval is of the content, not the file (D96, `content_approved_at`), so
the row is now a summary nobody has approved whose audio is `ready`, or
`trashed` and still in the bin. The bin bounds it: sessions binned long ago
under the old audio-gated approval, which the e0f1a2b3c4d5 backfill could
not reach, are not dredged back up. Restored audio of an approved summary
no longer shows as waiting either.

Found by J5.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix(e2e): J5 counts the bot's approval posts exactly, not in a time window (#730)
All checks were successful
CI / Bot/backend version sync (pull_request) Successful in 46s
CI / Docker image build (pull_request) Successful in 54s
CI / Backend lint (ruff) (pull_request) Successful in 57s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 57s
CI / Does this change touch the recording path? (pull_request) Successful in 17s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Feedback site tests (pull_request) Successful in 1m12s
CI / Bot tests and audit (pull_request) Successful in 1m56s
CI / Backend migration, tests, and audit (pull_request) Successful in 10m35s
CI / Frontend tests, audit, and build (pull_request) Successful in 15m17s
CI / End-to-end journeys (desktop, phone, keyboard-only) (pull_request) Successful in 18m11s
ea62a0dc6c
The window's five seconds of slack caught the first approval when the
withdraw-and-approve-again step followed it within seconds. Each project
reviews its own evening, so the whole log's count is exact.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.