refactor: nuke dead exports, dead files, dead DB column, dead zero-value wrappers

Full-codebase ts-prune + manual audit sweep. Every change below is a pure
deletion (or a 2-line re-wire where a dead function was supposed to be
alive). No scope additions.

Dead wrappers / phantom features
  - shouldAutoApproveApproval: zero-value wrapper over shouldAutoApprove.
    Four call sites now import shouldAutoApprove from execution-policy
    directly.
  - evaluateRotation(session, connectorId, thresholdsOverride): the
    connectorId arg was never read (underscored), and thresholdsOverride
    was only exercised by the test suite — no production caller. Signature
    collapses to evaluateRotation(session). DEFAULT_THRESHOLDS /
    RotationThresholds exports and their tests go with it.
  - installLogRedactor: defensive console wrapper that was never wired
    from worker-entry. buildRedactor handles the known threat (env-value
    leaks); the pattern-based redactTokens stays for tests and future
    composition.

Dead files
  - resume-interrupted-tasks.ts: helper function never imported.
  - service-graph-orchestration-deps.ts: three factory closures
    superseded by the inline closures in create-orchestration-service.

Dead exports
  - listConnectorsByAuthKind (shared/connector-catalog)
  - getLocalePromptInstruction + whole localization.ts file
  - ImportantDocType
  - main-side ConnectorAuthKind (duplicated the shared one; not referenced)
  - CheckpointEngineService, RunHousekeepingService types
  - WorkspaceResolution type
  - cmdOrCtrlSymbol
  - AgentEventPush, CredentialPayload type aliases
  - parseApprovalPayloadJson, parseEnvValue, ProviderCard
  - getSOP — buildSOPSection reads the SOPS map directly; the individual
    getter had no callers. Deduped to a flat array.
  - renderWakeReason in wake-reasons/en.ts: byte-for-byte duplicate of the
    one in wake-reasons/index.ts.

Forgotten wiring (not cleanup, but adjacent)
  - registerAgentStandupRoute: the GET /api/agents/me/standup endpoint is
    advertised in every system prompt and wake-reason doc, but the route
    handler was never registered in api-server/index.ts. Agents have been
    hitting 404 since Pi Mono. Registered.

Dead DB column
  - v44 migration drops runs.context_snapshot_json. Column was added by
    v16-v25, never written or read, and v43's deliberate preservation
    was an interim measure. Same idempotent table-rebuild pattern as
    v41/v43.

Test tree
  - Phantom-feature threshold override tests removed (3). The rest of
    the rotation suite re-expressed against the real maxRuns=20 floor.

495/495 unit tests pass. typecheck + build clean.
This commit is contained in:
ZacharyZhang-NY committed 2026-04-18 23:37:37 -04:00
1 parent e0e43d6127
commit f041336721
33 files changed
+143 -481

No files matched your search

+9 -10
View File
@@ -13,7 +13,7 @@ vi.mock("electron", () => ({
}));
import { AppDatabase } from "../../src/main/database";
import { createSessionManagementService, DEFAULT_THRESHOLDS } from "../../src/main/session-management-service";
import { createSessionManagementService } from "../../src/main/session-management-service";
import type { ConnectorId } from "@shared/types";
// ---------------------------------------------------------------------------
@@ -121,17 +121,17 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
});
// Simulate runs until we reach the maxRuns threshold (20)
for (let i = 0; i < DEFAULT_THRESHOLDS.maxRuns; i++) {
for (let i = 0; i < 20; i++) {
db.incrementSessionUsage(sessionId, 1000, 500, `run-${i}`);
}
// Get the updated session from DB
const session = db.getSessionById(sessionId);
expect(session).not.toBeNull();
expect(session!.runCount).toBe(DEFAULT_THRESHOLDS.maxRuns);
expect(session!.runCount).toBe(20); // matches maxRuns threshold in session-management-service
// Evaluate rotation -- should trigger
const result = sessionService.evaluateRotation(session!, "gemini-cli");
const result = sessionService.evaluateRotation(session!);
expect(result.shouldRotate).toBe(true);
expect(result.reason).toBe("max_runs");
});
@@ -146,8 +146,7 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
adapterType: "gemini-cli",
});
// Accumulate tokens past the threshold in one big call
// DEFAULT_THRESHOLDS.maxTokens = 500_000 (total input + output)
// Accumulate tokens past the 500_000 maxTokens threshold in one big call
db.incrementSessionUsage(sessionId, 300000, 250000, "big-run");
const session = db.getSessionById(sessionId);
@@ -155,7 +154,7 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
const totalTokens = session!.totalInputTokens + session!.totalOutputTokens;
expect(totalTokens).toBe(550000);
const result = sessionService.evaluateRotation(session!, "gemini-cli");
const result = sessionService.evaluateRotation(session!);
expect(result.shouldRotate).toBe(true);
expect(result.reason).toBe("max_tokens");
});
@@ -171,7 +170,7 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
});
// Accumulate enough to trigger rotation
for (let i = 0; i < DEFAULT_THRESHOLDS.maxRuns; i++) {
for (let i = 0; i < 20; i++) {
db.incrementSessionUsage(sessionId, 1000, 500, `run-${i}`);
}
@@ -266,7 +265,7 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
const session = db.getSessionById(sessionId)!;
// Pi-mono delegates compaction to pi-agent-core; AgentCompany still applies rotation uniformly.
const result = sessionService.evaluateRotation(session, "claude-pro");
const result = sessionService.evaluateRotation(session);
expect(result.shouldRotate).toBe(true);
expect(result.reason).not.toBeNull();
});
@@ -288,7 +287,7 @@ describe("Edge Case: Session Rotation During Execution (D-05.3)", () => {
const session = db.getSessionById(sessionId)!;
// Pi-mono delegates compaction to pi-agent-core; AgentCompany still applies rotation uniformly.
const result = sessionService.evaluateRotation(session, "openai-codex");
const result = sessionService.evaluateRotation(session);
expect(result.shouldRotate).toBe(true);
expect(result.reason).not.toBeNull();
});