Add busy_timeout to the local libSQL connection#1003
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-marketing | 0766801 | Commit Preview URL Branch Preview URL |
Jun 14 2026, 06:37 AM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
executor-cloud | 0766801 | Jun 14 2026, 06:37 AM |
Cloudflare previewTorn down — the PR is closed. |
@executor-js/cli
@executor-js/config
@executor-js/execution
@executor-js/sdk
@executor-js/codemode-core
@executor-js/runtime-quickjs
@executor-js/plugin-file-secrets
@executor-js/plugin-graphql
@executor-js/plugin-keychain
@executor-js/plugin-mcp
@executor-js/plugin-onepassword
@executor-js/plugin-openapi
executor
commit: |
6069b98 to
ec96a52
Compare
Greptile SummaryThis PR adds a per-connection
Confidence Score: 5/5Safe to merge — the change is a one-line PRAGMA addition with a well-understood, bounded effect on connection open behaviour. The change adds a single, well-understood SQLite PRAGMA that is already proven in the self-host code path. It touches no data logic, no schema, and no control flow — only the connection setup sequence in the one open site for the local app. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller
participant openLocalLibsql
participant libsql as libSQL Client
Caller->>openLocalLibsql: openLocalLibsql(path)
openLocalLibsql->>libsql: "createClient({ url: file:... })"
openLocalLibsql->>libsql: "PRAGMA foreign_keys = ON"
openLocalLibsql->>libsql: "PRAGMA journal_mode = WAL"
openLocalLibsql->>libsql: "PRAGMA busy_timeout = 5000 (new)"
openLocalLibsql-->>Caller: Client
Reviews (3): Last reviewed commit: "Add busy_timeout to the local libSQL con..." | Re-trigger Greptile |
ec96a52 to
34b2c67
Compare
Match the self-host open path: a per-connection PRAGMA busy_timeout=5000 gives writers a 5s retry window instead of an instant SQLITE_BUSY when a second OS process transiently holds the write lock (a CLI tool, the v1->v2 migration reader, or a launchd restart racing the old pid).
34b2c67 to
0766801
Compare
Adds a per-connection
PRAGMA busy_timeout = 5000to the local libSQL open path, matching the self-host configuration.WAL gives concurrent readers + a single writer, but with the default
busy_timeout = 0a second writer fails immediately withSQLITE_BUSY. A 5s retry window absorbs the brief contention that happens when a second OS process transiently holds the write lock — a CLI tool, the v1→v2 migration reader, or a supervised daemon restart racing the previous pid.openLocalLibsqlis the single open site for the local app (the FumaDB handle and the migration reader both route through it), so the pragma applies everywhere.Base of a small stack that moves the local MCP gateway onto an OS-supervised daemon.
Stack
executor serviceto supervise the local gateway daemon #1004