fix: load agentType from DB, fix host process PATH and session resume

- Read/write agent_type column in getAllRegisteredGroups/setRegisteredGroup
  (was missing, causing all groups to fall back to claude-code)
- Strip CLAUDECODE env var to prevent nested session detection
- Add node binary path to spawned process PATH for launchd compatibility
- Clear stale container-era sessions that reference /workspace/group
This commit is contained in:
Eyejoker
2026-03-10 21:25:28 +09:00
parent 08dd468692
commit 46f560ed67
2 changed files with 26 additions and 17 deletions

View File

@@ -575,6 +575,7 @@ export function getRegisteredGroup(
container_config: string | null;
requires_trigger: number | null;
is_main: number | null;
agent_type: string | null;
}
| undefined;
if (!row) return undefined;
@@ -597,6 +598,7 @@ export function getRegisteredGroup(
requiresTrigger:
row.requires_trigger === null ? undefined : row.requires_trigger === 1,
isMain: row.is_main === 1 ? true : undefined,
agentType: (row.agent_type as RegisteredGroup['agentType']) || undefined,
};
}
@@ -605,8 +607,8 @@ export function setRegisteredGroup(jid: string, group: RegisteredGroup): void {
throw new Error(`Invalid group folder "${group.folder}" for JID ${jid}`);
}
db.prepare(
`INSERT OR REPLACE INTO registered_groups (jid, name, folder, trigger_pattern, added_at, container_config, requires_trigger, is_main)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
`INSERT OR REPLACE INTO registered_groups (jid, name, folder, trigger_pattern, added_at, container_config, requires_trigger, is_main, agent_type)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
).run(
jid,
group.name,
@@ -616,6 +618,7 @@ export function setRegisteredGroup(jid: string, group: RegisteredGroup): void {
group.containerConfig ? JSON.stringify(group.containerConfig) : null,
group.requiresTrigger === undefined ? 1 : group.requiresTrigger ? 1 : 0,
group.isMain ? 1 : 0,
group.agentType || 'claude-code',
);
}
@@ -629,6 +632,7 @@ export function getAllRegisteredGroups(): Record<string, RegisteredGroup> {
container_config: string | null;
requires_trigger: number | null;
is_main: number | null;
agent_type: string | null;
}>;
const result: Record<string, RegisteredGroup> = {};
for (const row of rows) {
@@ -650,6 +654,7 @@ export function getAllRegisteredGroups(): Record<string, RegisteredGroup> {
requiresTrigger:
row.requires_trigger === null ? undefined : row.requires_trigger === 1,
isMain: row.is_main === 1 ? true : undefined,
agentType: (row.agent_type as RegisteredGroup['agentType']) || undefined,
};
}
return result;