Commit 37098d6f by PLN (Algolia)

CLAUDE.md, CHANGELOG, TODO.d: ending a session, and the quiet-room recorder fix

How to end a session (music-work end, what it will and will not do, exit codes),
the tray Quit that tells the truth, and what is still unverified (the extension
tile needs a log out/in; the first real end-session run).
parent 46ef4fc5
......@@ -45,6 +45,18 @@ while the real fault sat unread.
when it moves. SuperDirt takes no microphone: those links are cut (knob documented in
`CLAUDE.md`).
- **"Quit" that tells the truth, and a real way to end a session.** Quitting the tray left
SuperDirt (headless), the black box and music mode running, and music mode could not be
left while they ran. There is now `music-work end`, behind a new "End session" on the
ParVagues tile and in the tray, and the tray's Quit asks (End session / Quit tray only /
Cancel) when the rig is up. It never closes Ardour, refuses mid-take, and finishes on the
second click once Ardour is closed. `lcxl3-driver` and `gig-record` joined `music-work`'s
helper list.
- **A black box that cried wolf in a quiet room.** The recorder buffered quiet audio for
minutes (a segment was 0 bytes after 25 s), so a healthy recorder read as dead and a kill
or power cut would have lost the quiet stretch. It now flushes every packet: the file grows
every second, silence included.
### Added
- **Rig health, in the tray and the Bridge.** `gig-log` now publishes
`~/.cache/parvagues/health.json`: is the graph hardware-clocked, does the
......
......@@ -82,6 +82,13 @@ ParVagues' main livecoding workspace.
a gig take not recorded costs the gig. Do not make it opt-in again.
- **`lcxl3-driver` is `manual` on purpose** (`rig_units.py`): with no board it crash-loops.
`midi-autoconnect` starts it when a raw LCXL3 is on the bus. Never enable it at login.
- **Ending a session: `music-work end`** (the ParVagues tile's "End session", the tray's
"End session…", and what the tray's Quit offers while the rig is up). It stops the SuperDirt
watchdog first, then SuperDirt (the black box stops with it), then hands over to
`music-work off`. It refuses while a take is rolling and NEVER closes Ardour (it may hold
unsaved work): with Ardour open it stops short, exit code 3, and a second run after you
have saved and closed Ardour finishes. `--dry-run` says what it would do. Plain tray Quit
only closes the tray; the rig and music mode keep running.
- Rig health lives in `~/.cache/parvagues/health.json` (written by `gig-log`, read by the
tray and the Bridge). Owners repair, `gig-log` observes, the faces only read.
......
......@@ -29,6 +29,15 @@ Proposed shape (owner = a small unit that arms and rolls through the existing
Decisions needed: trigger (eval/MIDI vs signal), silence timeout, unclaimed retention
window, disk floor, and which strips (all Tidal strips only, or Mic/Keys too).
## 1b. End session: what is not done
- The extension change (the tile's "End session") needs a **log out/in** to load (Wayland: no
Alt+F2 r). Until then the tile is unchanged; `music-work end` works from a terminal now.
- It was verified with `--dry-run` and through the detached unit, never run for real on the
live rig (that would have ended the owner's session). First real run: with Ardour open it
should stop SuperDirt and exit 3; after closing Ardour, a second run should reach work mode.
- Pulsar is deliberately left alone (an editor, not part of the rig's sound).
## 2. Drills
Witnessed today, all passed: observer freeze (stale in ~41 s), Master follows the default
......
......@@ -92,5 +92,10 @@
"date": "2026-10-11",
"task": "Recording made unmissable: black box follows the rig, gate blocks when nothing records, launcher and gate can see Ardour",
"learning": "Run the safety net, do not trust that it exists: gig-record had never run on this machine (unit not installed, gate WARN-ignored), then it ran and listened to a spectrogram tap and died of SIGPIPE under pipefail. Also: a presence probe matching process NAME is blind when the comm differs (Ardour is ArdourGUI, binary ardour-8.4.0~ds1 cut to 15 chars): the launcher spawned a 2nd Ardour and the gate silently SKIPPED SC->Ardour on every run."
},
{
"date": "2026-10-11",
"task": "End session: one click to work mode (music-work end), smart tray Quit, helper list completed",
"learning": "A script the tray launches that ends by stopping the tray is killed by its own cgroup mid-way: run it in its own transient unit (systemd-run --user --collect) and report by notification. Ardour is not closable by design and its .pending file is always newer than the last save, so unsaved work cannot be inferred: never close it, stop short and make the second run idempotent."
}
]
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment