feat: add OpenCode session management

This commit is contained in:
liujing
2026-07-16 21:13:11 +08:00
parent 535b03712e
commit 0015774cd4
11 changed files with 1101 additions and 18 deletions
+14
View File
@@ -155,12 +155,26 @@ function fetchAgyMessages(session) {
return result;
}
/** Fetch OpenCode messages via adapter (reuses parsed message format). */
async function fetchOpenCodeMessages(sessionId, adapter) {
try {
const messages = await adapter.getMessages(sessionId);
return messages
.filter(m => m.type === 'user_message' || m.type === 'assistant_message')
.map(m => ({ type: m.type, message: (m.message || '').slice(0, 2000) }));
} catch (err) {
console.warn(`[TitleGen] OpenCode fetch error for ${sessionId.slice(0, 16)}:`, err.message);
return [];
}
}
async function fetchMessages(engine, sessionId, adapter) {
const session = adapter ? adapter.getSession(sessionId) : null;
if (!session) return [];
if (engine === 'codex') return await fetchCodexMessages(session);
if (engine === 'claude') return await fetchClaudeMessages(sessionId);
if (engine === 'agy') return fetchAgyMessages(session);
if (engine === 'opencode') return await fetchOpenCodeMessages(sessionId, adapter);
return [];
}