Quest Board · the redesign · lane 3 of 8

The session, start to finish

Theme

One page, five lives. A session is proposed while people vote on a time, confirmed once there is one, cancelled if it falls through, and afterwards it is the thing the whole product exists to produce: a transcript, a summary, and a record of what happened. Plus the notes three different audiences keep on it.

This lane was lane 2's — #659 scoped it as "This week, the session lifecycle, Members, Settings". Settings turned out to be 109 features, forced the 2/2b split, and the session pages were quietly dropped. 168 features across six surfaces. The first draw left 83 of them out and half-drew 55 more; the backfill (#696) draws the rest — the rest of the vote, pencilled in, the GM’s Manage menu, the recording and transcript, every version of the summary, and the ledger.

Same campaign. Dana runs The Amberwake Accord; Priya, Marcus, Tomás, Ines and Ade play in it. Session 13, The Drowned Halls, was played on 8 September and ran three hours forty-two.

Look

Found, settled, and open

Nothing open

The first draw’s six questions are D27–D32. The backfill asked three more, and they are recorded as D50–D52.

Settled for the backfill

Decided while drawing

The coverage check

237 placements, none missing. 185 drawn, 29 replaced by a decision, 5 behaviour with nothing to see, 14 belonging to other surfaces, and 4 deferred as speculative. Before the backfill: 83 missing and 55 half-drawn of 232.

What rendering caught in the backfill

  1. The first draw broke D17. The travelling GM was shown the table’s time, with their own in a line underneath — the two-times design D17 replaced. It shows theirs now, and says which day the table calls it.
  2. The vote’s headings sat at different heights: the leader’s star stacked above its date, and the cells centred themselves.
  3. Removing Sat 27 Sep said three answers would go; four had been given.
  4. A pencilled-in session said it was made by the series, which a pencilled-in session never is.
  5. The GM who pencilled a session in was asked whether they could make it.
  6. A session being played still asked “Are you in?”
  7. The new “Unclear” moment sat at 00:45, above 00:38.
  8. Versions said the current summary came from the three corrections still waiting to be applied.
  9. One event was a table note in one still and being made story in another.
  10. Checklist notes ran into their labels (“Transcript & summaryApproved”), and a row with suggestions still to review was struck through as done.
  11. Lane 3 had no space between grids, so every new group of stills sat on the one above it.

Two decisions that were invisible

D17 (one time, always the reader’s) and D20 (no explanatory callouts) are recorded in the catalogue’s decisions table as governing SESS-1, SESS-2, SESS-3 and TABLE-1 — but no Decided line appeared on any of those surfaces, unlike every other decision. Someone reading the surface block, which is what you read when you draw it, would have missed both. Added before drawing, along with the lane’s own six.

What rendering caught the first time

Six again, and two of them are faults in the shared kit rather than in this lane — so they were about to bite lanes 4 to 8 as well.

  1. Four of the five rows in the voting grid were empty. .dot has a width and a height and no display, so as a bare inline span it collapses to nothing. Every existing caller happens to put a dot inside a flex row, which gives it a box; a table cell does not. Fixed in kit.css, so the next lane that reaches for a dot outside a flex parent does not lose an evening to it.
  2. A Session 14 page said “Session 13” in its own Contents. shell.js hardcoded the heading whenever the active key was session13 — true for look.html, which only ever drew one session. It now prefers whatever the caller passes.
  3. Four of five rows read as colour alone. The reader’s own row said “Yes”; everyone else’s was a bare coloured dot, which is IS-295’s exact failure — and the roster directly beneath the grid already does it correctly, dot and word.
  4. Two slots tied on seven points and only one had the star. A reviewer would have read that as a bug in the scoring, and they would have been right to.
  5. Ade voted on every slot while the roster beneath said she had not answered. The lane 2 fault exactly — a count disagreeing with the list under it. Her row now reads “—” across, and the legend says that not answering is not the same as a no.
  6. “Who was there” was showing RSVPs on a session that had already been played — “Maybe” for Nix, “Out” for Sister Quill — directly under a banner saying four voices had been matched. roster() answers who said they would come, which is the right question on Sunday and the wrong one on Tuesday.

Three things in the code worth knowing

A reload silently discards a GM’s corrections. Strikes, rewordings, relabels and emphasis live in local state until Regenerate is pressed; SE-154’s leave-page guard is the only thing between a GM and twenty minutes of lost work on a three-hour transcript. D31 keeps the batch and persists the pending set — IS-317, because it needs a server change.

The recording panel has no lifecycle gate at all (SE-157): Start and Stop stay live on a completed and on a cancelled session. D10 settles it, and drawing SESS-5 from D9 rather than from today’s behaviour is what makes that visible.

An in-progress session has no badge colour. STATUS_CLASSES has no in_progress entry, so the badge goes plain on the one status that matters while it is happening. Drawn with a word in every state, which is IS-295’s rule anyway and makes the missing entry stop being a visible fault.

Deferred on purpose

SESS-6, the session Talk tab (D32). One planned row, and it explicitly reuses CAMP-19/20’s thread model, which lane 6 owns and has not designed. Drawing a thread here would pre-empt the lane that owns it, and being consistent with it is the whole point of the row.

Where the table is

Table mode and recording — TABLE-1 to TABLE-5 — are lane 4. This page links to them: Open the table, At the table, and Sweep the shelf.