fix: persist activity state to metadata so API serves real-time activity
- lifecycle-manager: write detected activity to metadata on each poll - session-manager: read activity from metadata instead of hardcoding idle - Fixes: API always returned activity=idle because metadataToSession hardcoded it and lifecycle manager never persisted the detected value
This commit is contained in:
parent
fad2938804
commit
ec36f3b3a7
|
|
@ -201,6 +201,15 @@ export function createLifecycleManager(deps: LifecycleManagerDeps): LifecycleMan
|
|||
// empty output means the runtime probe failed, not that the agent exited.
|
||||
if (terminalOutput) {
|
||||
const activity = agent.detectActivity(terminalOutput);
|
||||
console.log("[LIFECYCLE DEBUG] session:", session.id, "activity:", activity, "hasEsc:", /esc to interrupt/i.test(terminalOutput), "terminalLen:", terminalOutput.length);
|
||||
// Persist detected activity to metadata so the API can serve it
|
||||
const projectMetaDir2 = session.projectId
|
||||
? join(config.dataDir, `${session.projectId}-sessions`)
|
||||
: config.dataDir;
|
||||
const metaDir2 = existsSync(join(projectMetaDir2, session.id))
|
||||
? projectMetaDir2
|
||||
: config.dataDir;
|
||||
updateMetadata(metaDir2, session.id, { activity });
|
||||
if (activity === "waiting_input") return "needs_input";
|
||||
|
||||
// Check whether the agent process is still alive. Some agents
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import type {
|
|||
SessionId,
|
||||
SessionSpawnConfig,
|
||||
SessionStatus,
|
||||
ActivityState,
|
||||
CleanupResult,
|
||||
OrchestratorConfig,
|
||||
ProjectConfig,
|
||||
|
|
@ -106,7 +107,7 @@ function metadataToSession(
|
|||
id: sessionId,
|
||||
projectId: meta["project"] ?? "",
|
||||
status: validateStatus(meta["status"]),
|
||||
activity: "idle",
|
||||
activity: (meta["activity"] as ActivityState) || "idle",
|
||||
branch: meta["branch"] || null,
|
||||
issueId: meta["issue"] || null,
|
||||
pr: meta["pr"]
|
||||
|
|
|
|||
Loading…
Reference in New Issue