Fix Janitor cleanup for orphaned E2E Docker networks#771
Merged
Conversation
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.
Summary
Janitorjob through Dispatch MCP to inspect stale Dispatch E2E Docker resourcesdocs/jobs/janitor.mdas a version-controlled backup of the live promptdispatch-e2e-*_defaultCompose networks while preserving active dev and E2E environmentsIncident
On 2026-07-13, a full E2E run failed before tests with Docker reporting
all predefined address pools have been fully subnetted. There were 11dispatch-e2e-*_defaultnetworks: 10 old networks had zero attached containers, while one recent network had an attached container and was active. Removing only the 10 unattached orphan networks immediately unblocked E2E; the retry passed all 168 runnable tests with 12 expected skips.Safety
The prompt now states that an attached network is active regardless of age or any other signal and must never be removed. Cleanup is limited to exact Dispatch E2E naming/Compose labels, requires
.Containersto be empty, checks for project containers and resource age, and repeats the attachment check immediately beforedocker network rm.Validation
update_job+get_jobMCP round trip; persisted prompt matches the backup byte-for-bytepnpm run checkpnpm run test(2,389 server tests and 196 web tests passed; 8 expected server skips)git diff --checksplit-pane.spec.tsapp-shell startup timeout; the full retry was stopped on request because this PR contains no code changes