Lane 4 — at the table (#659) #691
Closed
claude-bot
wants to merge 0 commits from
redesign/lane4-table into main
pull from: redesign/lane4-table
merge into: rbrooks:main
rbrooks:main
rbrooks:feat/1328-fill-it-in
rbrooks:feat/1328-fill-frontend
rbrooks:feat/1328-fill-backend
rbrooks:feat/9-foundry-push
rbrooks:fix/9-foundry-live
rbrooks:feat/9-foundry-push-frontend
rbrooks:renovate/celery-5.x
rbrooks:feat/5-foundry-connect
rbrooks:feat/9-foundry-push-backend
rbrooks:feat/9-foundry-push-module
rbrooks:feat/5-foundry-frontend
rbrooks:feat/5-foundry-backend
rbrooks:feat/5-foundry-module
rbrooks:release/v4.8.0-rc1
rbrooks:docs/d341-convert-draft
rbrooks:feat/958-update-to-version
rbrooks:feat/958-convert-sheet
rbrooks:feat/958-pathbuilder-import-frontend
rbrooks:fix/1360-heading-order
rbrooks:feat/958-pathbuilder-import-backend
rbrooks:feat/11-weekly-digest
rbrooks:feat/1341-auto-update
rbrooks:docs/d332-superseded
rbrooks:chore/1345-names-cleanup
rbrooks:feat/1342-mentioned-pages
rbrooks:feat/1328-recipes
rbrooks:fix/1346-pgdg-key
rbrooks:perf/1247-shared-recording-stream
rbrooks:chore/132-gitleaks-allowlist
rbrooks:release/v4.7.1
rbrooks:spike/foundry-module
rbrooks:release/v4.7.1-rc1
rbrooks:docs/decisions-d332-d337
rbrooks:fix/bot-certifi
rbrooks:chore/release-4.7.0
rbrooks:chore/release-4.7.0-rc4
rbrooks:chore/deps-4.7.0
rbrooks:chore/release-4.7.0-rc3
rbrooks:fix/1280-quote-must-say-it
rbrooks:fix/1257-names-row-squeeze
rbrooks:chore/release-4.7.0-rc2
rbrooks:fix/1245-pg-upgrade-count
rbrooks:chore/release-4.7.0-rc1
rbrooks:feat/1257-names-in-prep
rbrooks:feat/1257-be
rbrooks:feat/1257-fe
rbrooks:feat/1257-rating-fixes
rbrooks:design/1328-fill-it-in
rbrooks:feat/1257-name-splits
rbrooks:fix/1326-redis-503
rbrooks:feat/1280-fact-suggestions
rbrooks:feat/1280-be
rbrooks:feat/1280-fe
rbrooks:design/1280-fact-suggestions
rbrooks:feat/1279-infobox
rbrooks:feat/1279-be
rbrooks:feat/1279-fe
rbrooks:feat/1321-shelf-copies
rbrooks:design/1279-infobox
rbrooks:feat/1243-table-find
rbrooks:feat/1257-who-rated
rbrooks:feat/1243-prep-drawer
rbrooks:feat/1243-sheet-pickers
rbrooks:design/1243-browse-in-place
rbrooks:feat/1315-hotwords-default
rbrooks:feat/1242-system-filters
rbrooks:feat/1257-more-name-styles
rbrooks:feat/506-leg3-hotwords
rbrooks:design/1242-system-filters
rbrooks:fix/1302-packs-polish
rbrooks:feat/1241-rules-library
rbrooks:design/1241-rules-library
rbrooks:feat/1245-postgres-18
rbrooks:integ/4.6.2
rbrooks:fix/1263-map-ui-2
rbrooks:fix/1263-map-server
rbrooks:fix/1263-map-ui-1
rbrooks:fix/1261-editor-link-menu
rbrooks:fix/1229-axe-4.14-name-mismatch
rbrooks:renovate/axllent-mailpit-1.x
rbrooks:renovate/eslint-monorepo
rbrooks:renovate/authlib-1.x
rbrooks:chore/release-4.6.0
rbrooks:chore/release-4.6.0-rc2
rbrooks:fix/460-rc2-screens
rbrooks:fix/460-rc2-server
rbrooks:fix/release-prerelease-exit
rbrooks:chore/release-4.6.0-rc1
rbrooks:feat/125-campaign-templates
rbrooks:feat/126-calendar
rbrooks:feat/1181-pictures-and-files
rbrooks:feat/1190-event-people
rbrooks:integ/4.6.0
rbrooks:feat/1191-line-of-the-night
rbrooks:feat/1200-starter-packs
rbrooks:chore/bot-multidict-and-playwright-group
rbrooks:fix/1202-this-week-answered-count
rbrooks:fix/122-124-leftovers
rbrooks:fix/1178-get-routes-that-write
rbrooks:fix/1203-journeys-check-names
rbrooks:design/125-campaign-templates
rbrooks:feat/126-calendar-engine
rbrooks:design/126-in-world-calendar
rbrooks:fix/1189-cited-stamp-in-range
rbrooks:fix/1189-v4-looser-check
rbrooks:fix/1189-richer-beats
rbrooks:fix/1113-export-bind-lists
rbrooks:fix/1154-release-notes-by-file
rbrooks:chore/release-4.5.0
rbrooks:chore/release-4.5.0-rc12
rbrooks:fix/1135-wiki-markup-as-text
rbrooks:fix/demo-usage-cost-in-window
rbrooks:chore/release-4.5.0-rc11
rbrooks:fix/1121-sheet-consistency
rbrooks:fix/1121-sheet-5e-terms-and-card-hp
rbrooks:copy/1122-busiest-pages
rbrooks:fix/1121-relevant-choices
rbrooks:fix/1121-wiki-create-npc-save-sheet-links
rbrooks:fix/1029-menu-stays-on-screen
rbrooks:docs/prototype-transcript-bin-wording
rbrooks:fix/1023-editor-save-row-back-scroll
rbrooks:fix/1020-search-exact-first
rbrooks:fix/1020-table-prep
rbrooks:fix/1020-shell-wordmark-footer-bell
rbrooks:fix/1020-wiki-article-party
rbrooks:fix/872-admin-kept-until-phone-tables
rbrooks:feat/l13-milestone-level-waiting
rbrooks:fix/1000-1001-bell-older-setup-context
rbrooks:fix/999-pronouns-in-prompts
rbrooks:fix/l19-other-class-feats
rbrooks:fix/1010-transcript-window-ordinary-confirm
rbrooks:docs/d254-d269-decisions
rbrooks:fix/702-member-search
rbrooks:fix/680-transcript-bin
rbrooks:fix/993-unidentified-prompts
rbrooks:fix/841-redis-timeouts
rbrooks:fix/990-binned-not-exported
rbrooks:fix/830-export-prep-shelf
rbrooks:fix/deps-audit-2026-10-01
rbrooks:fix/877-title-reads
rbrooks:fix/798-audio-received-at
rbrooks:build/lane11-17-j7
rbrooks:build/lane11-16-levelup
rbrooks:build/lane11-14-seams
rbrooks:build/lane11-14-seed
rbrooks:build/lane11-15-start
rbrooks:build/lane11-13-old-block-out
rbrooks:fix/980-review-r3
rbrooks:build/lane11-12-block
rbrooks:build/lane11-8-packs
rbrooks:fix/demo-seed-canonical-names
rbrooks:build/lane11-11-hot-half
rbrooks:docs/l11-decisions
rbrooks:build/lane11-7-convert
rbrooks:build/lane11-10-editing
rbrooks:fix/npm-audit-brace-expansion
rbrooks:build/lane11-9-sheet-page
rbrooks:fix/bot-pyjwt
rbrooks:build/lane11-6-content
rbrooks:fix/lane11-rank-names
rbrooks:build/lane11-2b-language
rbrooks:build/lane11-4-js-evaluator
rbrooks:build/lane11-3-server
rbrooks:build/lane11-5a-pf2e
rbrooks:build/lane11-5b-5e
rbrooks:feat/design-admin
rbrooks:build/lane11-2-evaluator
rbrooks:build/lane11-1-sheet-pieces
rbrooks:build/lane11-0-drawing
rbrooks:fix/943-quest-objectives-fk
rbrooks:fix/prepsheet-shelf-flake
rbrooks:fix/945-leftovers
rbrooks:build/demo-gm-copy
rbrooks:fix/901-email-landings
rbrooks:build/lane10-8-journeys
rbrooks:build/demo-seed-lanes-8-10
rbrooks:fix/887-gm-own-confirmation
rbrooks:build/lane9-5-j1-admin
rbrooks:fix/918-audience-click
rbrooks:fix/useasync-overtaken
rbrooks:ci/939-critical-path
rbrooks:test/937-backend-suite-speed
rbrooks:chore/claude-orchestration
rbrooks:fix/924-xp-gm-only
rbrooks:fix/session-stale-poll
rbrooks:docs/decisions-d239-d242
rbrooks:fix/930-pypdf
rbrooks:build/lane8-journeys
rbrooks:build/925-quest-editor
rbrooks:fix/894-private-page-pictures
rbrooks:build/lane8-p4-drafts
rbrooks:build/lane8-p7-map
rbrooks:build/lane8-p6-handouts-rules
rbrooks:fix/wiki-fixture-names
rbrooks:build/lane10-d227-test-usage
rbrooks:fix/rsvp-horizon-test-tuesday
rbrooks:fix/media-volume-owner
rbrooks:build/lane8-p3-editor
rbrooks:fix/912-unidentified-rename
rbrooks:build/lane8-p5-party-quests
rbrooks:build/lane8-handout-takeback
rbrooks:build/lane10-pickers
rbrooks:build/lane8-p2-article
rbrooks:build/lane8-6-map
rbrooks:build/lane10-7b-email-pages
rbrooks:build/lane8-5-handouts
rbrooks:build/lane10-7a-test-the-bot-pages
rbrooks:build/lane8-p1-pages
rbrooks:build/lane8-4-quests
rbrooks:build/lane8-2b-feeds
rbrooks:build/lane8-3-parties
rbrooks:build/lane8-2a-links
rbrooks:build/lane10-5-commands
rbrooks:build/lane9-6-seed
rbrooks:build/lane10-4b-reactions
rbrooks:build/lane9-4d-pages
rbrooks:build/lane9-4c-pages
rbrooks:build/lane10-4a-posts
rbrooks:build/lane10-3-email
rbrooks:fix/891-web-fonts
rbrooks:build/lane9-4b-pages
rbrooks:build/lane10-6-test-the-bot
rbrooks:build/lane10-2-notify-out
rbrooks:build/lane8-1-wiki-text
rbrooks:build/lane9-4a-frame
rbrooks:design/lane10-drawings
rbrooks:fix/j6-budget
rbrooks:fix/j5-phone-flake
rbrooks:fix/869-test-leaks
rbrooks:fix/843-record-start-followups
rbrooks:build/lane7-all
rbrooks:build/lane6-all
rbrooks:build/lane9-b2-server
rbrooks:chore/changelog-fragments
rbrooks:docs/decisions-d218
rbrooks:build/lane9-a-owner-overview
rbrooks:fix/rule-card-level-label
rbrooks:fix/834-retention-semantics
rbrooks:fix/o3c-record-without-announcement
rbrooks:docs/decisions-d179
rbrooks:docs/decisions-d131-d170
rbrooks:fix/851-commit-before-response
rbrooks:build/lane6-j3-seed
rbrooks:build/lane9-b1-d67-identity
rbrooks:fix/841-blocking-loop
rbrooks:build/lane9-c-backups-audit
rbrooks:fix/vote-race-and-start-commit
rbrooks:fix/recording-announcement
rbrooks:fix/proposal-read-leak
rbrooks:fix/last-admin-guard
rbrooks:build/lane6-p4c-planning
rbrooks:build/lane6-p4b-margin
rbrooks:build/lane6-p4a-sheet
rbrooks:build/lane5-j4-seed
rbrooks:build/lane6-base
rbrooks:build/lane7-pages-talk
rbrooks:build/lane5-pages
rbrooks:build/lane7-pages-safety
rbrooks:build/lane7-p3-safety
rbrooks:build/lane7-p2-notify
rbrooks:build/lane6-p3-planning
rbrooks:build/lane6-p2-history
rbrooks:build/lane6-p1b-items
rbrooks:build/lane7-p1-threads
rbrooks:build/lane5-p6-faces
rbrooks:build/lane6-p1a-sheet
rbrooks:build/lane5-p5-find
rbrooks:build/lane5-p4a-board
rbrooks:build/lane5-p4b-scenes
rbrooks:build/lane5-p3-live
rbrooks:build/lane5-base
rbrooks:build/lane5-p2-cards
rbrooks:docs/lane5-decisions
rbrooks:build/review-r2-wide
rbrooks:fix/review-r1
rbrooks:build/lane5-p1-scenes
rbrooks:build/demo-seed
rbrooks:build/lane4-journeys-j5
rbrooks:build/lane4-page-review-b
rbrooks:build/lane4-page-review-a
rbrooks:build/lane4-page-read
rbrooks:build/lane4-journeys
rbrooks:build/lane4-page-sess2
rbrooks:build/lane4-page-sess1
rbrooks:build/lane4-notes
rbrooks:build/lane4-discord-on-approval
rbrooks:build/lane4-scheduling
rbrooks:build/lane4-versions
rbrooks:build/760-session-number
rbrooks:build/lane4-decisions
rbrooks:build/797-erase-no-regenerate
rbrooks:build/test-race-audit
rbrooks:build/lane3-completions
rbrooks:build/794-dark-only
rbrooks:build/796-titles-scroll
rbrooks:build/791-retention-anchor
rbrooks:build/a11y-sweep
rbrooks:build/shell-followups
rbrooks:build/retention-preview
rbrooks:build/753-backup-readback
rbrooks:docs/d91-d93
rbrooks:build/lane3-j1
rbrooks:build/ci-harness-paths-selftest
rbrooks:fix/useauth-test-race
rbrooks:build/ci-harness-paths
rbrooks:build/777-ai-settings-read
rbrooks:build/lane3-settings-c
rbrooks:build/lane3-settings-b
rbrooks:build/lane3-j6
rbrooks:build/lane3-sessionform
rbrooks:build/lane3-settings-a
rbrooks:build/lane3-members
rbrooks:build/lane3-thisweek
rbrooks:build/lane3-story
rbrooks:chore/87-align-python-3.12
No reviewers
Labels
Clear labels
backend
Issue related to the backend
bot
Issue related to the bot
bug
Something is not working
duplicate
This issue or pull request already exists
enhancement
New feature
frontend
Issue related to the frontend
help wanted
Need some help
invalid
Something is wrong
question
More information is needed
recording
Issue related to the recording system
security
Security hardening / vulnerability work
wontfix
This won't be fixed
No labels
backend
bot
bug
duplicate
enhancement
frontend
help wanted
invalid
question
recording
security
wontfix
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Quest-Board!691
Loading…
Reference in a new issue
No description provided.
Delete branch "redesign/lane4-table"
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?
Refs #659, #689. At
/feedback/prototype/lane4once deployed.TABLE-1toTABLE-5— 153 features: the GM's shelf, the players' view, a shared screen for the whole table, recording, and the end-of-session sweep. Built onlook.html's Table mode classes (.tm,.spot,.tc,.pc), so the lane sits inside the settled look.Decisions applied
Kettlebridge is drawn empty, built in prep for later that night — the state that could not exist while a scene was only the cards that carried a word. And filtered to one scene, the other cards fade in place rather than moving, which is
IS-320's guardrail made visible.One thing to confirm
The settled look drew the shelf as a grid; the product is a freeform board.
look.htmlusesgrid-template-columns: repeat(auto-fill, …), which reflows cards. The product is an absolutely-positioned board the GM drags and resizes, with persisted positions (TB-019–TB-022), and #235 made that placement sacred — unanimously.This draws the freeform board, because every written requirement says so and
look.htmlwas deciding colour, type and shape rather than how cards behave. But a rebuild that follows the look page literally would quietly break the one guardrail the shelf was built around, so it's worth an explicit word.Rendering caught six faults
vw, so a TV drawn at a third of the page was sized for all of it: the title wrapped, the screen outgrew 16:9, and the lost-contact bar covered the last word. Now container units — also what a real TV of any size needs.And one caught before it rendered: the phone surface said "the board, scenes and card layout are on the desktop" — precisely what D20 forbids on a surface people open constantly, and D20 names Table mode outright.
Verification
IS-322–IS-324landed earlier on this branch — 1,593 rows on 102 surfaces.app.py, line intests/test_app.py. 92 passed.🤖 Generated with Claude Code
Merged to
mainin3407c4aand deployed. Closing by hand; the API merge returns 422 on this repo.CATALOGUE.mdrebuilt from the merged sources and checked against what git produced: identical, 1,593 rows on 102 surfaces. Live at/feedback/prototype/lane4; container healthy, the six responses intact, all five lane routes 200.Still open for the owner: whether the shelf is a freeform board (as drawn, per #235 and
TB-019–TB-022) orlook.html's reflowing grid.Pull request closed