Commit 43e46143 by PLN (Algolia)

docs(board): check-mix can see the session now, and it failed on sight

The argv-only bug is fixed by extracting the 3-rung ladder into
tools/ardour_session.py, imported by both gig-log and check-mix. gig-log's
'keep check-mix in sync' comment is gone because there is nothing left to keep
in sync — one parser per concept satisfied by construction rather than by
somebody remembering. 169 gig-log tests pass unchanged.

Then it ran for real and reported Tidal 07, 08, 10 and 12 at -inf dB in the
saved session. Third recurrence of that bug (04-08+12, then 02+10, now these
four). PLN's parked two-minute check went from unrunnable straight to failing,
which is the whole argument for wiring a check into a caller: it gets run under
conditions the unit test never sees.

Also logged: two pre-existing test failures the suite run made visible
(test_orphan_orbits 16 rows vs 13 expected; test_lcxl3_display collects zero
tests, and a test file that cannot fail is not a passing test), and the
uncommitted duplicates left sitting on claude/rig-streamline so whoever rebases
it does not double-apply them.

    the fader was down in the file, not in the room.
    nobody could hear the difference
    because a closed fader and a silent instrument
    look identical on a post-fader meter.
parent 27f23515
......@@ -1823,3 +1823,63 @@ that commits most. There is no exemption. Banked as memory
`feedback_shared_checkout_moves_under_you`: verify HEAD before every commit, and
verify the push moved the remote (`git rev-list --left-right --count
origin/master...master` must read `0 0`) rather than trusting exit 0.
### ✅ `check-mix.py` resolves a GUI-launched session — and IMMEDIATELY caught the bug (`27f2351`)
The argv-only resolution bug is fixed, and not by copy-paste. The 3-rung ladder
(argv → `/proc` cwd → open fds) now lives once, in **`tools/ardour_session.py`**
(stdlib-only, following `pvbanks.py`'s convention), and BOTH `gig-log.py` and
`check-mix.py` import it. `FilesLens` keeps only its own caching/logging state,
and gig-log's "keep check-mix in sync" comment is deleted because there is
nothing left to keep in sync — `feedback_one_parser_per_concept` satisfied by
construction rather than by discipline.
`tools/tests/test_gig_log.py`: **169 passed** before and after, no test edited.
Rungs 2 and 3 were proven against synthetic `/proc` fixtures (bare argv + real
cwd; bare argv + unrelated cwd + only an fd deep under `audiofiles/`) since the
live process's argv already carried the path — stated plainly rather than
claimed as a full end-to-end proof.
🔴 **AND IT FIRED ON THE FIRST REAL RUN. PLN — this needs your hands.**
Verified twice, independently:
```
Tidal 07: fader at -inf dB — SILENT
Tidal 08: fader at -inf dB — SILENT
Tidal 10: fader at -inf dB — SILENT
Tidal 12: fader at -inf dB — SILENT
```
`/home/pln/Work/Sound/Ardour/Tidal Live/Tidal Live.ardour`, session as last
SAVED. **This is the THIRD recurrence** (04-08+12, then 02+10, now 07/08/10/12)
— see `reference_ardour_saved_vs_live_recurs`. Raise the faders on those four
**and SAVE the session**, then re-run `python3 tools/check-mix.py` until it says
0 silent orbits. Note the trap the tool prints itself: Ardour meters are
POST-fader, so a shut fader shows no meter, which looks exactly like Tidal
emitting nothing. It isn't.
The parked PLN-only quick check "Ardour faders: verify SAVED" is now **runnable**,
which is the whole point of the fix — and it went from unrunnable to failing, not
to passing. `feedback_assembling_checks_revalidates` again: wiring a check into a
caller runs it under fresh conditions and finds something.
### 🟡 Two pre-existing test failures, unrelated but now visible
Found while running the suite, neither touching the changed files:
- `tools/tests/test_orphan_orbits.py` **fails** — 16 rows where it expects 13.
- `tools/tests/test_lcxl3_display.py` **collects 0 tests** — a test file that
cannot fail is not a passing test (`feedback_verify_the_plumbing`).
Both predate this work. The 16-vs-13 smells like the corpus grew and the fixture
did not, which is the kind of expectation that should be derived, not frozen.
### 🧹 Leftovers from the concurrent-session mess, for whoever rebases
`claude/rig-streamline`'s working tree still holds uncommitted copies of edits
that are **already safely on master**: `tools/check-mix.py`, `tools/gig-log.py`
(modified) and `tools/ardour_session.py` (untracked), plus
`armada/tide-table/build_delete_manifest.py` (untracked, byte-identical to
master's tracked copy). Nothing was reset or discarded in a tree shared with
live sessions. **Before merging or rebasing that branch, expect these to
double-apply**`rm` the untracked ones and check out the modified ones from
master rather than committing them twice.
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