Conversation
added 8 commits
September 8, 2026 17:04
…M_TEST_ONLY dispatch
…leaks immediately
…ng tests/lib.sh source directive and applied the existing production-module analysis boundary to the orphan-reaper test. Full-analysis pinned ShellCheck passes for both tests and the production library; Bash syntax, Herdr timeout test, and git diff --check also pass. Runtime behavior is unchanged
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.
Intent
Le capitaine demande de lancer encore une ou deux tâches en attente, avec sa préférence durable de regrouper les petites corrections afin d’éviter des pipelines et des PR inutiles. Ce lot rassemble deux petits défauts établis qui rendent des suites de tests trompeuses : une assertion conditionnée à Ruby échoue lorsque Ruby est absent, et une suite entièrement verte sort avec le code 1 parce que son propre nettoyage temporaire échoue.
What Changed
Risk Assessment
✅ Low: The changes are bounded, implement the accepted cleanup and Ruby-skip requirements, and introduce no substantiated material defects.
Testing
Verified Ruby execution and visible skip accounting, real worker cleanup, shutdown escalation, and EXIT-status preservation. Locale and PID-1 assumptions blocked initial commands; a locale-adjusted retry and isolated shutdown checks supplied targeted evidence. The shutdown regression failed against the base helper as expected.
Evidence: Runner visibly accounts for absent Ruby
Source: Runner visibly accounts for absent Ruby
Evidence: Persisted Ruby-absent runner result
Source: Persisted Ruby-absent runner result
Evidence: Persisted Ruby-present runner result
Source: Persisted Ruby-present runner result
Evidence: Real suite exit and immediate process-group cleanup verification
Source: Real suite exit and immediate process-group cleanup verification
Evidence: Cleanup fault-injection exit-status matrix
Source: Cleanup fault-injection exit-status matrix
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 2 issues found → auto-fixed ✅
tests/fm-test-run.test.sh:1511- The accepted decision requires: "Move the Ruby-dependent YAML invariant into a focused test executable with the existing top-of-file first-line skip contract ... map selection to the workflow contract." Instead, this hunk still returns a mid-suite skip. Without Ruby, the suite first prints successful assertions, so bin/fm-test-run.sh:1534 does not recognize the later skip and records an unverified YAML contract as non-skipped. Extract the invariant into the requested focused executable, map workflow selection to it, and retain the unrelated tests.tests/fm-public-followup.test.sh:3150- The accepted decision requires: "Remove the redundant parent grace and assert immediately after child-confirmed cleanup, retaining emergency KILL only after failure." This added loop still waits five seconds before checking the supervisor. That overlaps the worker's five-second abandoned-root self-termination window, allowing a leaked supervisor to disappear after fixture deletion before the regression observes it. Remove this redundant waiting component and capture/assert survival immediately; use emergency KILL only after detecting failure.🔧 Fix: Expose YAML capability skips and detect cleanup leaks immediately
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
bash tests/fm-test-run.test.shencountered the known locale-ordering issue;LC_ALL=C bash tests/fm-test-run.test.shpassed.bash tests/fm-ci-herdr-timeout.test.shpassed.bin/fm-test-run.sh --json <evidence-path> tests/fm-ci-herdr-timeout.test.shwith Ruby present and withPATH=/usr/bin:/bin; verified persisted skip accounting.bash tests/fm-public-followup.test.shpassed.bash tests/fm-remote-job-orphan-reap.test.shstopped at the existing PID-1 assumption; executed its new child-before-leader and TERM-resistant cases separately using a temporary harness.Executed the focused shutdown regression against the base helper: failed before the fix and passed with the target helper.FM_TEST_ONLY=test_remote_worker_cleanup_fixture bash tests/fm-public-followup.test.sh; immediately verified exit 0, absent worker group, and removed fixture root.Temporary fault-injection harness underbash -everified benign cleanup failure, survivor failure, and preservation of assertion exit 37. Removed all temporary harness files.✅ **Document** - passed
✅ No issues found.
🔧 **Lint** - 1 issue found → auto-fixed ✅
🔧 Fix: Quote empty PATH assignment to satisfy ShellCheck
✅ Re-checked - no issues remain.
✅ **Push** - passed
✅ No issues found.