Epic: Session Reference Shelf — manual spine #235
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
A per-session, glanceable reference surface the GM keeps open during live play. Anything generated in the GM Workbench (NPC, description, rumor, table, loot) persists on the shelf for the whole session — independent of whether it's saved to the wiki — and the GM can pin existing wiki/lore entries as reference cards. Goal: everything relevant to tonight in one place, at a glance, without hunting a large wiki mid-scene.
This epic is the manual "spine" — it works fully offline (no LLM/ASR dependency). The transcript-driven "listening" layer is v3.12 (The Shelf Listens).
Distilled from a 3-model brainstorm (Sonnet 5 / Opus 4.8 / Fable 5), which converged hard on the shape below.
Component checklist (break into sub-issues when picked up)
Guardrails (consensus)
Depends on / relates to
GenerationResultalready carries asession_idFK, so half the plumbing exists).GeneratorPanel(#234).🤖 Generated with Claude Code
Broken down into sub-issues (all in the v3.11.0 milestone), on the unified
ShelfCardmodel:MVP slice — the core "everything relevant to tonight, at your fingertips" surface:
Follow-on:
Starting with the MVP slice (#239 → #240 → #241). Design the
ShelfCardmodel + endpoints first, schema signed off before the migration.🤖 Generated with Claude Code
Shelf MVP built and deployed to dev
The first three sub-issues are done and bundled in PR #249 (→
main, milestone v3.11.0), CI fully green:ShelfCardmodel + migration5a6b7c8d9e0f+ GM-only CRUD API (/api/sessions/{id}/shelf) + 9 endpoint tests/sessions/:id/shelfdraggable board (freeform placement, tonight-notes, remove, empty state), linked from SessionDetailAddToShelfcontrol on every Workbench generation result and in the wiki entry GM row, defaulting to the campaign's in-progress/next sessionDeployed
feat/v3.11-session-shelf(64bb273) to the dev host for click-through: migration applied cleanly, all services healthy. Awaiting a hands-on pass before merge.Remaining v3.11 slices stay open: #242 glance cards, #243 spotlight, #244 scene packs, #245 reveal-to-table, #246 fast retrieval, #247 end-of-session sweep, #248 warm cold-open, plus the #236 arc suggester.
Three more v3.11 slices landed (PR #251)
Merged to
mainand deployed to dev:[]swap, Esc clears. The board card never moves.CampaignArc. No migration; mirrorssession_prep.Shelf slices now done: glance cards (#242), spotlight (#243), fast retrieval (#246), plus the arc suggester (#236). Remaining v3.11: #244 scene packs, #245 reveal-to-table, #247 end-of-session sweep, #248 warm cold-open.
Epic complete — the manual spine is done
The last three slices landed today: #244 scene packs (PR #264), #245 reveal-to-table (PR #265), #248 warm cold-open (PR #266). All of CI green on each.
Component checklist — all ten shipped:
Plus the carry-forward lifecycle (#252, #254) and the AI arc suggester (#236) the milestone carried.
The guardrails held, and shaped the code:
Two things worth carrying into v3.12:
_REVEAL_DISPATCHmaps a surface name to a dispatcher, so the Foundry pillar's "push into the live scene" (#152) is one entry plus one vocabulary value — no schema change. Worth reusing the same shape for anything else that fans out to multiple destinations.list_shelfalready materializes carried pins and enriches with live wiki state on every read; #237's auto-surfaced cards want to land in a separate tray beside that, per this epic's "anything proactive only adds" guardrail — not merged into the board itself.Migration head moved to
d9e0f1a2b3c4(shelf_reveals+shelf_cards.player_text); everything else in these three slices needed no schema change.BOT_CONTRACT_VERSIONstays 1 — the newshelf_revealevent is additive.Closing. The v3.11.0 milestone is clear.
🤖 Generated with Claude Code