feat: shelf spotlight + fast retrieval + story-arc suggester (#243, #246, #236) #251

Merged
claude-bot merged 3 commits from feat/v3.11-shelf-and-arcs into main 2026-07-22 06:44:52 +00:00
Contributor

Three v3.11 slices

Builds on the shelf MVP (#240) + glance cards (#242).

#243 — Spotlight / now-playing stage (frontend)

Put one shelf card on a large fixed "stage" (right dock). The card's stage button or number keys 1‑9 pick it, arrows / [ ] swap who's on stage, Esc clears. The board card never moves (the stage is an overlay), so it returns to its exact spot; the spotlit card gets a ring on the board.

#246 — Fast retrieval (frontend)

Ctrl‑K opens a fuzzy quick-switcher that searches tonight's shelf first (local, instant) then the campaign wiki (debounced server search). Enter / click a shelf hit stages it; a wiki hit opens the article. A "Find" button in the header surfaces the shortcut. cardTitle/cardText extracted into shelfText.js so board + palette search identically. Unit-tested.

#236 — GM Workbench story-arc suggester (backend + frontend)

New async Workbench tool arc_suggester: reads recent session summaries, existing named arcs, open plot threads, and the wiki, then proposes candidate story arcs (title / premise / hooks / related threads). Each candidate is reviewed in the Workbench result rail; Accept creates a CampaignArc via the existing arc-board endpoint. Mirrors the session_prep tool — one ToolDef + context builders + tolerant parser, plus a new arcs_context() grounding helper. Dispatch is generic, so no router/Celery/model/migration changes. Backend + frontend tests included.

Notes

  • No migration; no bot-contract change.
  • Offline for #243/#246 (no LLM/ASR); #236 uses the configured LLM like other Workbench tools.
  • Local verification: ruff clean, backend tests incl. new arc-suggester suite green, frontend eslint clean + palette/arc-config tests green.

Closes #243, closes #246, closes #236. Part of #235.

🤖 Generated with Claude Code

## Three v3.11 slices Builds on the shelf MVP (#240) + glance cards (#242). ### #243 — Spotlight / now-playing stage (frontend) Put one shelf card on a large fixed "stage" (right dock). The card's stage button or **number keys 1‑9** pick it, **arrows / `[` `]`** swap who's on stage, **Esc** clears. The board card never moves (the stage is an overlay), so it returns to its exact spot; the spotlit card gets a ring on the board. ### #246 — Fast retrieval (frontend) **Ctrl‑K** opens a fuzzy quick-switcher that searches tonight's shelf first (local, instant) then the campaign wiki (debounced server search). Enter / click a shelf hit stages it; a wiki hit opens the article. A "Find" button in the header surfaces the shortcut. `cardTitle`/`cardText` extracted into `shelfText.js` so board + palette search identically. Unit-tested. ### #236 — GM Workbench story-arc suggester (backend + frontend) New async Workbench tool `arc_suggester`: reads recent session summaries, existing named arcs, open plot threads, and the wiki, then proposes candidate story arcs (title / premise / hooks / related threads). Each candidate is reviewed in the Workbench result rail; **Accept** creates a `CampaignArc` via the existing arc-board endpoint. Mirrors the `session_prep` tool — one `ToolDef` + context builders + tolerant parser, plus a new `arcs_context()` grounding helper. Dispatch is generic, so **no router/Celery/model/migration changes**. Backend + frontend tests included. ### Notes - No migration; no bot-contract change. - Offline for #243/#246 (no LLM/ASR); #236 uses the configured LLM like other Workbench tools. - Local verification: ruff clean, backend tests incl. new arc-suggester suite green, frontend eslint clean + palette/arc-config tests green. Closes #243, closes #246, closes #236. Part of #235. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
#243 — spotlight: put one card on a large "now playing" stage (fixed right
dock). The card's stage button or number keys 1-9 pick it; arrows or [ ] swap
who's on stage; Esc clears. The board card never moves (the stage is an
overlay), so it "returns to its exact spot". Spotlit card gets a ring on the
board.

#246 — fast retrieval: Ctrl-K opens a fuzzy quick-switcher that searches
tonight's shelf first (local, instant) then the campaign wiki (debounced
server search); Enter/click a shelf hit stages it, a wiki hit opens the
article. Arrow keys navigate, Esc closes. A "Find" button in the header
surfaces the shortcut.

Extracts cardTitle/cardText into shelfText.js so the board and palette search
identically.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat: GM Workbench story-arc suggester (#236)
All checks were successful
CI / Docker image build (pull_request) Successful in 35s
CI / Backend lint (ruff) (pull_request) Successful in 41s
CI / Bot tests and audit (pull_request) Successful in 1m46s
CI / Frontend tests, audit, and build (pull_request) Successful in 5m27s
CI / Backend migration, tests, and audit (pull_request) Successful in 10m1s
dc681dcd67
New async Workbench tool `arc_suggester`: reads the campaign's recent session
summaries, existing named arcs, open plot threads, and wiki, then proposes
candidate story arcs (title / premise / hooks / related threads). Each
candidate is reviewed in the Workbench result rail; "Accept" creates a
CampaignArc via the existing arc-board endpoint. Mirrors the session_prep tool
(one ToolDef + context builders + tolerant parser) — dispatch is generic, so
no router/Celery/model/migration changes. New arcs_context() grounding helper.
Frontend: ArcSuggestionsResult + arcSuggesterConfig + "Arc Suggester" palette
entry (Campaign structure). Backend + frontend tests included.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
claude-bot deleted branch feat/v3.11-shelf-and-arcs 2026-07-22 06:44:54 +00:00
Sign in to join this conversation.
No description provided.