| 2026-06-02 05:10 | add MIT LICENSE (public release) | Matthew Gantenbein | 1 | +21 | -0 |
| 2026-06-02 04:37 | feat: install.sh + uninstall.sh, updated README (no dmg — TUI ships as scripts) | Matthew Gantenbein | 3 | +79 | -13 |
| 2026-06-02 04:29 | fix: persist theme name + transparency across restarts (Hydra parity) | Matthew Gantenbein | 2 | +87 | -7 |
| 2026-06-02 04:07 | themes: make red-pink 'Ember' the default (drop Hydra's neutral default) | Matthew Gantenbein | 2 | +27 | -26 |
| 2026-06-02 04:01 | themes: ship exactly 10, remove Navi from the repo | Matthew Gantenbein | 4 | +4 | -67 |
| 2026-06-02 03:46 | feat: sync 10 themes with Hydra + transparency toggle; separate Navi themes | Matthew Gantenbein | 15 | +310 | -141 |
| 2026-06-01 22:54 | revert: remove monitor-via-mixer fader from the UI (device-safe) | Matthew Gantenbein | 2 | +7 | -209 |
| 2026-06-01 21:18 | test: offline mux round-trip suite disproves 4 corruption theories | Matthew Gantenbein | 1 | +97 | -0 |
| 2026-06-01 20:59 | feat(spike): adatverify — fresh-process read of actual ADAT routing | Matthew Gantenbein | 2 | +61 | -0 |
| 2026-06-01 20:48 | feat: full TOML theme support — --theme CLI, bundled registry, in-app switcher | Matthew Gantenbein | 4 | +262 | -9 |
| 2026-06-01 20:40 | diag(spike): adatset writes each routing table separately to find 0x3 | Matthew Gantenbein | 2 | +36 | -11 |
| 2026-06-01 20:32 | chore(spike): adatset reports which write throws the error | Matthew Gantenbein | 1 | +14 | -2 |
| 2026-06-01 20:30 | feat(spike): adatset — persisting ADAT attenuation listen-test | Matthew Gantenbein | 2 | +63 | -0 |
| 2026-06-01 20:18 | fix: faders effective by default — no toggle needed | Matthew Gantenbein | 3 | +77 | -33 |
| 2026-06-01 20:12 | feat(spike): adatfader — trace the ADAT via-mixer fader chain on hardware | Matthew Gantenbein | 2 | +96 | -0 |
| 2026-06-01 19:58 | fix: coalesce fader writes per-frame so the fader actually works | Matthew Gantenbein | 1 | +37 | -15 |
| 2026-06-01 19:33 | fix: drain queued input after each key so slow writes can't cascade | Matthew Gantenbein | 1 | +8 | -0 |
| 2026-06-01 19:18 | feat(spike): adatcheck — diagnose hot ADAT output (routing + DAW levels) | Matthew Gantenbein | 2 | +90 | -0 |
| 2026-06-01 19:13 | feat: generalize monitor fader to groups; add ADAT 1-8 group | Matthew Gantenbein | 3 | +158 | -84 |
| 2026-06-01 19:02 | feat: software monitor fader via mixer-inserted output path | Matthew Gantenbein | 3 | +205 | -10 |
| 2026-06-01 18:51 | feat: 'c' clears the mixer to silence (auto-backs-up first) | Matthew Gantenbein | 3 | +34 | -1 |
| 2026-06-01 18:46 | feat(spike): presetcheck — read-only mixer loudness diagnostic | Matthew Gantenbein | 2 | +62 | -0 |
| 2026-06-01 18:39 | fix: presets capture+apply routing; p-only picker with instant Y/N confirm | Matthew Gantenbein | 2 | +100 | -39 |
| 2026-06-01 18:23 | feat: multi-preset support + cross-screen picker/save modals | Matthew Gantenbein | 1 | +216 | -40 |
| 2026-06-01 18:18 | feat: routing grouped by stereo pairs, staged + atomic pair writes | Matthew Gantenbein | 3 | +196 | -59 |
| 2026-06-01 18:10 | feat: stage-then-confirm for routing changes and preset load | Matthew Gantenbein | 2 | +159 | -63 |
| 2026-06-01 18:01 | feat: interactive routing edit (hardware-verified write path) | Matthew Gantenbein | 4 | +188 | -44 |
| 2026-06-01 16:14 | feat(spike): muxcheck --write-noop — verify write path with a no-op rewrite | Matthew Gantenbein | 1 | +28 | -1 |
| 2026-06-01 16:13 | feat(core): routing (mux) model + write encoding + read-only safety probe | Matthew Gantenbein | 5 | +414 | -1 |
| 2026-06-01 15:56 | fix: unify meters tab + inputs panel onto one dBFS scale (clip=0dB) | Matthew Gantenbein | 4 | +32 | -27 |
| 2026-06-01 15:50 | tune: hotter input meters — -48dB window, amber@-18 red@-6 | Matthew Gantenbein | 2 | +8 | -5 |
| 2026-06-01 15:41 | fix: meter each input where it's routed (PCM capture), dBFS bars | Matthew Gantenbein | 5 | +149 | -17 |
| 2026-06-01 15:25 | feat(spike): metermap v2 — dump routing + peak-hold every raw index | Matthew Gantenbein | 1 | +87 | -78 |
| 2026-06-01 15:20 | feat: live per-input meters on the inputs page (hardware-verified mapping) | Matthew Gantenbein | 4 | +85 | -11 |
| 2026-06-01 02:30 | feat(spike): read-only metermap probe to verify source->meter mapping | Matthew Gantenbein | 2 | +121 | -0 |
| 2026-06-01 02:23 | feat(core): port kernel meter-level remap (dest->raw index) | Matthew Gantenbein | 2 | +130 | -0 |
| 2026-06-01 02:06 | feat: stereo-pair input view (default) with mono toggle | Matthew Gantenbein | 2 | +176 | -63 |
| 2026-06-01 01:57 | fix: reconcile inputs panel with real sources API; add source catalog | Matthew Gantenbein | 13 | +302 | -84 |
| 2026-05-31 23:18 | feat: Implement Inputs panel rewrite to support all input types with per-channel strips and meters. | Matthew Gantenbein | 1 | +28 | -31 |
| 2026-05-31 23:18 | fix: correct capitalization in input panel title | Matthew Gantenbein | 1 | +1 | -1 |
| 2026-05-31 22:02 | Valentine: terminal control panel for Scarlett 18i20 3rd Gen | Matthew Gantenbein | 28 | +4977 | -0 |