fleetd #296: close panes on failed spawn #299

Closed
agent wants to merge 0 commits from worker/fix-296-104622-6 into main
Member

Exit A now closes the pane after an unrelated readiness-gate HerdrException, but rethrows that same exception unchanged. This is necessary because spawn throws before its caller gets the pane id.

Exit B now closes a split pane when agent.start fails. Both cleanups are best effort and log a WARN without masking the original error.

Tests: cd fleetd && mvn clean install passed: Tests run: 1304, Failures: 0, Errors: 0, Skipped: 0; BUILD SUCCESS. Targeted restored tests passed: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0; BUILD SUCCESS.

Mutation proof: removing Exit A cleanup failed spawnLetsAnUnrelatedHerdrErrorPropagateUnchanged: expected: <1> but was: <0>. Removing Exit B cleanup failed panePlacementClosesTheSplitPaneWhenAgentStartFails: expected: <1> but was: <0>.

Shape check: inspected HerdrPeerLauncher spawn-side resource creation and exits. No other matching unguarded created-resource exit was found.

Changed files: fleetd/src/main/java/dev/ltms/fleet/member/HerdrPeerLauncher.java; fleetd/src/test/java/dev/ltms/fleet/herdr/FakeHerdr.java; fleetd/src/test/java/dev/ltms/fleet/member/ClaudeCodeLauncherTest.java.

Exit A now closes the pane after an unrelated readiness-gate HerdrException, but rethrows that same exception unchanged. This is necessary because spawn throws before its caller gets the pane id. Exit B now closes a split pane when agent.start fails. Both cleanups are best effort and log a WARN without masking the original error. Tests: cd fleetd && mvn clean install passed: Tests run: 1304, Failures: 0, Errors: 0, Skipped: 0; BUILD SUCCESS. Targeted restored tests passed: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0; BUILD SUCCESS. Mutation proof: removing Exit A cleanup failed spawnLetsAnUnrelatedHerdrErrorPropagateUnchanged: expected: <1> but was: <0>. Removing Exit B cleanup failed panePlacementClosesTheSplitPaneWhenAgentStartFails: expected: <1> but was: <0>. Shape check: inspected HerdrPeerLauncher spawn-side resource creation and exits. No other matching unguarded created-resource exit was found. Changed files: fleetd/src/main/java/dev/ltms/fleet/member/HerdrPeerLauncher.java; fleetd/src/test/java/dev/ltms/fleet/herdr/FakeHerdr.java; fleetd/src/test/java/dev/ltms/fleet/member/ClaudeCodeLauncherTest.java.
agent added 1 commit 2026-09-04 07:05:59 +02:00
fleetd #296: close panes on failed spawn
CI / contract (pull_request) Successful in 1m38s
CI / build (pull_request) Successful in 2m7s
cba516bda4
ltms closed this pull request 2026-09-04 07:10:19 +02:00
Some checks are pending
CI / contract (pull_request) Successful in 1m38s
CI / build (pull_request) Successful in 2m7s

Pull request closed

Sign in to join this conversation.