feat(config): add federated tier + rename team→standalone (FED-M1-01) #470
Reference in New Issue
Block a user
Delete Branch "feat/federation-m1-tier-config"
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
FED-M1-01 — extend
mosaic.config.jsonschema withfederatedtier and align tier vocabulary with the federation PRD.Tier reconciliation:
The existing code used
local | teamwhiledocs/federation/PRD.mdline 247 defines the canonical vocabulary aslocal | standalone | federated.teamwas conceptually identical to PRDstandalone(Postgres + Valkey, no pgvector). This PR renamesteam→standaloneand addsfederatedas the third tier value.teamcontinues to validate via a deprecated alias path that warns to stderr, so existing 0.0.x headless installs keep working without modification.What ships:
StorageTier/GatewayStorageTierunions:local | standalone | federatedDEFAULT_STANDALONE_CONFIG(renamed fromDEFAULT_TEAM_CONFIG) — Postgres on 5432, keyword memory (corrected to match PRD; the oldteamdefault hadpgvectorwhich contradicted the spec)DEFAULT_FEDERATED_CONFIG— Postgres on 5433, pgvector memorypromptTier()now offers all three with hint copyMOSAIC_STORAGE_TIER: acceptsstandalone/federateddirectly, acceptsteamwith a deprecation warning, hard-rejects unknown values with a message naming all three valid tiers (was a silent fallback tolocalbefore; pre-review fix-up)standalone→ 5432,federated→ 5433packages/config/src/mosaic-config.spec.ts) + 3 new wizard headless testsWhat does NOT ship (deferred per FED-M1 plan):
docker-compose.federated.ymloverlay → FED-M1-02local/standalone→federated→ FED-M1-05This is enum + types + defaults + alias only. No federation runtime behavior is gated on the new value yet.
Review chain (orchestrator-driven):
feat/federation-m1-tier-configfeature-dev:code-reviewer(sonnet) — verdictship-with-followup, raised four issuestier: 'local'in stage resume branches;dist/tracking hygiene) tracked as follow-ups, not blocking this PRRefs #460
Test plan
pnpm --filter @mosaicstack/config typecheck+test(10/10)pnpm --filter @mosaicstack/mosaic typecheck+test(279/279)pnpm typecheck(38/38 tasks)pnpm lint(21/21 tasks)pnpm format:checkGenerated with Claude Code