Skip to content

Commit e020931

Browse files
authored
feat: migrate opencode storage from JSON files to SQLite (#168)
1 parent 56a89b0 commit e020931

File tree

7 files changed

+153
-265
lines changed

7 files changed

+153
-265
lines changed

src/agent/router.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,7 +1289,6 @@ export function createRouter(ctx: RouterContext) {
12891289
const safeQuery = query.replace(/['"\\]/g, '\\$&');
12901290
const searchPaths = [
12911291
path.join(homeDir, '.claude', 'projects'),
1292-
path.join(homeDir, '.local', 'share', 'opencode', 'storage'),
12931292
path.join(homeDir, '.codex', 'sessions'),
12941293
path.join(homeDir, '.pi', 'agent', 'sessions'),
12951294
].filter((p) => {
@@ -1333,14 +1332,6 @@ export function createRouter(ctx: RouterContext) {
13331332
sessionId = match[1];
13341333
agentType = 'claude-code';
13351334
}
1336-
} else if (file.includes('/.local/share/opencode/storage/')) {
1337-
if (file.includes('/session/') && file.endsWith('.json')) {
1338-
const match = file.match(/\/(ses_[^/]+)\.json$/);
1339-
if (match) {
1340-
sessionId = match[1];
1341-
agentType = 'opencode';
1342-
}
1343-
}
13441335
} else if (file.includes('/.codex/sessions/')) {
13451336
const match = file.match(/\/([^/]+)\.jsonl$/);
13461337
if (match) {

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,21 +1272,21 @@ workerCmd
12721272
await import('./sessions/agents/opencode-storage');
12731273

12741274
if (subcommand === 'list') {
1275-
const sessions = await listOpencodeSessions();
1275+
const sessions = listOpencodeSessions();
12761276
console.log(JSON.stringify(sessions));
12771277
} else if (subcommand === 'messages') {
12781278
if (!sessionId) {
12791279
console.error('Usage: perry worker sessions messages <session_id>');
12801280
process.exit(1);
12811281
}
1282-
const result = await getOpencodeSessionMessages(sessionId);
1282+
const result = getOpencodeSessionMessages(sessionId);
12831283
console.log(JSON.stringify(result));
12841284
} else if (subcommand === 'delete') {
12851285
if (!sessionId) {
12861286
console.error('Usage: perry worker sessions delete <session_id>');
12871287
process.exit(1);
12881288
}
1289-
const result = await deleteOpencodeSession(sessionId);
1289+
const result = deleteOpencodeSession(sessionId);
12901290
console.log(JSON.stringify(result));
12911291
} else {
12921292
console.error(`Unknown subcommand: ${subcommand}`);

src/sessions/agents/index.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ export async function searchSessions(
108108

109109
const searchPaths = [
110110
'/home/workspace/.claude/projects',
111-
'/home/workspace/.local/share/opencode/storage',
112111
'/home/workspace/.codex/sessions',
113112
'/home/workspace/.pi/agent/sessions',
114113
];
@@ -136,16 +135,6 @@ export async function searchSessions(
136135
sessionId = match[1];
137136
agentType = 'claude-code';
138137
}
139-
} else if (file.includes('/.local/share/opencode/storage/')) {
140-
if (file.includes('/session/') && file.endsWith('.json')) {
141-
const match = file.match(/\/(ses_[^/]+)\.json$/);
142-
if (match) {
143-
sessionId = match[1];
144-
agentType = 'opencode';
145-
}
146-
} else if (file.includes('/part/') || file.includes('/message/')) {
147-
continue;
148-
}
149138
} else if (file.includes('/.codex/sessions/')) {
150139
const match = file.match(/\/([^/]+)\.jsonl$/);
151140
if (match) {

0 commit comments

Comments
 (0)