codesift-mcp 0.15.5 → 0.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/auto-prune.d.ts +16 -0
- package/dist/cli/auto-prune.d.ts.map +1 -0
- package/dist/cli/auto-prune.js +87 -0
- package/dist/cli/auto-prune.js.map +1 -0
- package/dist/cli/commands-admin.d.ts.map +1 -1
- package/dist/cli/commands-admin.js +11 -0
- package/dist/cli/commands-admin.js.map +1 -1
- package/dist/cli/commands-daemon.d.ts.map +1 -1
- package/dist/cli/commands-daemon.js +41 -0
- package/dist/cli/commands-daemon.js.map +1 -1
- package/dist/cli/commands-index.d.ts.map +1 -1
- package/dist/cli/commands-index.js +8 -0
- package/dist/cli/commands-index.js.map +1 -1
- package/dist/cli/commands-maintenance.d.ts.map +1 -1
- package/dist/cli/commands-maintenance.js +173 -3
- package/dist/cli/commands-maintenance.js.map +1 -1
- package/dist/cli/embed-child.js +5 -1
- package/dist/cli/embed-child.js.map +1 -1
- package/dist/cli/hooks/pre-compact.d.ts.map +1 -1
- package/dist/cli/hooks/pre-compact.js +4 -0
- package/dist/cli/hooks/pre-compact.js.map +1 -1
- package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
- package/dist/cli/hooks/pre-tool-use.js +5 -2
- package/dist/cli/hooks/pre-tool-use.js.map +1 -1
- package/dist/cli/hooks/session.d.ts.map +1 -1
- package/dist/cli/hooks/session.js +5 -0
- package/dist/cli/hooks/session.js.map +1 -1
- package/dist/cli/hooks/shared.d.ts.map +1 -1
- package/dist/cli/hooks/shared.js +6 -2
- package/dist/cli/hooks/shared.js.map +1 -1
- package/dist/cli/hooks/wiki.d.ts +13 -0
- package/dist/cli/hooks/wiki.d.ts.map +1 -1
- package/dist/cli/hooks/wiki.js +19 -2
- package/dist/cli/hooks/wiki.js.map +1 -1
- package/dist/cli/orphan-guard.d.ts +22 -0
- package/dist/cli/orphan-guard.d.ts.map +1 -1
- package/dist/cli/orphan-guard.js +30 -0
- package/dist/cli/orphan-guard.js.map +1 -1
- package/dist/cli/owner-only-file.d.ts +9 -0
- package/dist/cli/owner-only-file.d.ts.map +1 -1
- package/dist/cli/owner-only-file.js +40 -8
- package/dist/cli/owner-only-file.js.map +1 -1
- package/dist/cli/service.d.ts +32 -0
- package/dist/cli/service.d.ts.map +1 -1
- package/dist/cli/service.js +74 -4
- package/dist/cli/service.js.map +1 -1
- package/dist/cli/setup/claude.js +3 -3
- package/dist/cli/setup/claude.js.map +1 -1
- package/dist/cli/setup/codex-project-auto.d.ts +27 -0
- package/dist/cli/setup/codex-project-auto.d.ts.map +1 -0
- package/dist/cli/setup/codex-project-auto.js +98 -0
- package/dist/cli/setup/codex-project-auto.js.map +1 -0
- package/dist/cli/setup/codex.d.ts.map +1 -1
- package/dist/cli/setup/codex.js +105 -10
- package/dist/cli/setup/codex.js.map +1 -1
- package/dist/cli/setup/cursor.d.ts.map +1 -1
- package/dist/cli/setup/cursor.js +9 -1
- package/dist/cli/setup/cursor.js.map +1 -1
- package/dist/cli/setup/fs.d.ts +2 -0
- package/dist/cli/setup/fs.d.ts.map +1 -1
- package/dist/cli/setup/fs.js +4 -1
- package/dist/cli/setup/fs.js.map +1 -1
- package/dist/cli/setup/gemini.d.ts.map +1 -1
- package/dist/cli/setup/gemini.js +25 -4
- package/dist/cli/setup/gemini.js.map +1 -1
- package/dist/cli/setup/hooks.d.ts +10 -0
- package/dist/cli/setup/hooks.d.ts.map +1 -1
- package/dist/cli/setup/hooks.js +25 -3
- package/dist/cli/setup/hooks.js.map +1 -1
- package/dist/cli/setup/mcp.d.ts +37 -1
- package/dist/cli/setup/mcp.d.ts.map +1 -1
- package/dist/cli/setup/mcp.js +57 -4
- package/dist/cli/setup/mcp.js.map +1 -1
- package/dist/cli/setup/types.d.ts +19 -1
- package/dist/cli/setup/types.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +30 -6
- package/dist/config.js.map +1 -1
- package/dist/formatters-core.d.ts +1 -0
- package/dist/formatters-core.d.ts.map +1 -1
- package/dist/formatters-core.js +8 -2
- package/dist/formatters-core.js.map +1 -1
- package/dist/formatters-shortening.d.ts.map +1 -1
- package/dist/formatters-shortening.js +8 -2
- package/dist/formatters-shortening.js.map +1 -1
- package/dist/instructions.d.ts +22 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +61 -1
- package/dist/instructions.js.map +1 -1
- package/dist/lsp/lsp-client.d.ts +1 -1
- package/dist/lsp/lsp-client.d.ts.map +1 -1
- package/dist/lsp/lsp-client.js +2 -1
- package/dist/lsp/lsp-client.js.map +1 -1
- package/dist/lsp/lsp-manager.d.ts.map +1 -1
- package/dist/lsp/lsp-manager.js +10 -2
- package/dist/lsp/lsp-manager.js.map +1 -1
- package/dist/lsp/lsp-servers.d.ts +7 -0
- package/dist/lsp/lsp-servers.d.ts.map +1 -1
- package/dist/lsp/lsp-servers.js +82 -1
- package/dist/lsp/lsp-servers.js.map +1 -1
- package/dist/parser/parser-manager.d.ts.map +1 -1
- package/dist/parser/parser-manager.js +8 -2
- package/dist/parser/parser-manager.js.map +1 -1
- package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
- package/dist/register-tool-groups/core/symbols.js +71 -6
- package/dist/register-tool-groups/core/symbols.js.map +1 -1
- package/dist/register-tool-groups/meta.d.ts.map +1 -1
- package/dist/register-tool-groups/meta.js +23 -0
- package/dist/register-tool-groups/meta.js.map +1 -1
- package/dist/register-tools/discovery.d.ts +7 -0
- package/dist/register-tools/discovery.d.ts.map +1 -1
- package/dist/register-tools/discovery.js +8 -1
- package/dist/register-tools/discovery.js.map +1 -1
- package/dist/register-tools/runtime.d.ts +1 -1
- package/dist/register-tools/runtime.d.ts.map +1 -1
- package/dist/register-tools/runtime.js +9 -2
- package/dist/register-tools/runtime.js.map +1 -1
- package/dist/register-tools.d.ts +3 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +7 -2
- package/dist/register-tools.js.map +1 -1
- package/dist/search/bm25-store.d.ts +16 -0
- package/dist/search/bm25-store.d.ts.map +1 -0
- package/dist/search/bm25-store.js +294 -0
- package/dist/search/bm25-store.js.map +1 -0
- package/dist/search/bm25.d.ts +52 -0
- package/dist/search/bm25.d.ts.map +1 -1
- package/dist/search/bm25.js +202 -34
- package/dist/search/bm25.js.map +1 -1
- package/dist/search/embed-gate.d.ts +17 -0
- package/dist/search/embed-gate.d.ts.map +1 -0
- package/dist/search/embed-gate.js +64 -0
- package/dist/search/embed-gate.js.map +1 -0
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +5 -2
- package/dist/search/semantic.js.map +1 -1
- package/dist/server-helpers/cache-report.d.ts +36 -0
- package/dist/server-helpers/cache-report.d.ts.map +1 -0
- package/dist/server-helpers/cache-report.js +26 -0
- package/dist/server-helpers/cache-report.js.map +1 -0
- package/dist/server-helpers/health-vitals.d.ts +45 -0
- package/dist/server-helpers/health-vitals.d.ts.map +1 -0
- package/dist/server-helpers/health-vitals.js +85 -0
- package/dist/server-helpers/health-vitals.js.map +1 -0
- package/dist/server-helpers/request-context.d.ts +34 -4
- package/dist/server-helpers/request-context.d.ts.map +1 -1
- package/dist/server-helpers/request-context.js +4 -0
- package/dist/server-helpers/request-context.js.map +1 -1
- package/dist/server-helpers/response-budget.d.ts +24 -0
- package/dist/server-helpers/response-budget.d.ts.map +1 -0
- package/dist/server-helpers/response-budget.js +29 -0
- package/dist/server-helpers/response-budget.js.map +1 -0
- package/dist/server-helpers/response-hints.d.ts.map +1 -1
- package/dist/server-helpers/response-hints.js +43 -0
- package/dist/server-helpers/response-hints.js.map +1 -1
- package/dist/server-helpers/shown-source.d.ts +59 -0
- package/dist/server-helpers/shown-source.d.ts.map +1 -0
- package/dist/server-helpers/shown-source.js +175 -0
- package/dist/server-helpers/shown-source.js.map +1 -0
- package/dist/server-helpers/stdio-envelope.d.ts +31 -0
- package/dist/server-helpers/stdio-envelope.d.ts.map +1 -0
- package/dist/server-helpers/stdio-envelope.js +67 -0
- package/dist/server-helpers/stdio-envelope.js.map +1 -0
- package/dist/server-helpers.d.ts +7 -0
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +51 -10
- package/dist/server-helpers.js.map +1 -1
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +235 -51
- package/dist/server.js.map +1 -1
- package/dist/storage/_shared.d.ts +26 -1
- package/dist/storage/_shared.d.ts.map +1 -1
- package/dist/storage/_shared.js +74 -3
- package/dist/storage/_shared.js.map +1 -1
- package/dist/storage/index-migration.d.ts.map +1 -1
- package/dist/storage/index-migration.js +6 -2
- package/dist/storage/index-migration.js.map +1 -1
- package/dist/storage/index-store.d.ts +29 -0
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +112 -0
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +13 -1
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/session-state.d.ts +7 -0
- package/dist/storage/session-state.d.ts.map +1 -1
- package/dist/storage/session-state.js +3 -0
- package/dist/storage/session-state.js.map +1 -1
- package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
- package/dist/storage/shared-embedding-cache.js +153 -2
- package/dist/storage/shared-embedding-cache.js.map +1 -1
- package/dist/storage/sqlite/accessors.d.ts +17 -0
- package/dist/storage/sqlite/accessors.d.ts.map +1 -1
- package/dist/storage/sqlite/accessors.js +20 -0
- package/dist/storage/sqlite/accessors.js.map +1 -1
- package/dist/storage/sqlite/connection.d.ts +20 -0
- package/dist/storage/sqlite/connection.d.ts.map +1 -1
- package/dist/storage/sqlite/connection.js +61 -0
- package/dist/storage/sqlite/connection.js.map +1 -1
- package/dist/storage/sqlite/index-io.d.ts +5 -0
- package/dist/storage/sqlite/index-io.d.ts.map +1 -1
- package/dist/storage/sqlite/index-io.js +98 -9
- package/dist/storage/sqlite/index-io.js.map +1 -1
- package/dist/storage/sqlite/meta.d.ts +7 -0
- package/dist/storage/sqlite/meta.d.ts.map +1 -1
- package/dist/storage/sqlite/meta.js.map +1 -1
- package/dist/storage/sqlite/queries.d.ts +66 -0
- package/dist/storage/sqlite/queries.d.ts.map +1 -0
- package/dist/storage/sqlite/queries.js +196 -0
- package/dist/storage/sqlite/queries.js.map +1 -0
- package/dist/storage/sqlite/schema.d.ts +2 -2
- package/dist/storage/sqlite/schema.d.ts.map +1 -1
- package/dist/storage/sqlite/schema.js +36 -0
- package/dist/storage/sqlite/schema.js.map +1 -1
- package/dist/storage/sqlite-index-store.d.ts +3 -1
- package/dist/storage/sqlite-index-store.d.ts.map +1 -1
- package/dist/storage/sqlite-index-store.js +4 -1
- package/dist/storage/sqlite-index-store.js.map +1 -1
- package/dist/storage/telemetry/uploader.js +1 -1
- package/dist/storage/telemetry/uploader.js.map +1 -1
- package/dist/storage/usage-tracker.d.ts +11 -0
- package/dist/storage/usage-tracker.d.ts.map +1 -1
- package/dist/storage/usage-tracker.js +18 -0
- package/dist/storage/usage-tracker.js.map +1 -1
- package/dist/tools/boundary-tools.js +2 -2
- package/dist/tools/boundary-tools.js.map +1 -1
- package/dist/tools/community-tools.d.ts +7 -0
- package/dist/tools/community-tools.d.ts.map +1 -1
- package/dist/tools/community-tools.js +31 -14
- package/dist/tools/community-tools.js.map +1 -1
- package/dist/tools/complexity-tools.d.ts.map +1 -1
- package/dist/tools/complexity-tools.js +65 -45
- package/dist/tools/complexity-tools.js.map +1 -1
- package/dist/tools/conversation-cache.d.ts +23 -3
- package/dist/tools/conversation-cache.d.ts.map +1 -1
- package/dist/tools/conversation-cache.js +141 -4
- package/dist/tools/conversation-cache.js.map +1 -1
- package/dist/tools/conversation-index-tools.d.ts +12 -0
- package/dist/tools/conversation-index-tools.d.ts.map +1 -1
- package/dist/tools/conversation-index-tools.js +316 -5
- package/dist/tools/conversation-index-tools.js.map +1 -1
- package/dist/tools/conversation-search-tools.d.ts +0 -5
- package/dist/tools/conversation-search-tools.d.ts.map +1 -1
- package/dist/tools/conversation-search-tools.js +78 -7
- package/dist/tools/conversation-search-tools.js.map +1 -1
- package/dist/tools/coupling-tools.d.ts +2 -2
- package/dist/tools/coupling-tools.d.ts.map +1 -1
- package/dist/tools/coupling-tools.js +8 -13
- package/dist/tools/coupling-tools.js.map +1 -1
- package/dist/tools/diff-tools.d.ts.map +1 -1
- package/dist/tools/diff-tools.js +8 -14
- package/dist/tools/diff-tools.js.map +1 -1
- package/dist/tools/explore-tools.d.ts +9 -0
- package/dist/tools/explore-tools.d.ts.map +1 -0
- package/dist/tools/explore-tools.js +177 -0
- package/dist/tools/explore-tools.js.map +1 -0
- package/dist/tools/git-exec.d.ts +42 -0
- package/dist/tools/git-exec.d.ts.map +1 -0
- package/dist/tools/git-exec.js +53 -0
- package/dist/tools/git-exec.js.map +1 -0
- package/dist/tools/graph-tools.d.ts +7 -0
- package/dist/tools/graph-tools.d.ts.map +1 -1
- package/dist/tools/graph-tools.js +41 -2
- package/dist/tools/graph-tools.js.map +1 -1
- package/dist/tools/hotspot-tools.d.ts +25 -0
- package/dist/tools/hotspot-tools.d.ts.map +1 -1
- package/dist/tools/hotspot-tools.js +24 -3
- package/dist/tools/hotspot-tools.js.map +1 -1
- package/dist/tools/impact-tools.d.ts.map +1 -1
- package/dist/tools/impact-tools.js +6 -9
- package/dist/tools/impact-tools.js.map +1 -1
- package/dist/tools/index-tools/file-indexer.d.ts +4 -0
- package/dist/tools/index-tools/file-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/file-indexer.js +155 -16
- package/dist/tools/index-tools/file-indexer.js.map +1 -1
- package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/folder-indexer.js +5 -5
- package/dist/tools/index-tools/folder-indexer.js.map +1 -1
- package/dist/tools/index-tools/load-gate.d.ts +15 -0
- package/dist/tools/index-tools/load-gate.d.ts.map +1 -0
- package/dist/tools/index-tools/load-gate.js +57 -0
- package/dist/tools/index-tools/load-gate.js.map +1 -0
- package/dist/tools/index-tools/overload-guard.d.ts +16 -0
- package/dist/tools/index-tools/overload-guard.d.ts.map +1 -0
- package/dist/tools/index-tools/overload-guard.js +68 -0
- package/dist/tools/index-tools/overload-guard.js.map +1 -0
- package/dist/tools/index-tools/registry.d.ts +25 -1
- package/dist/tools/index-tools/registry.d.ts.map +1 -1
- package/dist/tools/index-tools/registry.js +149 -8
- package/dist/tools/index-tools/registry.js.map +1 -1
- package/dist/tools/index-tools/state.d.ts +35 -1
- package/dist/tools/index-tools/state.d.ts.map +1 -1
- package/dist/tools/index-tools/state.js +72 -0
- package/dist/tools/index-tools/state.js.map +1 -1
- package/dist/tools/index-tools/watcher.d.ts.map +1 -1
- package/dist/tools/index-tools/watcher.js +13 -5
- package/dist/tools/index-tools/watcher.js.map +1 -1
- package/dist/tools/index-tools/worktree-seed.d.ts +39 -1
- package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -1
- package/dist/tools/index-tools/worktree-seed.js +154 -21
- package/dist/tools/index-tools/worktree-seed.js.map +1 -1
- package/dist/tools/index-tools.d.ts +2 -2
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +2 -2
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/insights-tools.d.ts.map +1 -1
- package/dist/tools/insights-tools.js +6 -3
- package/dist/tools/insights-tools.js.map +1 -1
- package/dist/tools/journal-generator-helpers.d.ts.map +1 -1
- package/dist/tools/journal-generator-helpers.js +3 -1
- package/dist/tools/journal-generator-helpers.js.map +1 -1
- package/dist/tools/patterns/execution.d.ts.map +1 -1
- package/dist/tools/patterns/execution.js +28 -10
- package/dist/tools/patterns/execution.js.map +1 -1
- package/dist/tools/review-diff/checks/coupling.js +1 -1
- package/dist/tools/review-diff/checks/coupling.js.map +1 -1
- package/dist/tools/secret-detectors.d.ts +10 -1
- package/dist/tools/secret-detectors.d.ts.map +1 -1
- package/dist/tools/secret-detectors.js +16 -2
- package/dist/tools/secret-detectors.js.map +1 -1
- package/dist/tools/secret-file-scanner.d.ts +3 -1
- package/dist/tools/secret-file-scanner.d.ts.map +1 -1
- package/dist/tools/secret-file-scanner.js +4 -2
- package/dist/tools/secret-file-scanner.js.map +1 -1
- package/dist/tools/secret-tools.d.ts.map +1 -1
- package/dist/tools/secret-tools.js +6 -3
- package/dist/tools/secret-tools.js.map +1 -1
- package/dist/tools/status-tools.d.ts +20 -0
- package/dist/tools/status-tools.d.ts.map +1 -1
- package/dist/tools/status-tools.js +46 -0
- package/dist/tools/status-tools.js.map +1 -1
- package/dist/tools/symbol-analysis-tools.d.ts.map +1 -1
- package/dist/tools/symbol-analysis-tools.js +27 -2
- package/dist/tools/symbol-analysis-tools.js.map +1 -1
- package/dist/tools/symbol-reference-tools.js +4 -4
- package/dist/tools/symbol-reference-tools.js.map +1 -1
- package/dist/tools/symbol-tool-internals.d.ts +10 -0
- package/dist/tools/symbol-tool-internals.d.ts.map +1 -1
- package/dist/tools/symbol-tool-internals.js +16 -1
- package/dist/tools/symbol-tool-internals.js.map +1 -1
- package/dist/tools/test-impact-tools.js +1 -1
- package/dist/tools/test-impact-tools.js.map +1 -1
- package/dist/tools/wiki-overview-sources.d.ts.map +1 -1
- package/dist/tools/wiki-overview-sources.js +3 -0
- package/dist/tools/wiki-overview-sources.js.map +1 -1
- package/dist/utils/import-graph/collect.d.ts +2 -3
- package/dist/utils/import-graph/collect.d.ts.map +1 -1
- package/dist/utils/import-graph/collect.js +73 -8
- package/dist/utils/import-graph/collect.js.map +1 -1
- package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -1
- package/dist/utils/import-graph/edge-accumulator.js +5 -0
- package/dist/utils/import-graph/edge-accumulator.js.map +1 -1
- package/dist/utils/import-graph/edge-cache.d.ts +15 -0
- package/dist/utils/import-graph/edge-cache.d.ts.map +1 -0
- package/dist/utils/import-graph/edge-cache.js +106 -0
- package/dist/utils/import-graph/edge-cache.js.map +1 -0
- package/dist/utils/import-graph/language-imports.d.ts +2 -2
- package/dist/utils/import-graph/language-imports.d.ts.map +1 -1
- package/dist/utils/import-graph/language-imports.js.map +1 -1
- package/dist/utils/import-graph/path-map.d.ts +2 -2
- package/dist/utils/import-graph/path-map.d.ts.map +1 -1
- package/dist/utils/import-graph/path-map.js.map +1 -1
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts +2 -3
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -1
- package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -1
- package/dist/utils/import-graph/source-edge-collector.d.ts +2 -3
- package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -1
- package/dist/utils/import-graph/types.d.ts +36 -1
- package/dist/utils/import-graph/types.d.ts.map +1 -1
- package/dist/utils/import-graph/typescript-edge-collector.d.ts +2 -3
- package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -1
- package/dist/utils/import-graph/typescript-edge-collector.js +6 -2
- package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -1
- package/dist/utils/import-graph/workspace-alias.d.ts +2 -2
- package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -1
- package/dist/utils/import-graph/workspace-alias.js.map +1 -1
- package/dist/utils/language-detect.d.ts +2 -4
- package/dist/utils/language-detect.d.ts.map +1 -1
- package/dist/utils/language-detect.js +26 -4
- package/dist/utils/language-detect.js.map +1 -1
- package/dist/utils/ts-imports.d.ts +16 -0
- package/dist/utils/ts-imports.d.ts.map +1 -1
- package/dist/utils/ts-imports.js +65 -3
- package/dist/utils/ts-imports.js.map +1 -1
- package/package.json +3 -3
- package/rules/codesift.md +19 -0
- package/rules/codesift.mdc +19 -0
- package/rules/codex.md +19 -0
- package/rules/gemini.md +19 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { existsSync, mkdirSync, appendFileSync, statSync } from "node:fs";
|
|
3
|
-
import { open } from "node:fs/promises";
|
|
3
|
+
import { open, rename, unlink } from "node:fs/promises";
|
|
4
4
|
import { homedir, totalmem } from "node:os";
|
|
5
5
|
import { join } from "node:path";
|
|
6
|
+
import { cleanupOrphanTempFiles } from "./_shared.js";
|
|
6
7
|
/**
|
|
7
8
|
* Embeddings keyed by CONTENT, shared across every repository.
|
|
8
9
|
*
|
|
@@ -259,7 +260,12 @@ export async function loadSharedCache() {
|
|
|
259
260
|
p += total;
|
|
260
261
|
}
|
|
261
262
|
carry = p < data.length ? Buffer.from(data.subarray(p)) : Buffer.alloc(0);
|
|
262
|
-
|
|
263
|
+
// A leftover carry means a record spans the slab boundary — EXCEPT when the budget stop just
|
|
264
|
+
// abandoned the rest of the slab on purpose. Conflating the two made every budget stop also
|
|
265
|
+
// report "stopped early at an unreadable record", which names a corrupt file as the cause of
|
|
266
|
+
// a deliberate limit. Observed on this install 2026-09-27: both messages printed for one
|
|
267
|
+
// clean 12.97 GB file.
|
|
268
|
+
if (carry.length > 0 && !stoppedAtBudget)
|
|
263
269
|
skippedTail = true;
|
|
264
270
|
}
|
|
265
271
|
}
|
|
@@ -290,8 +296,153 @@ export async function loadSharedCache() {
|
|
|
290
296
|
}
|
|
291
297
|
memory = map;
|
|
292
298
|
loadedFrom = path;
|
|
299
|
+
// Guarded at the CALL SITE as well as inside. This function is documented to never throw — "a cache
|
|
300
|
+
// that cannot be read must degrade into 'compute it again', never into an error" — and compaction
|
|
301
|
+
// was added after that promise, outside the try/finally above. Its own internals are guarded, so
|
|
302
|
+
// this is belt-and-braces rather than a known throw; the cross-model review of this release flagged
|
|
303
|
+
// the shape, and the contract is worth more than the one line it costs.
|
|
304
|
+
if (budget > 0) {
|
|
305
|
+
try {
|
|
306
|
+
await compactIfUnreadableTailDominates(path, map, budget);
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
// A cache that could not be compacted is a cache that is merely large.
|
|
310
|
+
}
|
|
311
|
+
}
|
|
293
312
|
return map;
|
|
294
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* How far past the read budget the file may grow before it is rewritten.
|
|
316
|
+
*
|
|
317
|
+
* Above the budget the reader stops, so every further byte is written and never read again. Two
|
|
318
|
+
* budgets of slack keeps a single oversized append from triggering a rewrite, while bounding the
|
|
319
|
+
* dead tail to roughly the size of the live part.
|
|
320
|
+
*/
|
|
321
|
+
const COMPACT_ABOVE_BUDGETS = 3;
|
|
322
|
+
/**
|
|
323
|
+
* Why there is NO once-per-process guard here, and what that leaves unbounded.
|
|
324
|
+
*
|
|
325
|
+
* Two versions of one existed: a `compacted` boolean, then a `compactedAtSize` high-water mark added
|
|
326
|
+
* after a reviewer pointed out the boolean was the wrong bound for a daemon that runs for days. Both
|
|
327
|
+
* were DEAD CODE, and the second was wrong on top of being dead — it recorded the PRE-compaction size,
|
|
328
|
+
* so a 4 GB file compacted to 256 MB would have needed 4 GB again rather than the 3x-budget threshold
|
|
329
|
+
* its own comment promised.
|
|
330
|
+
*
|
|
331
|
+
* Dead because `loadSharedCache` memoises: the second call returns `memory` and never reaches
|
|
332
|
+
* compaction. That memo IS the once-per-process bound, and a second variable claiming the same job is
|
|
333
|
+
* how a safety property nobody actually has gets believed.
|
|
334
|
+
*
|
|
335
|
+
* What genuinely remains unbounded: a long-lived process compacts at most once, at the moment it first
|
|
336
|
+
* reads the cache, and then appends for the rest of its life without ever looking again. The daemon
|
|
337
|
+
* runs for days. Bounding that needs compaction reachable from the APPEND path — which is synchronous
|
|
338
|
+
* and hot — so it is a design question, recorded in memory/backlog.md rather than papered over with a
|
|
339
|
+
* guard that cannot fire. Each new process still compacts, which is what took 12.97 GB to 270 MB here.
|
|
340
|
+
*/
|
|
341
|
+
/**
|
|
342
|
+
* Rewrite the file to hold only the records the reader can actually use.
|
|
343
|
+
*
|
|
344
|
+
* The read side stops at `sharedCacheBudgetBytes()` and the write side dedups against the map that
|
|
345
|
+
* read produced — so a key beyond the budget is invisible to every process that opens the file, and
|
|
346
|
+
* gets appended again on the next pass. That is a growth loop, not a slow leak, and it is what the
|
|
347
|
+
* budget's own comment ("a partially loaded cache is still completely correct") did not account for.
|
|
348
|
+
*
|
|
349
|
+
* Measured on this machine 2026-09-27, before this existed:
|
|
350
|
+
*
|
|
351
|
+
* file 12.97 GB, 3,309,550 records
|
|
352
|
+
* read window 268 MB, 87,381 records — 2.6% of the file
|
|
353
|
+
* never read 12.70 GB, 3,222,169 records — 97.4%
|
|
354
|
+
* duplicates in the tail 1,957,738 records — 60.8% of it
|
|
355
|
+
* duplicates overall 59.2% of the file
|
|
356
|
+
*
|
|
357
|
+
* v1's unconditional append was called a defect at 11.3% repeats. This was five times worse, and
|
|
358
|
+
* arrived by adding a bound to the reader without bounding the writer.
|
|
359
|
+
*
|
|
360
|
+
* Compacting to the resident map cannot lose a usable vector: the budget is derived from RAM (or a
|
|
361
|
+
* pinned env var), so every process reads the SAME prefix, and anything outside it was already
|
|
362
|
+
* unreachable. The rewrite is the conservative direction — it turns bytes nothing could read into
|
|
363
|
+
* bytes nothing needs to store.
|
|
364
|
+
*
|
|
365
|
+
* MISMATCHED BUDGETS, and why this is not guarded: the budget is derived from RAM, so processes on
|
|
366
|
+
* one machine agree and compacting to the prefix cannot remove anything a sibling could read. A
|
|
367
|
+
* process with a PINNED `CODESIFT_MAX_SHARED_CACHE_MB` smaller than that default breaks the premise
|
|
368
|
+
* and truncates the file to its own, smaller prefix. The cross-model review of this release called
|
|
369
|
+
* that data loss; by this module's contract it is a larger cache MISS — the siblings recompute and
|
|
370
|
+
* the file refills — so it is documented rather than blocked. A guard on "an explicit budget is set"
|
|
371
|
+
* was written and reverted: it protects a narrow, within-contract degradation while disabling
|
|
372
|
+
* compaction for anyone who pins the variable machine-wide, which is the normal way to pin it.
|
|
373
|
+
*
|
|
374
|
+
* WHAT IT CAN LOSE, and why that is acceptable: the replacement is built from a map captured before
|
|
375
|
+
* the rename, so records another process appends inside that window are discarded when the rename
|
|
376
|
+
* lands. No lock is taken. That is a genuine TOCTOU, and it is bounded by this module's contract —
|
|
377
|
+
* a lost record is a cache MISS, recomputed on demand, never a wrong vector served. It fires at most
|
|
378
|
+
* once per process and only above the slack, so on a machine running 24-37 codesift processes the
|
|
379
|
+
* expected loss is a handful of recomputations, against the 12.70 GB the window buys back. A lock
|
|
380
|
+
* on a best-effort cache would cost more than the misses do. Raised by two independent reviewers of
|
|
381
|
+
* this release; recorded here so the third does not have to rediscover it.
|
|
382
|
+
*/
|
|
383
|
+
async function compactIfUnreadableTailDominates(path, map, budget) {
|
|
384
|
+
// An empty map means the read found nothing — a missing file, an unreadable one, or a first run.
|
|
385
|
+
// Rewriting from it would delete a cache this process simply failed to open.
|
|
386
|
+
if (map.size === 0)
|
|
387
|
+
return;
|
|
388
|
+
let size;
|
|
389
|
+
try {
|
|
390
|
+
size = statSync(path).size;
|
|
391
|
+
}
|
|
392
|
+
catch {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
if (size <= budget * COMPACT_ABOVE_BUDGETS)
|
|
396
|
+
return;
|
|
397
|
+
// Its temp sibling has no repository hash, so `artifactPattern()` cannot match it and `prune`
|
|
398
|
+
// can never reclaim one — this writer has to sweep its own.
|
|
399
|
+
await cleanupOrphanTempFiles(path);
|
|
400
|
+
// Per-call nonce for consistency with the other two writers. Lower risk here — compaction is gated
|
|
401
|
+
// to fire at most once per process — but three independent spellings of "temp then rename" is how
|
|
402
|
+
// one of them ends up being the one without the guard.
|
|
403
|
+
const temp = `${path}.tmp.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2, 8)}`;
|
|
404
|
+
try {
|
|
405
|
+
const handle = await open(temp, "w");
|
|
406
|
+
try {
|
|
407
|
+
// Batched like `appendSharedCache`, for the same reason: one buffer per record is millions of
|
|
408
|
+
// syscalls, and one buffer for the whole map is the v1 allocation bug rebuilt.
|
|
409
|
+
let batch = [];
|
|
410
|
+
let batchBytes = 0;
|
|
411
|
+
for (const [key, vec] of map) {
|
|
412
|
+
const rec = encodeRecord(key, vec);
|
|
413
|
+
if (rec === null)
|
|
414
|
+
continue;
|
|
415
|
+
batch.push(rec);
|
|
416
|
+
batchBytes += rec.length;
|
|
417
|
+
if (batchBytes >= MAX_APPEND_BYTES) {
|
|
418
|
+
await handle.write(Buffer.concat(batch));
|
|
419
|
+
batch = [];
|
|
420
|
+
batchBytes = 0;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (batch.length > 0)
|
|
424
|
+
await handle.write(Buffer.concat(batch));
|
|
425
|
+
}
|
|
426
|
+
finally {
|
|
427
|
+
await handle.close();
|
|
428
|
+
}
|
|
429
|
+
await rename(temp, path);
|
|
430
|
+
console.error(`[codesift] shared embedding cache: rewrote ${(size / 1024 ** 3).toFixed(2)} GB as ` +
|
|
431
|
+
`${map.size} vectors — everything past the ` +
|
|
432
|
+
`${(budget / 1024 ** 2).toFixed(0)} MB read budget was unreachable and was being ` +
|
|
433
|
+
`re-appended on every pass.`);
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
// A failed compaction leaves the original in place, which is correct and merely large. A fresh
|
|
437
|
+
// process tries again, which is where a transient cause resolves.
|
|
438
|
+
try {
|
|
439
|
+
await unlink(temp);
|
|
440
|
+
}
|
|
441
|
+
catch {
|
|
442
|
+
/* already gone */
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
295
446
|
function encodeRecord(key, vec) {
|
|
296
447
|
if (key.length !== KEY_BYTES * 2 || !/^[0-9a-f]+$/.test(key) ||
|
|
297
448
|
vec.length === 0 || vec.length > MAX_DIM)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-embedding-cache.js","sourceRoot":"","sources":["../../src/storage/shared-embedding-cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared-embedding-cache.js","sourceRoot":"","sources":["../../src/storage/shared-embedding-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,4 +31,21 @@ export declare function getSymbolsForFileSqlite(dbPath: string, filePath: string
|
|
|
31
31
|
* in-memory index cache becomes safe here despite the hook writing from its own process.
|
|
32
32
|
*/
|
|
33
33
|
export declare function getDataVersion(dbPath: string): Promise<number>;
|
|
34
|
+
/**
|
|
35
|
+
* Does this database already hold an index?
|
|
36
|
+
*
|
|
37
|
+
* Exists to replace a FULL materialisation used as an emptiness test. `ensureSqliteMigrated` called
|
|
38
|
+
* `loadIndexSqlite(dbPath)` and threw the result away, so every cold entry to a repository built the
|
|
39
|
+
* whole object graph TWICE — once to answer "is it empty", once for real. On the largest index here
|
|
40
|
+
* that is ~349 MB of objects allocated and discarded, and the allocation storm lands on the
|
|
41
|
+
* incremental marking GC, which is a second cost on top of the first.
|
|
42
|
+
*
|
|
43
|
+
* The semantics are copied exactly, not approximated: `loadIndexSqlite` returns null when `repo` or
|
|
44
|
+
* `root` is missing from meta and for no other reason, so those two keys ARE the test.
|
|
45
|
+
*
|
|
46
|
+
* `openIndexDb` is kept because the old call depended on it for side effects — it creates the schema
|
|
47
|
+
* and runs the v1->v2 migration. Dropping it here would move that work to whoever touched the
|
|
48
|
+
* database next, which is exactly the kind of quiet reordering this codebase has been bitten by.
|
|
49
|
+
*/
|
|
50
|
+
export declare function indexDbIsPopulated(dbPath: string): Promise<boolean>;
|
|
34
51
|
//# sourceMappingURL=accessors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/accessors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS5D,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAqC9D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwDzF;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQhC;AAED,6FAA6F;AAC7F,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EAAE,EACxB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,2DAA2D;AAC3D,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpE"}
|
|
1
|
+
{"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/accessors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS5D,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAqC9D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwDzF;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQhC;AAED,6FAA6F;AAC7F,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EAAE,EACxB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,2DAA2D;AAC3D,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE"}
|
|
@@ -175,4 +175,24 @@ export async function getDataVersion(dbPath) {
|
|
|
175
175
|
return row.data_version;
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Does this database already hold an index?
|
|
180
|
+
*
|
|
181
|
+
* Exists to replace a FULL materialisation used as an emptiness test. `ensureSqliteMigrated` called
|
|
182
|
+
* `loadIndexSqlite(dbPath)` and threw the result away, so every cold entry to a repository built the
|
|
183
|
+
* whole object graph TWICE — once to answer "is it empty", once for real. On the largest index here
|
|
184
|
+
* that is ~349 MB of objects allocated and discarded, and the allocation storm lands on the
|
|
185
|
+
* incremental marking GC, which is a second cost on top of the first.
|
|
186
|
+
*
|
|
187
|
+
* The semantics are copied exactly, not approximated: `loadIndexSqlite` returns null when `repo` or
|
|
188
|
+
* `root` is missing from meta and for no other reason, so those two keys ARE the test.
|
|
189
|
+
*
|
|
190
|
+
* `openIndexDb` is kept because the old call depended on it for side effects — it creates the schema
|
|
191
|
+
* and runs the v1->v2 migration. Dropping it here would move that work to whoever touched the
|
|
192
|
+
* database next, which is exactly the kind of quiet reordering this codebase has been bitten by.
|
|
193
|
+
*/
|
|
194
|
+
export async function indexDbIsPopulated(dbPath) {
|
|
195
|
+
const db = await openIndexDb(dbPath);
|
|
196
|
+
return readMetaValue(db, "repo") !== undefined && readMetaValue(db, "root") !== undefined;
|
|
197
|
+
}
|
|
178
198
|
//# sourceMappingURL=accessors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../../src/storage/sqlite/accessors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../../src/storage/sqlite/accessors.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,26 @@ export declare function rollbackQuietly(db: DatabaseSyncType): void;
|
|
|
21
21
|
* an agent edits files faster than the previous write settles.
|
|
22
22
|
*/
|
|
23
23
|
export declare function openIndexDb(dbPath: string): Promise<DatabaseSyncType>;
|
|
24
|
+
/**
|
|
25
|
+
* WAL size past which a write triggers an explicit checkpoint.
|
|
26
|
+
*
|
|
27
|
+
* A bound on a file that otherwise had none. Small enough that replaying it is cheap, large enough
|
|
28
|
+
* that a busy repo is not checkpointing on every save.
|
|
29
|
+
*/
|
|
30
|
+
export declare const WAL_CHECKPOINT_THRESHOLD_BYTES: number;
|
|
31
|
+
/**
|
|
32
|
+
* Checkpoint when the WAL has grown past the threshold.
|
|
33
|
+
*
|
|
34
|
+
* TRUNCATE rather than PASSIVE: PASSIVE is what the automatic checkpoint already does, and being
|
|
35
|
+
* starved by a live reader is precisely the failure this exists to correct. TRUNCATE also returns
|
|
36
|
+
* the file to zero bytes rather than leaving a large one the next reader still has to map.
|
|
37
|
+
*
|
|
38
|
+
* Best-effort by design. If a reader IS mid-snapshot the checkpoint cannot complete, SQLite answers
|
|
39
|
+
* BUSY, and the next write tries again — a failure here must never fail a write that has already
|
|
40
|
+
* committed. An occasional miss is harmless precisely because it retries; before this, the
|
|
41
|
+
* checkpoint never ran at all.
|
|
42
|
+
*/
|
|
43
|
+
export declare function maybeCheckpointWal(db: DatabaseSyncType, dbPath: string, thresholdBytes?: number): void;
|
|
24
44
|
/** Close one cached connection (tests, and the shutdown path). */
|
|
25
45
|
export declare function closeIndexDb(dbPath: string): void;
|
|
26
46
|
export declare function closeAllIndexDbs(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/connection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBpE;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAO1D;AAmBD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgB3E;AA0GD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,QAAmB,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,gBAAgB,EACpB,MAAM,EAAE,MAAM,EAEd,cAAc,GAAE,MAAuC,GACtD,IAAI,CAcN;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAejD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBlF;AAMD,wBAAgB,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { mkdir } from "node:fs/promises";
|
|
2
|
+
import { statSync } from "node:fs";
|
|
2
3
|
import { dirname } from "node:path";
|
|
3
4
|
import { IndexStorageError, rethrowOperational } from "./errors.js";
|
|
4
5
|
import { loadSqliteCtor } from "./runtime.js";
|
|
@@ -87,6 +88,17 @@ async function openUncachedIndexDb(dbPath) {
|
|
|
87
88
|
db = new Ctor(dbPath);
|
|
88
89
|
db.exec("PRAGMA journal_mode = WAL");
|
|
89
90
|
db.exec("PRAGMA busy_timeout = 5000");
|
|
91
|
+
// Explicit, not left to the default. SQLite's automatic checkpoint is PASSIVE and runs at
|
|
92
|
+
// COMMIT — and a PASSIVE checkpoint cannot copy past the oldest live reader snapshot. This
|
|
93
|
+
// process holds exactly such a snapshot for a long time: `openReadConnection` below wraps a
|
|
94
|
+
// PAGED read that yields to the event loop between pages. In a daemon serving many repos there
|
|
95
|
+
// is nearly always one open, so the automatic checkpoint was starved indefinitely and the WAL
|
|
96
|
+
// grew without bound — measured 2026-08-28 at **16.26 GB across 713 files**, largest single WAL
|
|
97
|
+
// 1998 MB against 27 GB of databases. Every read replayed it, which is why cold loads took
|
|
98
|
+
// minutes and the daemon sat in uninterruptible I/O. Lowering the threshold alone would NOT
|
|
99
|
+
// have fixed it (a starved checkpoint is starved at any threshold); `maybeCheckpointWal` is the
|
|
100
|
+
// part that actually bounds the file.
|
|
101
|
+
db.exec("PRAGMA wal_autocheckpoint = 2000");
|
|
90
102
|
db.exec("PRAGMA foreign_keys = ON");
|
|
91
103
|
db.exec(SCHEMA_SQL);
|
|
92
104
|
}
|
|
@@ -176,6 +188,46 @@ async function openUncachedIndexDb(dbPath) {
|
|
|
176
188
|
connections.set(dbPath, db);
|
|
177
189
|
return db;
|
|
178
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* WAL size past which a write triggers an explicit checkpoint.
|
|
193
|
+
*
|
|
194
|
+
* A bound on a file that otherwise had none. Small enough that replaying it is cheap, large enough
|
|
195
|
+
* that a busy repo is not checkpointing on every save.
|
|
196
|
+
*/
|
|
197
|
+
export const WAL_CHECKPOINT_THRESHOLD_BYTES = 64 * 1024 * 1024;
|
|
198
|
+
/**
|
|
199
|
+
* Checkpoint when the WAL has grown past the threshold.
|
|
200
|
+
*
|
|
201
|
+
* TRUNCATE rather than PASSIVE: PASSIVE is what the automatic checkpoint already does, and being
|
|
202
|
+
* starved by a live reader is precisely the failure this exists to correct. TRUNCATE also returns
|
|
203
|
+
* the file to zero bytes rather than leaving a large one the next reader still has to map.
|
|
204
|
+
*
|
|
205
|
+
* Best-effort by design. If a reader IS mid-snapshot the checkpoint cannot complete, SQLite answers
|
|
206
|
+
* BUSY, and the next write tries again — a failure here must never fail a write that has already
|
|
207
|
+
* committed. An occasional miss is harmless precisely because it retries; before this, the
|
|
208
|
+
* checkpoint never ran at all.
|
|
209
|
+
*/
|
|
210
|
+
export function maybeCheckpointWal(db, dbPath,
|
|
211
|
+
// A seam for tests, which cannot cheaply grow a 64 MB WAL. Production never passes it.
|
|
212
|
+
thresholdBytes = WAL_CHECKPOINT_THRESHOLD_BYTES) {
|
|
213
|
+
if (dbPath === ":memory:")
|
|
214
|
+
return;
|
|
215
|
+
let walBytes;
|
|
216
|
+
try {
|
|
217
|
+
walBytes = statSync(`${dbPath}-wal`).size;
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return; // no WAL yet, or it vanished under us — nothing to bound
|
|
221
|
+
}
|
|
222
|
+
if (walBytes < thresholdBytes)
|
|
223
|
+
return;
|
|
224
|
+
try {
|
|
225
|
+
db.exec("PRAGMA wal_checkpoint(TRUNCATE)");
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
/* BUSY under a live reader — the next write tries again */
|
|
229
|
+
}
|
|
230
|
+
}
|
|
179
231
|
/** Close one cached connection (tests, and the shutdown path). */
|
|
180
232
|
export function closeIndexDb(dbPath) {
|
|
181
233
|
const db = connections.get(dbPath);
|
|
@@ -183,6 +235,15 @@ export function closeIndexDb(dbPath) {
|
|
|
183
235
|
return;
|
|
184
236
|
connections.delete(dbPath);
|
|
185
237
|
try {
|
|
238
|
+
// Close is the one moment this process is provably done reading through THIS handle, so it is
|
|
239
|
+
// the checkpoint most likely to succeed. Unconditional rather than threshold-gated: leaving a
|
|
240
|
+
// WAL behind on close is how an idle repo keeps one forever.
|
|
241
|
+
if (dbPath !== ":memory:") {
|
|
242
|
+
try {
|
|
243
|
+
db.exec("PRAGMA wal_checkpoint(TRUNCATE)");
|
|
244
|
+
}
|
|
245
|
+
catch { /* another connection is reading */ }
|
|
246
|
+
}
|
|
186
247
|
db.close();
|
|
187
248
|
}
|
|
188
249
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/storage/sqlite/connection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/storage/sqlite/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,11 @@ export declare function wasLossilyMigrated(dbPath: string): Promise<boolean>;
|
|
|
44
44
|
* never silently clobbers. Returns true when this call performed the import.
|
|
45
45
|
*/
|
|
46
46
|
export declare function importLegacyIndexIfEmpty(dbPath: string, index: CodeIndex): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* Row count for the next page, aimed at the time budget. Extracted so the adaptation can be tested
|
|
49
|
+
* directly: a disk-bound stall is not reproducible in a unit test, but the decision it forces is.
|
|
50
|
+
*/
|
|
51
|
+
export declare function nextPageRows(currentRows: number, elapsedMs: number): number;
|
|
47
52
|
/** Materialise the whole index. Returns null when the db has never been written to. */
|
|
48
53
|
export declare function loadIndexSqlite(dbPath: string): Promise<CodeIndex | null>;
|
|
49
54
|
//# sourceMappingURL=index-io.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-io.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/index-io.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index-io.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/index-io.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,gBAAgB,CAAC;AA0BvE;;;;;;GAMG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE;AA2ED;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,OAAO,CAAC,CAmBlB;AA6ED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK3E;AA+BD,uFAAuF;AACvF,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAkF/E"}
|