Device face: the roster shows whoever identified, master[flow] included
Rows in first-seen order, a closed app dims in place, more than four is
"plus n more". Mentions the probe device under Installing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Document standalone Desktop source dependency
Co-authored-by: Codex <noreply@openai.com>
Say where the apps come from
Installing walked from the device straight to "open set[flow]" without ever
saying where set[flow] comes from. It is a `.dmg` on the same release now, so
say so, and say what a damaged-app dialog actually means: a build from
somewhere other than a release.
Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016mXxJ6RwpjXVuFbD94wF1L
The device no longer opens a browser
set[flow] is an app of its own now. The device face has lost the button and the
address that went with it: the WebSocket is not a documented interface, so an
address on the face invited something nobody supports. Status is the only
readout left, which is the one worth having.
Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DYCKLWb13J5PLkNpGGRdfi
Update the set configuration manual
Co-authored-by: Codex <noreply@openai.com>
Document meter controls and device connection status
Song tags, the sort hierarchy, and following Live
Brings the manual up to the 2026-08-07 work. Three of these were not
additions but corrections — the pages described behaviour the app no
longer has.
The convention lost its BPM. A scene name is `[ROLE] @{key} {SONG}
{TAG}`; the tempo lives on Scene.tempo, which is the one fact Live
already has a home for, and duplicating it into the name meant two
answers that could disagree. Naming is rewritten around that, with the
three readable legacy forms in a table so a half-converted set is
recognisable rather than mysterious.
Song tags are new and get a section rather than a page: an open,
optional, brace-delimited classification of what the song is. The braces
are the point — they make an arbitrary tag reversible without a fixed
vocabulary, which is what keeps the mapping derivable from the name
alone. Roles gets the tag-versus-role distinction, since one describes a
scene and the other a song, and they are deliberately different marks.
Roles and the chosen palette moved out of bsv.json and localStorage into
a hidden device parameter, so Live writes them into the .als. That is a
better story than the one it replaces and Installing, Roles and Color
each told the old one. Home gains a section saying it plainly: there is
no database, and the set is the storage.
The palette is now compiled in. Color and Troubleshooting documented a
Re-derive button that no longer exists — worse than incomplete, since
someone would have gone looking for it.
Following Live is documented with its failure mode stated out loud. It
watches the Session cursor and it is the least verified path in the app,
so "a clip drawn in two places means this got it wrong, press sync" is
in both Reading the grid and Troubleshooting. A manual that only
described the happy path would leave the one symptom worth reporting
looking like a bug in the reader's set.
The same commit records what following Live cost: a write no longer
re-reads the set, so it no longer quietly catches up on changes made in
Live as a side effect. That is a regression from the user's seat and it
says so.
Also: the sort hierarchy in the running order, per-scene slices in
folded song headers, ⌘A, and the bar.beat.sixteenth readout that has
been in the header since the branded transport and was never written up.
Some of this documents work that is still in the working tree, so the
manual is briefly ahead of the released device.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MutvDXT74GQ57Jjztt21cz