Remove unused restorePersistedAgents function

This function was never called after implementing lazy-loading.
Agents are now loaded on-demand via ensureAgentLoaded when the UI
needs them, not eagerly at startup.

Keeping the unused function was confusing - it suggested eager
restoration was still the intended pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Mohamed Boudra
2025-11-30 02:16:14 +00:00
co-authored by Claude
parent 03b4799bc6
commit 51d31bb76d
2 changed files with 4 additions and 139 deletions
@@ -4,7 +4,6 @@ import type { ManagedAgent } from "./agent/agent-manager.js";
import type { StoredAgentRecord } from "./agent/agent-registry.js";
import {
attachAgentRegistryPersistence,
restorePersistedAgents,
} from "./persistence-hooks.js";
import type {
AgentPermissionRequest,
@@ -105,65 +104,6 @@ function createRecord(
}
describe("persistence hooks", () => {
test("restorePersistedAgents resumes and creates agents", async () => {
const resumeAgent = vi.fn().mockResolvedValue(null);
const createAgent = vi.fn().mockResolvedValue(null);
const agentManager = {
resumeAgent,
createAgent,
};
const records: StoredAgentRecord[] = [
createRecord({
id: "claude-agent",
lastModeId: "plan",
}),
createRecord({
id: "codex-agent",
provider: "codex",
cwd: "/tmp/codex",
lastModeId: null,
config: { modeId: "auto", model: "gpt-4.1", extra: { codex: { policy: "auto" } } },
persistence: null,
}),
createRecord({
id: "unknown",
provider: "mystery" as any,
}),
];
const registry = {
list: vi.fn().mockResolvedValue(records),
applySnapshot: vi.fn(),
};
await restorePersistedAgents(
agentManager as any,
registry as any
);
expect(resumeAgent).toHaveBeenCalledTimes(1);
expect(resumeAgent).toHaveBeenCalledWith(
records[0].persistence,
expect.objectContaining({
cwd: records[0].cwd,
modeId: records[0].lastModeId,
model: records[0].config?.model,
}),
records[0].id
);
expect(createAgent).toHaveBeenCalledTimes(1);
expect(createAgent).toHaveBeenCalledWith(
expect.objectContaining({
provider: "codex",
cwd: "/tmp/codex",
modeId: "auto",
model: "gpt-4.1",
extra: { codex: { policy: "auto" } },
}),
"codex-agent"
);
});
test("attachAgentRegistryPersistence forwards agent snapshots", async () => {
const applySnapshot = vi.fn().mockResolvedValue(undefined);
let subscriber: (event: any) => void = () => {
@@ -1,6 +1,5 @@
import type { AgentManager } from "./agent/agent-manager.js";
import type {
AgentPersistenceHandle,
AgentProvider,
AgentSessionConfig,
} from "./agent/agent-sdk-types.js";
@@ -11,7 +10,10 @@ import type {
type AgentRegistryPersistence = Pick<AgentRegistry, "applySnapshot" | "list">;
type AgentManagerStateSource = Pick<AgentManager, "subscribe">;
type AgentManagerRestorer = Pick<AgentManager, "resumeAgent" | "createAgent">;
function isKnownProvider(provider: string): provider is AgentProvider {
return provider === "claude" || provider === "codex";
}
/**
* Attach AgentRegistry persistence to an AgentManager instance so every
@@ -33,83 +35,6 @@ export function attachAgentRegistryPersistence(
return unsubscribe;
}
/**
* Restore persisted agents from the AgentRegistry at server startup.
*/
export async function restorePersistedAgents(
agentManager: AgentManagerRestorer,
registry: AgentRegistryPersistence
): Promise<void> {
const records = await registry.list();
if (records.length === 0) {
return;
}
let resumed = 0;
let created = 0;
for (const record of records) {
if (!isKnownProvider(record.provider)) {
console.warn(
`[Agents] Skipping persisted agent ${record.id} with unknown provider '${record.provider}'`
);
continue;
}
const handle = buildPersistenceHandle(record);
try {
if (handle) {
await agentManager.resumeAgent(
handle,
buildConfigOverrides(record),
record.id
);
resumed += 1;
} else {
await agentManager.createAgent(
buildSessionConfig(record),
record.id
);
created += 1;
}
} catch (error) {
console.error(
`[Agents] Failed to restore agent ${record.id} from registry:`,
error
);
}
}
console.log(
`[Agents] Loaded ${records.length} persisted agent record(s); resumed ${resumed}, created ${created}`
);
}
function isKnownProvider(provider: string): provider is AgentProvider {
return provider === "claude" || provider === "codex";
}
function buildPersistenceHandle(
record: StoredAgentRecord
): AgentPersistenceHandle | null {
if (!record.persistence) {
return null;
}
const { provider, sessionId, nativeHandle, metadata } = record.persistence;
if (!isKnownProvider(provider)) {
console.warn(
`[Agents] Skipping persisted handle for ${record.id} with unknown provider '${provider}'`
);
return null;
}
return {
provider,
sessionId,
nativeHandle,
metadata,
} satisfies AgentPersistenceHandle;
}
export function buildConfigOverrides(
record: StoredAgentRecord
): Partial<AgentSessionConfig> {