diff --git a/backend/scripts/verify-workspace-descriptor-files.mjs b/backend/scripts/verify-workspace-descriptor-files.mjs index 7f5fbfd8..1648b637 100755 --- a/backend/scripts/verify-workspace-descriptor-files.mjs +++ b/backend/scripts/verify-workspace-descriptor-files.mjs @@ -33,8 +33,8 @@ const reviewedExpandableBlocks = new Map([ ["scripts/test-windows-clone-contract.ps1", [ { sha256: "3204f772d33cad42bcac99191507051aefb2c91d2935bec6698b956e44f9bf45", rationale: "Generates reviewed Windows clone test configuration with its authentication configuration root." }, { sha256: "f4814d842a7502b7ef30fd6b224d5cb17b0ffd6fb2367c41c49ac16587536d93", rationale: "Same reviewed block in the repository-required CRLF checkout representation." }, - { sha256: "8db9ab0ee3580399f311fe7a24d4ea97105873b8a2d41e34a1ec64302d86bee2", rationale: "Generates the reviewed Windows Compose override with a braced remote path." }, - { sha256: "5afbeb3de5b89f978ef00b15f52e0066147bbfb8f6c9d1b7e081f4a1571ab204", rationale: "Same reviewed Compose override in the repository-required CRLF checkout representation." }, + { sha256: "6f25ce3b58cea47b74fe9319ed917d8089a2fb334bc0d469daa7e1f10865d870", rationale: "Generates the reviewed Windows Compose override for the canonical service topology." }, + { sha256: "45a3cf19f7ce697b858b63d27a4edc7fefa2414d0408e7b6d72a65c86d314f5b", rationale: "Same reviewed Compose override in the repository-required CRLF checkout representation." }, { sha256: "5d0d1a3fc45e99b3aacaf4ee5dd09a6bee1937784375dfe4bcfaa4ae32cfb9de", rationale: "Generates reviewed Windows clone test configuration." }, { sha256: "b903e5dae953ae1372f1a5276f12a92ed3dd632b897f3afe5e00c646d90a1b42", rationale: "Same reviewed block in the repository-required CRLF checkout representation." }, ]], diff --git a/backend/test/workspace-registry-deployment.test.ts b/backend/test/workspace-registry-deployment.test.ts index 2beb60c9..632fbcec 100644 --- a/backend/test/workspace-registry-deployment.test.ts +++ b/backend/test/workspace-registry-deployment.test.ts @@ -294,6 +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).not.toContain('schema_version: 3'); expect(descriptor).toMatchObject({ workspace: { diff --git a/scripts/test-windows-clone-contract.ps1 b/scripts/test-windows-clone-contract.ps1 index ff5561bf..d767e0a6 100644 --- a/scripts/test-windows-clone-contract.ps1 +++ b/scripts/test-windows-clone-contract.ps1 @@ -216,6 +216,15 @@ services: io.thothii.task13.run: "$runLabel" labels: io.thothii.task13.run: "$runLabel" + qdrant: + labels: + io.thothii.task13.run: "$runLabel" + embedding: + labels: + io.thothii.task13.run: "$runLabel" + embedding-model-init: + labels: + io.thothii.task13.run: "$runLabel" networks: thothii: labels: @@ -230,9 +239,21 @@ volumes: workspace-registry: labels: io.thothii.task13.run: "$runLabel" + workspace-secrets: + labels: + io.thothii.task13.run: "$runLabel" sessions: labels: io.thothii.task13.run: "$runLabel" + qdrant-data: + labels: + io.thothii.task13.run: "$runLabel" + embedding-models: + labels: + io.thothii.task13.run: "$runLabel" + auth-state: + labels: + io.thothii.task13.run: "$runLabel" "@ $repoYaml = ConvertTo-YamlPath $spacedRepository $envYaml = ConvertTo-YamlPath $envFile @@ -254,20 +275,20 @@ overrides: ) $render = Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("config", "--services")) -Label "render Windows Compose from spaced path" $services = @($render.StdOut -split "`r?`n" | Where-Object { $_ } | Sort-Object) - if (($services -join ",") -ne "core,frontend") { - throw "rendered Windows stack must contain exactly core and frontend" + if (($services -join ",") -ne "core,embedding,embedding-model-init,frontend,qdrant") { + throw "rendered Windows stack must contain the canonical five services" } Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("config", "--quiet")) -Label "validate Windows Compose from spaced path" | Out-Null if ($DockerStartup) { Invoke-BoundedNative -FilePath "docker" -Arguments @("info") -Label "verify Windows Docker Desktop readiness" -TimeoutSeconds 60 | Out-Null $startupAttempted = $true - Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("build", "--pull")) -Label "build two-service Windows stack" | Out-Null - Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("up", "--detach", "--wait", "--wait-timeout", "180")) -Label "start two-service Windows stack" -TimeoutSeconds 300 | Out-Null + Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("build", "--pull")) -Label "build canonical Windows stack" | Out-Null + Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("up", "--detach", "--wait", "--wait-timeout", "180")) -Label "start canonical Windows stack" -TimeoutSeconds 300 | Out-Null $running = Invoke-BoundedNative -FilePath "docker" -Arguments ($composeArguments + @("ps", "--status", "running", "--services")) -Label "inspect running Windows services" $runningServices = @($running.StdOut -split "`r?`n" | Where-Object { $_ } | Sort-Object) - if (($runningServices -join ",") -ne "core,frontend") { - throw "bounded Windows startup did not leave exactly core and frontend running" + if (($runningServices -join ",") -ne "core,embedding,frontend,qdrant") { + throw "bounded Windows startup did not leave the four long-running services ready" } Invoke-BoundedNative -FilePath $tht -Arguments @("--installation", $installation, "status") -Label "invoke installation-aware Windows tht in spaced path" | Out-Null } @@ -314,7 +335,7 @@ if (-not $cleanupSucceeded) { throw "Windows cleanup proof failed; fixture path retained for recovery" } if ($DockerStartup) { - Write-Output "Windows spaced-path build, native tht, bounded two-service startup, and exact cleanup passed." + Write-Output "Windows spaced-path build, native tht, bounded canonical startup, and exact cleanup passed." } else { Write-Output "Windows spaced-path clone, LF-byte, Compose render, and native tht build/invocation contracts passed; Docker startup mode was not requested." }