diff --git a/packages/core/src/__tests__/session-manager.test.ts b/packages/core/src/__tests__/session-manager.test.ts index ae2d3c466..5722ebaaa 100644 --- a/packages/core/src/__tests__/session-manager.test.ts +++ b/packages/core/src/__tests__/session-manager.test.ts @@ -303,6 +303,16 @@ describe("spawn", () => { expect(meta).not.toBeNull(); expect(meta!["agent"]).toBe("mock-agent"); }); + + it("readMetadata returns agent field (typed SessionMetadata)", async () => { + const sm = createSessionManager({ config, registry: registryWithMultipleAgents }); + + await sm.spawn({ projectId: "my-app", agent: "codex" }); + + const meta = readMetadata(sessionsDir, "app-1"); + expect(meta).not.toBeNull(); + expect(meta!.agent).toBe("codex"); + }); }); it("validates issue exists when issueId provided", async () => { diff --git a/packages/core/src/metadata.ts b/packages/core/src/metadata.ts index 71fd263ec..0e0fb1db5 100644 --- a/packages/core/src/metadata.ts +++ b/packages/core/src/metadata.ts @@ -97,6 +97,7 @@ export function readMetadata(dataDir: string, sessionId: SessionId): SessionMeta pr: raw["pr"], summary: raw["summary"], project: raw["project"], + agent: raw["agent"], createdAt: raw["createdAt"], runtimeHandle: raw["runtimeHandle"], dashboardPort: raw["dashboardPort"] ? Number(raw["dashboardPort"]) : undefined,