mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-05-17 03:56:45 +00:00
|
Some checks are pending
CI / semgrep (push) Waiting to run
Reported in #264 as a V8 CHECK abort with `Check failed: (location_) != nullptr` inside `node::sqlite::StatementSync::ColumnToValue`. The crash happens when SQLite returns a TEXT column whose bytes V8's String::NewFromUtf8 rejects (invalid UTF-8 — common for Cursor's stored chat text where multi-byte chars are truncated at streaming boundaries). Node 22.x prior to 22.20 does not check the resulting MaybeLocal<String> for empty before dereferencing, aborting the whole process with a trace trap. A try/catch in JS can't recover — the abort runs in the C++ extension before the V8 exception handler. So we refuse to load node:sqlite at all when we detect a buggy Node version, surface a clear "upgrade Node" diagnostic, and let the rest of the CLI run with the file-based providers (Claude, Codex, Copilot, Gemini, etc.) instead of taking the whole tool down. - engines.node bumped to >=22.20 so npm warns at install time - src/sqlite.ts: checkBuggyNodeVersion() detects Node 22.x < 22.20 and routes through the existing isSqliteAvailable() / loadError diagnostic path |
||
|---|---|---|
| .. | ||
| data | ||
| providers | ||
| bash-utils.ts | ||
| classifier.ts | ||
| cli-date.ts | ||
| cli.ts | ||
| codex-cache.ts | ||
| compare-stats.ts | ||
| compare.tsx | ||
| config.ts | ||
| context-budget.ts | ||
| currency.ts | ||
| cursor-cache.ts | ||
| daily-cache.ts | ||
| dashboard.tsx | ||
| day-aggregator.ts | ||
| export.ts | ||
| format.ts | ||
| fs-utils.ts | ||
| ink-win.ts | ||
| menubar-installer.ts | ||
| menubar-json.ts | ||
| model-efficiency.ts | ||
| models.ts | ||
| optimize.ts | ||
| parser.ts | ||
| plan-usage.ts | ||
| plans.ts | ||
| sqlite.ts | ||
| types.ts | ||
| yield.ts | ||