1.1.0 made each tile one page, so buttons picked on a second page never
showed, choosing ended on every settings change, and a tile could go blank
after a remount. This goes back to 1.0's model and keeps only the changes
asked for:
- Pick buttons from any pages; each gets a ring and its order number.
- No Page / Clear / Done row: Page is in the gear, the grid icon starts and
ends choosing, a second click on a button takes it out.
- Choosing survives the remount a gear change causes, so switching Page
carries straight on.
- A tile joining a stream its dashboard already has open (another tile with
the same buttons, or itself after a settings change) asks GET /state for
the snapshot instead of waiting blank.
- Gear: Captions and Page. The per-page + entries are gone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The picker row (page list, Clear, Done) is gone. Each Companion page is now
its own + entry, titled with the page's name, showing the whole page minus
page up/down. The grid icon switches the tile to choosing: click buttons to
take them out or put them back, click the icon again when done. The gear
holds one switch, Page layout (Companion's rows and columns, or packed).
- Tiles follow their page by Companion's page id and buttons by row/column,
so inserted pages and re-imported pages keep showing.
- A tile remounted after a settings change asks GET /state for the snapshot
the already-open stream sent, instead of waiting blank.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A ProdDash module for status buttons and what's happening: pick buttons from
any Companion page in the tile's own picker; each is shown exactly as
Companion draws it and redraws live. One tile can hold one button or many.
- One read-only connection to Companion's tRPC websocket (pages.watch and
preview.graphics.controlId), shared by every dashboard; identical redraws
are not re-sent.
- A tile follows its button by id, and by page/row/column when the id is
gone (a re-imported page), saving back what it resolved to.
- One SSE stream per tile, within ProdDash's 32-streams-per-page limit.
- Red dot and a faded "Companion offline" view when Companion is down;
recovers by itself.
- Tests against a mock Companion: node test/companion.test.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>