- scripts/diagnostics/test-pipeline.py: full end-to-end test
- just diag-full: run pipeline diagnostic
- just viz-log/midi-log: watch service logs live
- just viz-stats/midi-stats: check counters
- just reset-mcu: reset MCU + reopen serial via router RPC
- just test-chord: send test MIDI chord locally
- just fix-perms: restore +x bits on all scripts
Without Bridge.run() in loop(), the MCU never reads incoming
draw_frame requests from the router. First frame goes through
during setup handshake, but subsequent frames fill the router's
send buffer and the viz stalls.
- just deploy: stash local board changes before git pull
- install.sh: configure git alias 'pull-clean' for manual use
- Board-side changes from test edits are discarded on deploy
- Permanent rename: led-matrix-bridge.ino → sketch.ino (Arduino CLI convention)
- Add just flash-sketch recipe for compiling/flashing MCU via board's arduino-cli
- Run via post-merge hooks for auto-deploy
- .githooks/pre-push: validate Pd patches via python3 pd-validator
- .githooks/post-merge: auto-restart services when systemd/scripts change
- install.sh: configure core.hooksPath at install time
- justfile deploy: set hooksPath after git pull
- Create skills: rego-pd-validator, usb-gadget-configfs, led-matrix-msgpack-rpc
- Update pd-audio-synthesis skill with Uno Q specifics
- Add Pd version check (min 0.54.0) to start-synth.sh
- Add DO NOT EDIT headers to generated pd patches
- Add Gitea Actions CI workflow for patch validation
- Add ConditionPathExists guards to legacy systemd services
- Add 'just ci' recipe for CI