Lane 2, round two — the owner's decisions (#659) #678

Merged
claude-bot merged 1 commit from feat/659-lane2-round-two into main 2026-09-16 20:10:55 +00:00
Collaborator

Three changes from the owner's review of #673, and four decisions settled and recorded.

Changes

The "no GM" banner is shown to every member (D18), not just the owner, and names who can put it right — "Dana owns this campaign and can make someone GM." A player whose campaign has quietly stopped working is owed the reason and the right person to ask. Only the action stays owner-gated. This is the same shape the Discord-delivery banner already uses, so the two are now consistent rather than accidentally different.

Session times show once, in the reader's own timezone (D17), always carrying the abbreviation — the abbreviation is what tells a traveller their device has moved. This supersedes IS-003, which asked for the campaign's zone and the reader's side by side; two times make the reader work out which one is theirs, and the wrong guess is the expensive one.

The one case that still needs saying out loud is when the reader's day differs from the table's. Ines in London sees Tue 23 Sep, 2:00 AM BST plus a line reading "the table calls this Monday's session — you are 6 hours ahead." That is a reconciliation, not a second time, and it appears only when there is something to reconcile. Both cases are drawn. The page also offers a way through to the profile where the reader's zone is set.

A brand-new campaign no longer promises a day. It said "the time, who is coming, and what still needs doing before Monday" — on a page whose whole point is that nothing is scheduled, so it named a Monday that does not exist. Now: "Once there is a session, this page becomes it — the time, who is coming, and what still needs doing before you play."

Decisions settled

# Decision
D16 The filter wins. The sessions list narrows the list already on screen; searching the campaign is the app bar's job. GM transcript search (CA-094) moves into the app-bar search as a switch rather than being lost with the panel — off by default, absent entirely for a player.
D19 (IS-308) The live bar stays inside its campaign and does not follow the reader to Home or their other campaign. The version that followed them is kept, labelled "the version not taken".
— The GM's roster row keeps her own pronouns beside her own name, as drawn.

D16 needed more than a note, because a capability that moves has to be shown arriving somewhere. Four new stills under CAMP-2: the GM's search with the switch off (5 results), the same search with it on (6 — the extra is a line spoken in Session 13, marked "Spoken" and "GM only"), the same query as a player (4 results, no switch at all), and "black water" — a phrase nobody ever summarised, which returns nothing but the spoken line. That last one is the argument for keeping the capability at all.

Correction

My CAMP-2 note in #673 said the two search options were "both below". They were not — I drew the filter and never drew the alternative. D16 settles it, so rather than drawing a rejected option the panel now shows where transcript search actually lands.

One fault found by rendering

The four new search panels drew completely empty — a thin grey bar where the results should be. .menu is position: absolute because in the product it hangs off the bar that opened it; drawn on its own it has to come back into flow. Lane 1 carries a .panelbed .menu { position: static } override for exactly this and lane 2's stylesheet did not, so the panels were lifted out of the box and the box collapsed. Added, along with a --full variant so a still never ends on a half-cut row.

Verified after the fix: result counts are 5 → 6 with the switch on, 4 for a player, 1 for "black water"; no ${...} leaking into rendered output; both themes.

Catalogue

D16–D19 recorded in the decisions table, and the affected summaries updated — CAMP-1 (D17, plus the note that its empty state must not name a day), CAMP-2 (D16 resolved, CA-092–098 re-homed on SH-9), SH-6 (D19, plus the rule that the bar's state must be carried in words because the phone drops the second line), SH-8 (D18, plus the worst-first stacking rule). Rebuilds clean at 1,578 rows on 102 surfaces.

🤖 Generated with Claude Code

Three changes from the owner's review of #673, and four decisions settled and recorded. ## Changes **The "no GM" banner is shown to every member** (D18), not just the owner, and names who can put it right — "Dana owns this campaign and can make someone GM." A player whose campaign has quietly stopped working is owed the reason and the right person to ask. Only the action stays owner-gated. This is the same shape the Discord-delivery banner already uses, so the two are now consistent rather than accidentally different. **Session times show once, in the reader's own timezone** (D17), always carrying the abbreviation — the abbreviation is what tells a traveller their device has moved. This supersedes `IS-003`, which asked for the campaign's zone and the reader's side by side; two times make the reader work out which one is theirs, and the wrong guess is the expensive one. The one case that still needs saying out loud is when the reader's *day* differs from the table's. Ines in London sees `Tue 23 Sep, 2:00 AM BST` plus a line reading "the table calls this **Monday's** session — you are 6 hours ahead." That is a reconciliation, not a second time, and it appears only when there is something to reconcile. Both cases are drawn. The page also offers a way through to the profile where the reader's zone is set. **A brand-new campaign no longer promises a day.** It said "the time, who is coming, and what still needs doing before Monday" — on a page whose whole point is that nothing is scheduled, so it named a Monday that does not exist. Now: "Once there is a session, this page becomes it — the time, who is coming, and what still needs doing before you play." ## Decisions settled | # | Decision | |---|---| | **D16** | The **filter wins**. The sessions list narrows the list already on screen; searching the campaign is the app bar's job. **GM transcript search (`CA-094`) moves into the app-bar search as a switch** rather than being lost with the panel — off by default, absent entirely for a player. | | **D19** (`IS-308`) | The live bar **stays inside its campaign** and does not follow the reader to Home or their other campaign. The version that followed them is kept, labelled "the version not taken". | | — | The GM's roster row keeps her own pronouns beside her own name, as drawn. | D16 needed more than a note, because a capability that moves has to be shown arriving somewhere. Four new stills under CAMP-2: the GM's search with the switch off (5 results), the same search with it on (6 — the extra is a line spoken in Session 13, marked "Spoken" and "GM only"), the same query as a player (4 results, no switch at all), and `"black water"` — a phrase nobody ever summarised, which returns nothing but the spoken line. That last one is the argument for keeping the capability at all. ## Correction My CAMP-2 note in #673 said the two search options were "both below". They were not — I drew the filter and never drew the alternative. D16 settles it, so rather than drawing a rejected option the panel now shows where transcript search actually lands. ## One fault found by rendering The four new search panels **drew completely empty** — a thin grey bar where the results should be. `.menu` is `position: absolute` because in the product it hangs off the bar that opened it; drawn on its own it has to come back into flow. Lane 1 carries a `.panelbed .menu { position: static }` override for exactly this and lane 2's stylesheet did not, so the panels were lifted out of the box and the box collapsed. Added, along with a `--full` variant so a still never ends on a half-cut row. Verified after the fix: result counts are 5 → 6 with the switch on, 4 for a player, 1 for `"black water"`; no `${...}` leaking into rendered output; both themes. ## Catalogue D16–D19 recorded in the decisions table, and the affected summaries updated — CAMP-1 (D17, plus the note that its empty state must not name a day), CAMP-2 (D16 resolved, `CA-092`–`098` re-homed on SH-9), SH-6 (D19, plus the rule that the bar's state must be carried in words because the phone drops the second line), SH-8 (D18, plus the worst-first stacking rule). Rebuilds clean at 1,578 rows on 102 surfaces. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(feedback-site): lane 2, round two — the owner's decisions (#659)
All checks were successful
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m3s
CI / Docker image build (pull_request) Successful in 19s
CI / Bot/backend version sync (pull_request) Successful in 46s
CI / Backend lint (ruff) (pull_request) Successful in 48s
CI / Frontend tests, audit, and build (pull_request) Successful in 2m26s
CI / Bot tests and audit (pull_request) Successful in 3m33s
CI / Backend migration, tests, and audit (pull_request) Successful in 9m26s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 17m55s
f6dfd32dbb
Three changes from review, and four decisions settled.

Changes:
- The "no GM" banner is shown to every member, not just the owner, and
  names who can put it right (D18). A player whose campaign has quietly
  stopped working is owed the reason and the right person to ask. Same
  shape the Discord-delivery banner already uses; only the action stays
  owner-gated.
- Session times show once, in the reader's own timezone, always with the
  abbreviation (D17) — the abbreviation is what tells a traveller their
  device has moved. This supersedes IS-003's side-by-side times. A line
  reconciles the two only when the reader's DAY differs from the table's.
  Drawn both ways: same zone, and Ines in London.
- A brand-new campaign's empty state no longer says "what still needs
  doing before Monday". Nothing is scheduled, so it names a Monday that
  does not exist.

Decisions:
- D16: the filter wins. The sessions list narrows the list already on
  screen; searching the campaign is the app bar's job. GM transcript
  search (CA-094) moves into the app-bar search as a switch rather than
  being lost with the panel — drawn, because a capability that moves has
  to be shown arriving somewhere.
- D19 (IS-308): the live bar stays inside its campaign. The version that
  followed the reader is kept as "not taken".
- The GM's roster row keeps her own pronouns, as drawn.

Corrected: the CAMP-2 note claimed both search options were drawn. Only
the filter was. D16 settles it, so the panel now shows where transcript
search actually lands instead.

Rendering caught one fault: the four new search panels drew empty, because
.menu is absolutely positioned and lane 2's stylesheet was missing the
.panelbed .menu override lane 1 carries. The boxes collapsed to nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
claude-bot deleted branch feat/659-lane2-round-two 2026-09-16 20:10:56 +00:00
Sign in to join this conversation.
No description provided.