fix: keep EQ FluidSynth alive without a server - #1365
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe EQ Legends MIDI hooks now use a secure runtime FIFO for FluidSynth standard input. Startup and stop paths remove the FIFO during normal shutdown and failure recovery. Requirement checks now require ChangesEQ Legends MIDI FIFO lifecycle
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant StartHook
participant RuntimeFIFO
participant FluidSynth
participant MIDIReady
StartHook->>RuntimeFIFO: Create and open FIFO
StartHook->>FluidSynth: Launch with FIFO as standard input
FluidSynth->>MIDIReady: Expose MIDI port
StartHook->>RuntimeFIFO: Remove FIFO on failure or timeout
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
core/tabs/gaming/eq-legends-midi-start.sh (1)
172-172: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUse
command_existsfor executable checks.Line 172 uses
command -vinstead of the shared helper used bycore/tabs/gaming/eq-legends-midi.shLine 79.Proposed change
-command -v mkfifo >/dev/null 2>&1 || fail "mkfifo is not installed" +command_exists mkfifo || fail "mkfifo is not installed"As per coding guidelines, use
command_existsfor executable checks.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@core/tabs/gaming/eq-legends-midi-start.sh` at line 172, Replace the direct command -v check in the mkfifo validation with the shared command_exists helper, preserving the existing fail message and behavior when mkfifo is unavailable.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@core/tabs/gaming/eq-legends-midi-start.sh`:
- Line 172: Replace the direct command -v check in the mkfifo validation with
the shared command_exists helper, preserving the existing fail message and
behavior when mkfifo is unavailable.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 3f971f1f-ec45-4137-a6b2-ba0f4a7de028
📒 Files selected for processing (4)
core/tabs/gaming/eq-legends-midi-start.shcore/tabs/gaming/eq-legends-midi-stop.shcore/tabs/gaming/eq-legends-midi.shcore/tabs/gaming/tab_data.toml
|
Reviewed the CodeRabbit nitpick on |
Follow-up to #1364 after live Fedora 44 validation exposed a FluidSynth lifecycle issue.
What changed
--server.mkfifoto installer and catalog prerequisites.Root cause
FluidSynth 2.5.4 exits normally when
--no-shellis used without server mode. Server mode keeps it alive but opens TCP port 9800 on all interfaces. The private FIFO preserves the process without a network listener.Validation
EQ-Legendsclient and port while running.sh -n, ShellCheck, checkbashisms, and shfmt pass for all three scripts.cargo fmt --all --check,cargo test --no-fail-fast --package linutil_core,cargo clippy -- -Dwarnings,cargo xtask docgen, andgit diff --checkpass.