diff --git a/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts b/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts index 9d8a8586de..60df48f8ee 100644 --- a/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts +++ b/packages/paperclip-runner/src/live/runnerd-codex-transport.test.ts @@ -2050,6 +2050,12 @@ it("restores provider identity and streamed text from a canonical delta", () => .toMatchObject({ threadId: "root-thread", turnId: "provider-turn", delta: "Reading Gmail", itemId: "message-1" }); }); +it("keeps a flat steering acknowledgement recognizable for deduplication", () => { + const receipt = { kind: "steering_acknowledgement", correlationId: "steer-1", status: "accepted" }; + expect(rehydrateRunnerdItemNotification(receipt, "opened-thread", "provider-turn")) + .toEqual({ ...receipt, threadId: "opened-thread", turnId: "provider-turn" }); +}); + it("rehydrates a canonical agent item for the strict Codex facade", () => { expect( rehydrateRunnerdItemNotification( diff --git a/server/src/__tests__/issue-feedback-routes.test.ts b/server/src/__tests__/issue-feedback-routes.test.ts index e59fe6d1e9..2260676d6f 100644 --- a/server/src/__tests__/issue-feedback-routes.test.ts +++ b/server/src/__tests__/issue-feedback-routes.test.ts @@ -1,6 +1,6 @@ import express from "express"; import request from "supertest"; -import { beforeEach, describe, expect, it, vi } from "vitest"; +import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; const mockFeedbackService = vi.hoisted(() => ({ getFeedbackTraceById: vi.fn(), @@ -127,11 +127,19 @@ vi.mock("../services/instance-settings.js", () => ({ instanceSettingsService: () => mockInstanceSettingsService, })); -async function createApp(actor: Record) { - const [{ issueRoutes }, { errorHandler }] = await Promise.all([ +let issueRoutes: typeof import("../routes/issues.js")["issueRoutes"]; +let errorHandler: typeof import("../middleware/index.js")["errorHandler"]; + +beforeAll(async () => { + // Route initialization belongs to the suite's setup deadline. The vote and + // flush assertions retain the ordinary per-test request deadline on CI. + [{ issueRoutes }, { errorHandler }] = await Promise.all([ import("../routes/issues.js"), import("../middleware/index.js"), ]); +}); + +async function createApp(actor: Record) { const app = express(); app.use(express.json()); app.use((req, _res, next) => {