diff --git a/cli/package.json b/cli/package.json index ac9a17604df..432cccd7cf1 100644 --- a/cli/package.json +++ b/cli/package.json @@ -59,7 +59,7 @@ }, "devDependencies": { "@types/node": "^22.19.21", - "tsx": "^4.22.4", + "tsx": "^4.23.1", "typescript": "^5.7.3" } } diff --git a/packages/db/package.json b/packages/db/package.json index 1b1aae509ab..a05492aef46 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -52,7 +52,7 @@ "devDependencies": { "@types/node": "^22.19.21", "drizzle-kit": "^0.31.10", - "tsx": "^4.22.4", + "tsx": "^4.23.1", "typescript": "^5.7.3", "vitest": "^4.1.8" } diff --git a/server/package.json b/server/package.json index 1c68dce032b..381824bcafb 100644 --- a/server/package.json +++ b/server/package.json @@ -91,7 +91,7 @@ "@types/ws": "^8.18.1", "cross-env": "^10.1.0", "supertest": "^7.0.0", - "tsx": "^4.22.4", + "tsx": "^4.23.1", "typescript": "^5.7.3", "vite": "^6.1.0", "vitest": "^4.1.8" diff --git a/server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts b/server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts index 60a02032763..81faa887277 100644 --- a/server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts +++ b/server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts @@ -1,19 +1,23 @@ import { randomUUID } from "node:crypto"; -import { and, eq, sql } from "drizzle-orm"; +import { and, eq } from "drizzle-orm"; import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { activityLog, agents, agentWakeupRequests, + agentRuntimeState, budgetPolicies, companies, companyMemberships, + companySkills, costEvents, createDb, executionWorkspaces, + heartbeatRunEvents, heartbeatRuns, issueComments, issueRelations, + issueTreeHoldMembers, issueTreeHolds, issues, projects, @@ -103,7 +107,26 @@ describeEmbeddedPostgres("heartbeat issue graph liveness escalation", () => { await new Promise((resolve) => setTimeout(resolve, 50)); } await new Promise((resolve) => setTimeout(resolve, 50)); - await db.execute(sql.raw(`TRUNCATE TABLE "companies" CASCADE`)); + await db.delete(activityLog); + await db.delete(heartbeatRunEvents); + await db.delete(costEvents); + await db.delete(workspaceOperations); + await db.delete(issueComments); + await db.delete(issueTreeHoldMembers); + await db.delete(issueTreeHolds); + await db.delete(issueRelations); + await db.delete(issues); + await db.delete(executionWorkspaces); + await db.delete(projectWorkspaces); + await db.delete(projects); + await db.delete(heartbeatRuns); + await db.delete(agentWakeupRequests); + await db.delete(agentRuntimeState); + await db.delete(budgetPolicies); + await db.delete(agents); + await db.delete(companyMemberships); + await db.delete(companySkills); + await db.delete(companies); await instanceSettingsService(db).updateExperimental({ enableIssueGraphLivenessAutoRecovery: false, enableIsolatedWorkspaces: false, diff --git a/server/src/__tests__/heartbeat-retry-scheduling.test.ts b/server/src/__tests__/heartbeat-retry-scheduling.test.ts index 3dada976b57..40abfdf31b6 100644 --- a/server/src/__tests__/heartbeat-retry-scheduling.test.ts +++ b/server/src/__tests__/heartbeat-retry-scheduling.test.ts @@ -91,6 +91,15 @@ describeEmbeddedPostgres("heartbeat bounded retry scheduling", () => { }, 20_000); afterEach(async () => { + await cleanupRetryFixture(); + }); + + afterAll(async () => { + unregisterServerAdapter(PROVIDER_QUOTA_TEST_ADAPTER); + await tempDb?.cleanup(); + }); + + async function cleanupRetryFixture() { await db.delete(activityLog); await db.delete(heartbeatRunEvents); await db.delete(environmentLeases); @@ -98,7 +107,6 @@ describeEmbeddedPostgres("heartbeat bounded retry scheduling", () => { await db.delete(issues); await db.delete(executionWorkspaces); await db.delete(projects); - await db.delete(activityLog); await db.delete(heartbeatRunEvents); await db.delete(heartbeatRuns); await db.delete(agentWakeupRequests); @@ -107,12 +115,7 @@ describeEmbeddedPostgres("heartbeat bounded retry scheduling", () => { await db.delete(agents); await db.delete(companySkills); await db.delete(companies); - }); - - afterAll(async () => { - unregisterServerAdapter(PROVIDER_QUOTA_TEST_ADAPTER); - await tempDb?.cleanup(); - }); + } async function seedRetryFixture(input: { runId: string; @@ -1445,16 +1448,7 @@ describeEmbeddedPostgres("heartbeat bounded retry scheduling", () => { issueId: budgetBlocked.issueId, }); - await db.delete(budgetPolicies); - await db.delete(issueRelations); - await db.delete(issues); - await db.delete(heartbeatRunEvents); - await db.delete(heartbeatRuns); - await db.delete(agentWakeupRequests); - await db.delete(agentRuntimeState); - await db.delete(agents); - await db.delete(companySkills); - await db.delete(companies); + await cleanupRetryFixture(); const dependencyBlocked = await seedMaxTurnFixture({ now: new Date("2026-04-20T17:00:00.000Z") }); const blockerId = randomUUID(); @@ -2116,12 +2110,7 @@ describeEmbeddedPostgres("heartbeat bounded retry scheduling", () => { .then((rows) => rows[0] ?? null); expect((wakeupRequest?.payload as Record | null)?.codexTransientFallbackMode).toBe(expectedMode); - await db.delete(heartbeatRunEvents); - await db.delete(heartbeatRuns); - await db.delete(agentWakeupRequests); - await db.delete(agents); - await db.delete(companySkills); - await db.delete(companies); + await cleanupRetryFixture(); } });