Skip to content

fleet-workspace: tolerate missing folders, close squash-landed branches, add reconcile - #202

Merged
sarthakagrawal927 merged 1 commit into
mainfrom
agent/fleet-workspace-reconcile-20261009
Oct 9, 2026
Merged

sarthakagrawal927 merged 1 commit into
mainfrom
agent/fleet-workspace-reconcile-20261009

Conversation

@sarthakagrawal927

Copy link
Copy Markdown
Member

Fixes the failures hit during the 2026-10-09 finish sweep.

  • Missing folders are non-fatal. status, install, run and gc failed with du -sk failed: ... No such file or directory when another agent trashed a retired folder while du walked it. Disk measurement now accepts a total whose only du diagnostics are vanished entries; permission and other errors still fail closed. inspect tolerates a path disappearing mid-measure. gc marks closed/missing records with no folder as record-only.
  • Squash-landed branches can close. close previously required HEAD inside a remote ref, which a squash merge never satisfies. It now accepts the branch when every path it changed since its merge base with origin/HEAD/origin/main has identical content there (landing.landedBy: content-equal in the receipt), or with --landed <sha> naming a commit contained in a local remote-tracking ref (operator-verified). Unlanded local commits remain blocked.
  • reconcile [--dry-run]. Marks non-closed records whose folder is gone as missing (records missingFrom/missingAt) so they stop holding writer slots. Manifest-only: no folder, branch or Git worktree metadata is deleted.

Tests: 4 new cases in tooling/test/agent-workspaces.test.mjs (squash content-equal close, diverged/unpublished stay blocked and --landed validation, missing-folder status/gc/reconcile/writer-slot release, vanished-entry du classification). node --test test/*.test.mjs 391/391, validate-tooling, check:docs pass.

🤖 Generated with Claude Code

… branches, add reconcile

- du measurements accept totals whose only diagnostics are entries that
  vanished mid-scan; permission and other errors still fail closed
- status/gc report missing folders without failing; gc marks them record-only
- close accepts squash-landed branches when the changed paths match the
  remote default branch, or with --landed <sha> contained in a remote ref
- reconcile [--dry-run] marks non-closed records with missing folders as
  'missing' so they stop holding writer slots; it never deletes anything

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sarthakagrawal927
sarthakagrawal927 merged commit 5f34cc6 into main Oct 9, 2026
2 checks passed
@sarthakagrawal927
sarthakagrawal927 deleted the agent/fleet-workspace-reconcile-20261009 branch October 9, 2026 03:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant