feat(fleet): reconcile local roster state #785
Reference in New Issue
Block a user
Delete Branch "feat/758-local-reconciler"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements FCM-M3-001 local roster-owned reconciliation and lifecycle control through the existing
mosaic fleetcontrol plane.Independent synthetic-tree REVIEW-6: VERIFIED APPROVE on exact tree
7dc35b8881f07a60de44d2328a37a27ef6c46f64. Commit head:b48f22b50b1beef5190818461df42773d4ae3076. Full package suite: 56 files / 820 tests passed. No live fleet/systemd/tmux actions were performed.Relates to #758. Parent #758 remains open through M5.
🤖 Generated with Claude Code
REQUEST CHANGES — reviewer-of-record for PR #785 head
b48f22b50bI verified the exact committed head and reviewed the 12-file scope against FCM-M3-001 / #758.
Remote/state evidence:
feat/758-local-reconciler; basemain.Relates to #758. Parent #758 remains open through M5.and does not useFixes #758.git ls-remote origin refs/heads/feat/758-local-reconciler refs/pull/785/head=>b48f22b50b1beef5190818461df42773d4ae3076for both.7dc35b8881f07a60de44d2328a37a27ef6c46f64.bc5e73629e92c56a80fa6a769ebad17c0177f504.Code/security review result:
origin/mainhas advanced toc593a15ef88b78d91cdd62916bcfcdec36040768; diff against the recorded base did not touch the 12 scoped files, and the FCM-M3-001 behavior review remains valid.Local gates passed:
git diff --check— pass.pnpm --filter @mosaicstack/mosaic test -- src/fleet/fleet-reconciler.spec.ts src/commands/fleet-reconciler-command.spec.ts src/commands/fleet.spec.ts— pass, 3 files / 222 tests.pnpm --filter @mosaicstack/mosaic test— pass, 56 files / 820 tests.pnpm --filter @mosaicstack/mosaic typecheck— pass.pnpm --filter @mosaicstack/mosaic lint— pass.pnpm typecheck— pass, 42/42 turbo tasks cached.pnpm lint— pass, 23/23 turbo tasks cached.Blocking finding:
~/.config/mosaic/tools/git/pr-ci-wait.sh -n 785 -t 1200 -i 15reported failure for PR #785 headb48f22b50b1beef5190818461df42773d4ae3076.1834status isfailure; steps:ci-postgres,install,sanitization,typecheck,lint, andformatpassed;testfailed with exit 1.Because the exact committed head has failing required CI, this cannot receive verified approval yet even though the local review and local gates passed. Please remediate or rerun to terminal green CI, then request another reviewer-of-record pass on the unchanged or new exact head.
VERIFIED APPROVE — reviewer-of-record for PR #785 head
38de24787dExact identity and remote state verified:
38de24787d2b1fdca880e782ac37dbea3dd36346.6b02c257b68db1af2448474f911f1ab3ba047fe7.b48f22b50b1beef5190818461df42773d4ae3076.b48f22b50b1beef5190818461df42773d4ae3076/7dc35b8881f07a60de44d2328a37a27ef6c46f64.bc5e73629e92c56a80fa6a769ebad17c0177f504.git ls-remoteconfirms bothrefs/heads/feat/758-local-reconcilerandrefs/pull/785/headpoint to38de24787d2b1fdca880e782ac37dbea3dd36346.Relates to #758. Parent #758 remains open through M5.17581applied to superseded headb48f22b50b1beef5190818461df42773d4ae3076and is not a verdict on this head.Reviewed scope:
bc5e73629e92c56a80fa6a769ebad17c0177f504: exact 12 files, 1888 insertions / 45 deletions.b48f22b50b1beef5190818461df42773d4ae3076: exact 3 files, 29 insertions / 13 deletions:packages/mosaic/src/commands/fleet.spec.tspackages/mosaic/src/fleet/fleet-reconciler.spec.tspackages/mosaic/src/fleet/fleet-reconciler.tsReview result:
EIOproveslock-io-faileddeterministically.acquirePrivateReconcileLockdefaults tonode:fs/promisesopen; injection is a direct test seam, not CLI/runtime input.EEXISTmaps to concurrency after existing-leaf validation; unsafe leaves reject asunsafe-lock.CI and local gates:
1836: terminalsuccessfor head38de24787d2b1fdca880e782ac37dbea3dd36346; stepsci-postgres,install,sanitization,typecheck,lint,format,testall OK.~/.config/mosaic/tools/git/pr-ci-wait.sh -n 785 -t 60 -i 5— green for PR #785 exact head.git diff --check— pass.pnpm --filter @mosaicstack/mosaic test -- src/fleet/fleet-reconciler.spec.ts src/commands/fleet-reconciler-command.spec.ts src/commands/fleet.spec.ts— pass, 3 files / 222 tests.pnpm --filter @mosaicstack/mosaic test— pass, 56 files / 820 tests.typecheckandlint— pass.pnpm typecheck— pass, 42/42 turbo tasks cached.pnpm lint— pass, 23/23 turbo tasks cached.EEXIST/EIO/unexpected open failures, pre-open managed-path validation, unsafe existing leaves, and v2 missing/malformed fail-closed behavior.Residual risks / boundaries: