Epic: Federation v1 — see docs/federation/PRD.md and docs/federation/MILESTONES.md.
Goal
A gateway can run in federated tier with containerized Postgres + Valkey + pgvector. No federation logic active yet. Existing standalone behavior must not regress.
Scope
Add "tier": "federated" to mosaic.config.json schema and validators
docker-compose.federated.yml with Postgres+pgvector (5433), Valkey (6380), dedicated volumes
Tier detector in gateway bootstrap: reads config, asserts services reachable, fail-fast with clear error otherwise
pgvector extension installed + verified on startup
One-way migration script: local / standalone → federated
mosaic doctor reports tier + service health
Deliverables
mosaic.config.json schema v2 (tier enum includes federated)
apps/gateway/src/bootstrap/tier-detector.ts
docker-compose.federated.yml
scripts/migrate-to-federated.ts
Updated mosaic doctor output
pgvector support in packages/storage/src/adapters/postgres.ts
Acceptance Tests
Gateway boots in federated tier with all services present
Gateway refuses to boot in federated tier when Postgres unreachable (fail-fast, clear error)
pgvector extension present: SELECT * FROM pg_extension WHERE extname='vector'
Migration script moves populated local (PGlite) → federated (Postgres) with no data loss
mosaic doctor reports correct tier and all services green
Standalone regression: agent session works end-to-end, no federation references
Dependencies
None — foundation milestone.
Estimated budget
~20K tokens
Risk notes
pgvector install on existing PG installs can be finicky; test migration on a realistic DB snapshot.
**Epic:** Federation v1 — see `docs/federation/PRD.md` and `docs/federation/MILESTONES.md`.
## Goal
A gateway can run in `federated` tier with containerized Postgres + Valkey + pgvector. No federation logic active yet. Existing standalone behavior must not regress.
## Scope
- Add `"tier": "federated"` to `mosaic.config.json` schema and validators
- `docker-compose.federated.yml` with Postgres+pgvector (5433), Valkey (6380), dedicated volumes
- Tier detector in gateway bootstrap: reads config, asserts services reachable, fail-fast with clear error otherwise
- `pgvector` extension installed + verified on startup
- One-way migration script: `local` / `standalone` → `federated`
- `mosaic doctor` reports tier + service health
## Deliverables
- `mosaic.config.json` schema v2 (tier enum includes `federated`)
- `apps/gateway/src/bootstrap/tier-detector.ts`
- `docker-compose.federated.yml`
- `scripts/migrate-to-federated.ts`
- Updated `mosaic doctor` output
- pgvector support in `packages/storage/src/adapters/postgres.ts`
## Acceptance Tests
- [ ] Gateway boots in `federated` tier with all services present
- [ ] Gateway refuses to boot in `federated` tier when Postgres unreachable (fail-fast, clear error)
- [ ] `pgvector` extension present: `SELECT * FROM pg_extension WHERE extname='vector'`
- [ ] Migration script moves populated `local` (PGlite) → `federated` (Postgres) with no data loss
- [ ] `mosaic doctor` reports correct tier and all services green
- [ ] Standalone regression: agent session works end-to-end, no federation references
## Dependencies
None — foundation milestone.
## Estimated budget
~20K tokens
## Risk notes
pgvector install on existing PG installs can be finicky; test migration on a realistic DB snapshot.
jason.woltje
added this to the Federation v1 milestone 2026-04-19 22:01:56 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Epic: Federation v1 — see
docs/federation/PRD.mdanddocs/federation/MILESTONES.md.Goal
A gateway can run in
federatedtier with containerized Postgres + Valkey + pgvector. No federation logic active yet. Existing standalone behavior must not regress.Scope
"tier": "federated"tomosaic.config.jsonschema and validatorsdocker-compose.federated.ymlwith Postgres+pgvector (5433), Valkey (6380), dedicated volumespgvectorextension installed + verified on startuplocal/standalone→federatedmosaic doctorreports tier + service healthDeliverables
mosaic.config.jsonschema v2 (tier enum includesfederated)apps/gateway/src/bootstrap/tier-detector.tsdocker-compose.federated.ymlscripts/migrate-to-federated.tsmosaic doctoroutputpackages/storage/src/adapters/postgres.tsAcceptance Tests
federatedtier with all services presentfederatedtier when Postgres unreachable (fail-fast, clear error)pgvectorextension present:SELECT * FROM pg_extension WHERE extname='vector'local(PGlite) →federated(Postgres) with no data lossmosaic doctorreports correct tier and all services greenDependencies
None — foundation milestone.
Estimated budget
~20K tokens
Risk notes
pgvector install on existing PG installs can be finicky; test migration on a realistic DB snapshot.