diff --git a/backend/test/workspace-registry-deployment.test.ts b/backend/test/workspace-registry-deployment.test.ts index 632fbcec..a405fb5a 100644 --- a/backend/test/workspace-registry-deployment.test.ts +++ b/backend/test/workspace-registry-deployment.test.ts @@ -294,8 +294,8 @@ test("Windows clone contract copies the shared complete schema v3 descriptor int expect(windows).toContain('$workspaceDestination = Join-Path $workspaceDirectory "workspace.yaml"'); expect(windows).toContain('Join-Path $workspaceEvidence "guide.md"'); expect(windows).toContain('THT_AUTH_CONFIG_ROOT=$authConfigRoot'); - expect(windows).toContain('"core,embedding,embedding-model-init,frontend,qdrant"'); - expect(windows).toContain('"core,embedding,frontend,qdrant"'); + expect(windows).toContain('"catalog-db,core,embedding,embedding-model-init,frontend,qdrant"'); + expect(windows).toContain('"catalog-db,core,embedding,frontend,qdrant"'); expect(windows).not.toContain('schema_version: 3'); expect(descriptor).toMatchObject({ workspace: { diff --git a/harness/tests/test_local_compose_contract.py b/harness/tests/test_local_compose_contract.py index 6c04f4c5..ff4d10e1 100644 --- a/harness/tests/test_local_compose_contract.py +++ b/harness/tests/test_local_compose_contract.py @@ -9,8 +9,17 @@ def test_local_compose_uses_the_generic_external_endpoint_contract(): local = yaml.safe_load((root / "deploy/compose.local.yaml").read_text()) assert set(compose["services"]) == { - "core", "frontend", "qdrant", "embedding", "embedding-model-init", "workspace-maintenance", + "core", + "catalog-db", + "catalog-migrate", + "frontend", + "qdrant", + "embedding", + "embedding-model-init", + "workspace-maintenance", } + # Catalog migrations are explicit maintenance, while the catalog database is required by core. + assert compose["services"]["catalog-migrate"].get("profiles") == ["catalog-maintenance"] # workspace-maintenance is profile-gated: it must not be part of the default local startup. assert compose["services"]["workspace-maintenance"].get("profiles") == ["workspace-maintenance"] # Authentication is controlled by the mounted configuration; the local profile