Runaway-tool watchdog + cycle-3 sound-library docs sync - #15
Merged
Conversation
Watchdog (defence born from the cycle-3 VPO hang diagnosis, where an undecaying patch wrote an unbounded WAV): - tools::ToolLimits bounds every external tool run by wall-clock timeout and output-size cap; breach kills the tool, removes the partial temp file, and surfaces a structured tool failure (render_failed in profile check reports). Env overrides: SCOREKIT_TOOL_TIMEOUT_SECS, SCOREKIT_TOOL_MAX_OUTPUT_MB. - Limits derived from expected audio duration where known: probe MIDIs get bounded EOT (16 probe notes + release pad), build scenes get midi_bytes_padded EOT past the musical end so --use-eot renders still contain release tails / loop-seal material. - profile check scratch root honors SCOREKIT_TMPDIR (relocate large probe renders to another disk without global TMPDIR). - E2E: runaway render killed at size cap, stuck render killed at timeout, both without residue; acceptance matrix updated (rule 5). Docs sync for sound-library cycle 3: - roadmap baseline: 4 certified profiles (open/chamber/symphonic/synth), 235 mappings / 173 unique patches, 0 failed; VPO cumulative-voice hang documented as unrepairable upstream defect; T3 realized via the chamber/symphonic pair. - docs-site: profile list, muldjord GM-remap repair, VPO defect notes, watchdog + SCOREKIT_TMPDIR documentation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Runaway-tool watchdog — defence in depth born from the cycle-3 VPO hang diagnosis (an undecaying patch made
sfizz_renderwrite an unbounded WAV, 44+ GB observed):tools::ToolLimits: every external tool run is bounded by a wall-clock timeout and an output-size cap. A breach kills the tool, removes the partial temp file, and reports a structuredrender_failed. Overrides:SCOREKIT_TOOL_TIMEOUT_SECS/SCOREKIT_TOOL_MAX_OUTPUT_MB.buildpushes the MIDI EndOfTrack past the musical end (midi_bytes_padded) so--use-eotrenders keep release tails and loop-seal material.profile checkprobe MIDIs get a bounded EOT; scratch root honorsSCOREKIT_TMPDIR.Cycle-3 docs sync: roadmap baseline (4 certified profiles: open/chamber/symphonic/synth — 235 mappings / 173 unique patches, 0 failed), VPO cumulative-voice hang documented as unrepairable upstream defect, T3 marked realized, docs-site sound-library + profiles pages updated.
Verification
cargo test: 97 CLI E2E + unit tests green, incl. newprofile_check_kills_runaway_render_at_size_cap_without_residueandprofile_check_kills_stuck_render_at_timeout_without_residue(no-residue assertions).cargo fmt --check+cargo clippy --all-targetsclean.