Improvement batch on top of the validated system. STATE grows 27 -> 28 bytes (click_pos): both firmwares must be reflashed together, a version mix shows the disconnected banner. - Box-3 'Effets' tab: delay level/feedback/length sliders wired to three new CMD opcodes (0x10-0x12) calling the ml_delay setters that were only reachable over MIDI before. - visual metronome: STATE carries the click bar position; the click button flashes on each beat, brighter on beat 1. - input clip indicator: near-full-scale input turns the input VU red for 2 s (peak hold). - fix a regression from the VT100 removal: status messages could Serial.printf from the audio core (MIDI callbacks), busting the 1.088 ms budget. They are now staged and printed by core 0. - flush the link RX buffer after an SD operation so commands touched during the blocking save/load no longer replay in a burst afterwards. - static_assert on sizeof(link_state_t) in the shared header and TRACK_CNT == LINK_TRACK_CNT in the looper. - protocol.md updated: 28-byte layout, delay opcodes, real liveness rules (any valid frame, 8 s during SD operations). Verified: pio run SUCCESS, idf.py build OK, C host test OK, 5/5 pytest.