Commit Graph
5 Commits
Author SHA1 Message Date
tommy0103 a6be5172c3 refactor: split runtime.mjs into db, indexer, query modules
Prepares for adding Codex JSONL support — new indexers can be added
  without touching the query layer.

  - db.mjs: schema, openDb, truncation helpers, shared utilities
  - indexer.mjs: file discovery, JSONL parsing, SQLite writes
  - query.mjs: all query API functions (search, context, raw, etc.)
  - runtime.mjs: thin CLI entry point + VM script executor
2026-05-31 03:29:41 +08:00
tommy0103 fb353f5deb fix(indexer): streaming reads, per-file transactions, and error reporting
- Replace readFileSync+split with chunked line reader (readLines) to
    avoid loading entire JSONL files into memory at once
  - Wrap each file's indexing in its own transaction so one corrupt file
    doesn't roll back the entire index
  - Log warnings to stderr instead of silently swallowing errors in
    indexSubagentMeta, indexWorkflows, and indexHistory
  - Add try/catch around readdirSync calls in discoverJsonlFiles and
    indexWorkflows to survive unreadable directories
  - Push error-pattern filtering in failures() into SQL LIKE clauses
    instead of scanning all tool_results in JS
2026-05-31 02:33:22 +08:00
tommy0103 cf8bd1154e fix(indexer): safe JSON truncation and windowed raw access
- Don't truncate workflow result_json and script (low-volume, must
    stay parseable)
  - Replace blind string truncation on tool_calls.input_json with
    structure-aware truncJson that shortens individual string values
    while keeping the JSON skeleton valid
  - Add raw(uuid, {offset, limit}) API for windowed access to the
    original JSONL line, so truncated content can be recovered on demand
2026-05-30 04:06:42 +08:00
tommy0103 2b02a7b6c8 fix(indexer): preserve session metadata during incremental reindex
Previously the session metadata accumulator started from zero on every
  reindex pass, so an incremental update would overwrite started_at and
  message_count with values derived only from the new lines.

  Now reads the existing session row first and merges new data on top.
2026-05-30 03:53:16 +08:00
tommy0103 bc9b6dde72 build(obelisk): let Claude Code search its own session history
- SQLite + FTS5 index over ~/.claude JSONL transcripts.
  - Agent writes JS queries at runtime — same sandbox pattern as workflows.
  - Covers sessions, subagents, workflow executions, tool calls, and full-text search.
2026-05-30 03:21:35 +08:00