From 5f93b4b125e78f088a2349a178e60f8c0af3e1a2 Mon Sep 17 00:00:00 2001 From: Ysopwnable <161784452+N0zoM1z0@users.noreply.github.com> Date: Thu, 8 Oct 2026 23:20:52 +0800 Subject: [PATCH] fix(ci): restore generated shard inputs and cleanup assertions Restore ignored generated inputs before deterministic test shards consume the downloaded build. Preserve verified cleanup assertions and explicitly check residual unknowns for unrelated processes. --- .github/workflows/ci.yml | 8 ++++++-- .../process/processCaptureLifecycle.test.ts | 13 +++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9fe2b375e..0d9f6644b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,8 +102,12 @@ jobs: with: name: rea-dist path: dist - - name: Generate source catalog from downloaded build - run: node scripts/generate-mcp-tool-catalog.mjs + - name: Restore generated outputs from downloaded build + run: | + node scripts/generate-mcp-tool-catalog.mjs + node scripts/generate-skill-metadata.mjs + node scripts/generate-product-catalog.mjs + node scripts/generate-completion-ledger.mjs - run: npm run test:ci:shard:run -- --shard=${{ matrix.shard }} - uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} diff --git a/tests/boundary/process/processCaptureLifecycle.test.ts b/tests/boundary/process/processCaptureLifecycle.test.ts index 53e42aaa6f..566c00597e 100644 --- a/tests/boundary/process/processCaptureLifecycle.test.ts +++ b/tests/boundary/process/processCaptureLifecycle.test.ts @@ -423,11 +423,20 @@ itWithCaptureCapability( ); const timedOutCapture = captureObservations(timedOut); expect(timedOutCapture.capture.exit.reason).toBe("timeout"); - if (!timedOutCapture.cleanupIncomplete && timedOut.ok) - expect(timedOut.value.cleanup).toEqual({ + if (!timedOutCapture.cleanupIncomplete && timedOut.ok) { + expect(timedOut.value.cleanup).toMatchObject({ owned_process_group: "verified", temporary_root: "removed", }); + for (const { pid } of timedOut.value.cleanup.unverified_processes ?? []) { + expect(timedOut.value.residual_unknowns).toContainEqual({ + scope: "process", + reason: expect.stringContaining( + `${String(pid)} could not be verified`, + ), + }); + } + } const controller = new AbortController(); setTimeout(() => controller.abort(), 50);