feat(fleet): add roster v2 structural compiler #764
Reference in New Issue
Block a user
Delete Branch "feat/758-roster-v2-compiler"
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?
Summary
Downstream-consumer evidence (USC migration)
d625e62e894b322dc98da7a0746dff2fddb940de(feat/758-roster-v2-compiler). Merge commit: not yet known.parseRosterV2(source, format). The checked-in authoritative v2 structural schema reference isdocs/fleet/reference/roster-v2.schema.json, withversion: 2; it is not a generated framework projection.ROSTER_V2_JSON_SCHEMAis the executable contract and is structurally parity-tested against that reference. Existing v1 paths remain on their existing loader path.packages/mosaic/src/fleet/roster-v2.tsexportsparseRosterV2,normalizeRosterV2,renderRosterV2Yaml,RosterV2ValidationError, and typedFleetRosterV2;packages/mosaic/src/fleet/roster-v2.spec.tsverifies parsing, strict rejection, canonical rendering, and schema parity.parseRosterV2for structural validation without writes. Site-specific integration/release/lifecycle/migration evidence remains M2–M4 work.Verification
pnpm --filter @mosaicstack/mosaic exec vitest run src/fleet/roster-v2.spec.ts— 23 passedpnpm --filter @mosaicstack/mosaic test— 50 files / 673 tests passedpnpm --filter @mosaicstack/mosaic typecheckpnpm --filter @mosaicstack/mosaic lintpnpm format:checktypecheck,lint, andformat:checkpassed.ROR-764-VERIFIED-APPROVE-d625e62
Independent reviewer-of-record verdict for PR #764 / FCM-M1-001: VERIFIED APPROVE at exact head
d625e62e894b322dc98da7a0746dff2fddb940de.Scope verified:
docs/fleet/reference/roster-v2-fields.mddocs/fleet/reference/roster-v2.schema.jsonpackages/mosaic/src/fleet/roster-v2.spec.tspackages/mosaic/src/fleet/roster-v2.tsReview findings: no blocking findings.
Evidence:
refs/pull/764/headboth resolve tod625e62e894b322dc98da7a0746dff2fddb940de.origin/mainhas advanced toba13c0889021927098749f606b4eb28997edd457; I also cherry-picked the frozen PR commit onto that current main in a temporary worktree and confirmed the same four-file application with no conflicts.1809for commitd625e62e894bis terminal green:ci-postgres,install,sanitization,typecheck,lint,format, andtestall OK.pnpm --filter @mosaicstack/mosaic exec vitest run src/fleet/roster-v2.spec.ts— 23/23 passed.pnpm --filter @mosaicstack/mosaic typecheckpassed;pnpm --filter @mosaicstack/mosaic lintpassed; Prettier check on the four changed files passed;git diff --checkpassed.@mosaicstack/mosaictypecheck and lint passed; Prettier check on the four changed files passed.packages/mosaic/src/fleet/roster-v2.spec.tscompares checked-indocs/fleet/reference/roster-v2.schema.jsonto executableROSTER_V2_JSON_SCHEMA; test passed.packages/mosaic/src/fleet/roster-v2.ts(fs,child_process,spawn,exec,systemd,ssh,fetch,net,tls,process.env, write/delete APIs absent). No writes, lifecycle reconciliation, remote/connector/secret/channel/gateway support introduced.Reviewer is not the author; no edits, pushes, merges, or deployment actions were performed.