dirsql 0.4.95__tar.gz → 0.4.96__tar.gz
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.
- {dirsql-0.4.95 → dirsql-0.4.96}/Cargo.lock +40 -2
- {dirsql-0.4.95 → dirsql-0.4.96}/PKG-INFO +1 -1
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/_async.py +1 -1
- {dirsql-0.4.95/packages/python → dirsql-0.4.96}/docs/howto/persist.md +11 -16
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96}/docs/howto/search-indexes.md +1 -1
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/skip-files.md +0 -3
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/cli.md +1 -1
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96}/docs/reference/config.md +0 -6
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96}/docs/reference/path-tables.md +1 -2
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/sdk.md +3 -3
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.96/packages/python/changelog.d/2026-10-07-persist-cache-outside-root.md +7 -0
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96/packages/python}/docs/howto/persist.md +11 -16
- {dirsql-0.4.95 → dirsql-0.4.96/packages/python}/docs/howto/search-indexes.md +1 -1
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96/packages/python}/docs/howto/skip-files.md +0 -3
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96/packages/python}/docs/reference/cli.md +1 -1
- {dirsql-0.4.95 → dirsql-0.4.96/packages/python}/docs/reference/config.md +0 -6
- {dirsql-0.4.95 → dirsql-0.4.96/packages/python}/docs/reference/path-tables.md +1 -2
- {dirsql-0.4.95/packages/rust → dirsql-0.4.96/packages/python}/docs/reference/sdk.md +3 -3
- dirsql-0.4.96/packages/python/e2e-attestations/bot-1431-persist-cache-dir.json +7 -0
- dirsql-0.4.96/packages/python/migrations.d/2026-10-07-persist-cache-outside-root.md +35 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/Cargo.toml +2 -1
- {dirsql-0.4.95 → dirsql-0.4.96/packages/rust}/docs/howto/persist.md +11 -16
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/howto/search-indexes.md +1 -1
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/howto/skip-files.md +0 -3
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/reference/cli.md +1 -1
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/reference/config.md +0 -6
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/reference/path-tables.md +1 -2
- {dirsql-0.4.95/packages/python → dirsql-0.4.96/packages/rust}/docs/reference/sdk.md +3 -3
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/run.rs +1 -1
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/lib.rs +1 -1
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/persist.rs +37 -4
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/scanner.rs +22 -125
- {dirsql-0.4.95 → dirsql-0.4.96}/Cargo.toml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/README.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/py.typed +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/read_config.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/AGENTS.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/context/recipes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/context/usage.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/explanation.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/getting-started.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/embed.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/index.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/package.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/plugins.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/glob.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/README.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/conftest.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/reference/glob.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1334-listing-exemptions.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1414-stat-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1415-server-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/bot-1418-node-modules.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-config-braces.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-config-directory.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-config-dotnames.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-config-gitignore.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-config-links.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/README.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/reference/glob.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/brace.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/on_file.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/parsed_vtab.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/vtab.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/vtab_scaffold.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.95 → dirsql-0.4.96}/pyproject.toml +0 -0
|
@@ -550,9 +550,30 @@ version = "0.4.0"
|
|
|
550
550
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
551
551
|
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
552
552
|
|
|
553
|
+
[[package]]
|
|
554
|
+
name = "dirs"
|
|
555
|
+
version = "6.0.0"
|
|
556
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
557
|
+
checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
|
|
558
|
+
dependencies = [
|
|
559
|
+
"dirs-sys",
|
|
560
|
+
]
|
|
561
|
+
|
|
562
|
+
[[package]]
|
|
563
|
+
name = "dirs-sys"
|
|
564
|
+
version = "0.5.0"
|
|
565
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
566
|
+
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
|
|
567
|
+
dependencies = [
|
|
568
|
+
"libc",
|
|
569
|
+
"option-ext",
|
|
570
|
+
"redox_users",
|
|
571
|
+
"windows-sys 0.61.2",
|
|
572
|
+
]
|
|
573
|
+
|
|
553
574
|
[[package]]
|
|
554
575
|
name = "dirsql"
|
|
555
|
-
version = "0.4.
|
|
576
|
+
version = "0.4.96"
|
|
556
577
|
dependencies = [
|
|
557
578
|
"assert_cmd",
|
|
558
579
|
"axum",
|
|
@@ -561,6 +582,7 @@ dependencies = [
|
|
|
561
582
|
"clap",
|
|
562
583
|
"console",
|
|
563
584
|
"criterion",
|
|
585
|
+
"dirs",
|
|
564
586
|
"eventsource-client",
|
|
565
587
|
"futures",
|
|
566
588
|
"futures-channel",
|
|
@@ -603,7 +625,7 @@ dependencies = [
|
|
|
603
625
|
|
|
604
626
|
[[package]]
|
|
605
627
|
name = "dirsql-py-ext"
|
|
606
|
-
version = "0.4.
|
|
628
|
+
version = "0.4.96"
|
|
607
629
|
dependencies = [
|
|
608
630
|
"dirsql",
|
|
609
631
|
"pyo3",
|
|
@@ -1710,6 +1732,12 @@ version = "0.1.6"
|
|
|
1710
1732
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1711
1733
|
checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
|
|
1712
1734
|
|
|
1735
|
+
[[package]]
|
|
1736
|
+
name = "option-ext"
|
|
1737
|
+
version = "0.2.0"
|
|
1738
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1739
|
+
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
|
1740
|
+
|
|
1713
1741
|
[[package]]
|
|
1714
1742
|
name = "parking_lot"
|
|
1715
1743
|
version = "0.12.5"
|
|
@@ -2119,6 +2147,16 @@ dependencies = [
|
|
|
2119
2147
|
"bitflags 2.11.1",
|
|
2120
2148
|
]
|
|
2121
2149
|
|
|
2150
|
+
[[package]]
|
|
2151
|
+
name = "redox_users"
|
|
2152
|
+
version = "0.5.3"
|
|
2153
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2154
|
+
checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0"
|
|
2155
|
+
dependencies = [
|
|
2156
|
+
"libredox",
|
|
2157
|
+
"thiserror",
|
|
2158
|
+
]
|
|
2159
|
+
|
|
2122
2160
|
[[package]]
|
|
2123
2161
|
name = "reedline"
|
|
2124
2162
|
version = "0.49.0"
|
|
@@ -79,7 +79,7 @@ class DirSQL:
|
|
|
79
79
|
apply.
|
|
80
80
|
|
|
81
81
|
Pass ``persist=True`` to keep an on-disk SQLite cache (default location:
|
|
82
|
-
``<root
|
|
82
|
+
the platform cache directory, outside ``<root>``). Override the location with ``persist_path``.
|
|
83
83
|
|
|
84
84
|
Pass ``extensions`` -- a list of ``{"path": ..., "entrypoint": ...}`` dicts
|
|
85
85
|
(``entrypoint`` optional) -- to load SQLite extensions onto the connection
|
|
@@ -17,9 +17,11 @@ why it is a CLI flag, not a config key.
|
|
|
17
17
|
dirsql --persist
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
That's the whole change. On the next run the cache is written to
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
That's the whole change. On the next run the cache is written to your platform cache directory
|
|
21
|
+
(`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux, `~/Library/Caches`
|
|
22
|
+
on macOS, `%LOCALAPPDATA%` on Windows), outside the scanned tree; runs after
|
|
23
|
+
that start from it. To put the cache elsewhere (a CI cache dir, a tmpfs), pass
|
|
24
|
+
a path:
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
27
|
dirsql --persist /var/cache/dirsql.db
|
|
@@ -30,20 +32,13 @@ put a bare `--persist` after the SQL there so it does not consume the query
|
|
|
30
32
|
argument. Embedding `dirsql`? The SDK constructors expose the same switch —
|
|
31
33
|
see [_Embedding `dirsql`?_](#embedding-dirsql) below.
|
|
32
34
|
|
|
33
|
-
## 2.
|
|
35
|
+
## 2. Nothing to ignore in git
|
|
34
36
|
|
|
35
|
-
The cache
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
The top-level `.dirsql/` directory is reserved for `dirsql`'s metadata and
|
|
43
|
-
is never scanned as data, so the cache can't index itself
|
|
44
|
-
([config reference](../reference/config.md#dirsql-keys)). While running,
|
|
45
|
-
`dirsql` also creates transient `cache.db-wal` and `cache.db-shm` sidecar
|
|
46
|
-
files next to the cache; the `.dirsql/` ignore already covers all three.
|
|
37
|
+
The default cache lives outside the scanned tree, so there is nothing to add
|
|
38
|
+
to `.gitignore` and the cache can't index itself. With `--persist <path>`, keep
|
|
39
|
+
that path out of the scanned tree too, or ignore it. While running, `dirsql`
|
|
40
|
+
also creates transient `cache.db-wal` and `cache.db-shm` sidecar files next to
|
|
41
|
+
the cache.
|
|
47
42
|
|
|
48
43
|
## What survives, what rebuilds
|
|
49
44
|
|
|
@@ -224,7 +224,7 @@ Rows are embedded once, at ingest, and cached on disk by content and model
|
|
|
224
224
|
::: warning Editing `ddl` wedges a persisted `vec0` cache
|
|
225
225
|
Under `--persist`, editing any part of a `ddl` batch whose cache holds a
|
|
226
226
|
`vec0` table currently fails with `SQLite error: no such module: vec0`, and
|
|
227
|
-
keeps failing until the cache is deleted (
|
|
227
|
+
keeps failing until the cache is deleted (delete it, or pass a fresh `--persist <path>`). Tracked in
|
|
228
228
|
[#1008](https://github.com/thekevinscott/dirsql/issues/1008); FTS5 is
|
|
229
229
|
unaffected.
|
|
230
230
|
:::
|
|
@@ -51,9 +51,6 @@ dirsql query "SELECT basename FROM notes ORDER BY basename" -c ./.dirsql.toml
|
|
|
51
51
|
list, though its path-tables still apply the built-in
|
|
52
52
|
[skip rules](../reference/path-tables.md#skip-rules) and respect
|
|
53
53
|
`.gitignore`.
|
|
54
|
-
- The top-level `.dirsql/` directory is always excluded, ignore list or
|
|
55
|
-
not — it is reserved for `dirsql`'s own metadata
|
|
56
|
-
([config reference](../reference/config.md#dirsql-keys)).
|
|
57
54
|
- Narrow table globs are the other half of the story: a file matching no
|
|
58
55
|
table's glob contributes no rows either. Use `ignore` for things that
|
|
59
56
|
should never be looked at; use precise globs to shape what each table
|
|
@@ -248,7 +248,7 @@ Config flags are subcommand-local: pass them after `server`
|
|
|
248
248
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
249
249
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
250
250
|
| `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
|
|
251
|
-
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches
|
|
251
|
+
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux), outside the root; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
|
|
252
252
|
| `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
|
|
253
253
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
254
254
|
| `--version` | | Print the version and exit. |
|
|
@@ -34,12 +34,6 @@ A config that still declares the removed `hook-timeout` key fails to load with
|
|
|
34
34
|
an error naming that replacement. [`[[dirsql.function]]`](#dirsql-function)
|
|
35
35
|
worker calls have their own per-call `timeout` key (default 30 seconds).
|
|
36
36
|
|
|
37
|
-
The top-level `.dirsql/` directory under the root is always excluded from
|
|
38
|
-
scanning, whether or not it appears in `ignore` — it is reserved for
|
|
39
|
-
`dirsql`'s own metadata (the persist cache lives there by default). Only the
|
|
40
|
-
top-level `.dirsql/` is reserved; a nested `sub/.dirsql/` is an ordinary
|
|
41
|
-
directory.
|
|
42
|
-
|
|
43
37
|
```toml
|
|
44
38
|
[dirsql]
|
|
45
39
|
ignore = ["node_modules/**", ".git/**"]
|
|
@@ -228,8 +228,7 @@ The table itself is per-connection: it lives in `temp`, so it cannot leak into
|
|
|
228
228
|
`sqlite_master` or survive a restart. Under `--persist` a *parsed* table's rows
|
|
229
229
|
outlive the connection in the cache (above), but the table is still minted
|
|
230
230
|
fresh each run and the scan still decides what exists. A `.dirsql/` directory
|
|
231
|
-
|
|
232
|
-
everywhere else.
|
|
231
|
+
is an ordinary dot directory.
|
|
233
232
|
|
|
234
233
|
### When to promote to a declared table
|
|
235
234
|
|
|
@@ -86,7 +86,7 @@ DirSQL::builder()
|
|
|
86
86
|
.config(config_toml_path) // optional; repeatable — call again to
|
|
87
87
|
// merge another config in call order
|
|
88
88
|
.persist(cache_path) // optional; Some(path), or None for the
|
|
89
|
-
//
|
|
89
|
+
// platform cache dir
|
|
90
90
|
.extensions(extensions) // optional; append one with .extension(e)
|
|
91
91
|
.poll_interval(duration) // optional; watch-loop cadence, default 200ms
|
|
92
92
|
.build() // -> Result<DirSQL> (synchronous scan)
|
|
@@ -139,8 +139,8 @@ shortcut was removed in #603 — use
|
|
|
139
139
|
accumulate; a duplicate table name across configs errors), mirroring the
|
|
140
140
|
CLI's repeatable [`-c/--config`](./cli.md#flags).
|
|
141
141
|
- `persist` — Keep the SQLite index on disk between runs (default off:
|
|
142
|
-
ephemeral, rebuilt every startup). The cache lives
|
|
143
|
-
|
|
142
|
+
ephemeral, rebuilt every startup). The cache lives in the
|
|
143
|
+
platform cache directory by default (outside `<root>`); on restart, only files whose stat
|
|
144
144
|
changed are re-parsed. (The CLI exposes the same switch as the
|
|
145
145
|
[`--persist [PATH]`](./cli.md#dirsql-server) flag; it is not a config key.)
|
|
146
146
|
- `persist_path` / `persistPath` — Override the cache location. Ignored when
|
|
@@ -4,7 +4,7 @@ name = "dirsql-py-ext"
|
|
|
4
4
|
# pypi/maturin handler can rewrite it via `write-version` before
|
|
5
5
|
# `maturin build`. `pyproject.toml` declares `dynamic = ["version"]`
|
|
6
6
|
# and maturin reads this field. Mirrors `packages/rust/Cargo.toml`.
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.96"
|
|
8
8
|
# abi3 note: the `abi3-py310` pyo3 feature (below) builds ONE stable-ABI
|
|
9
9
|
# `cp310-abi3` wheel per platform that loads on every CPython >= 3.10
|
|
10
10
|
# (matching `pyproject.toml`'s `requires-python = ">=3.10"`), instead of
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
**Changed**
|
|
2
|
+
|
|
3
|
+
- **The default `--persist` cache moves out of the scanned tree.** Bare `--persist` now writes `cache.db` under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/` on Linux, `~/Library/Caches` on macOS, `%LOCALAPPDATA%` on Windows) instead of `<root>/.dirsql/`. `--persist <path>` is unchanged.
|
|
4
|
+
|
|
5
|
+
**Removed**
|
|
6
|
+
|
|
7
|
+
- **The reserved `.dirsql/` directory.** The scan no longer skips a top-level `.dirsql/`; it is an ordinary dot directory, matched like bash.
|
|
@@ -17,9 +17,11 @@ why it is a CLI flag, not a config key.
|
|
|
17
17
|
dirsql --persist
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
That's the whole change. On the next run the cache is written to
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
That's the whole change. On the next run the cache is written to your platform cache directory
|
|
21
|
+
(`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux, `~/Library/Caches`
|
|
22
|
+
on macOS, `%LOCALAPPDATA%` on Windows), outside the scanned tree; runs after
|
|
23
|
+
that start from it. To put the cache elsewhere (a CI cache dir, a tmpfs), pass
|
|
24
|
+
a path:
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
27
|
dirsql --persist /var/cache/dirsql.db
|
|
@@ -30,20 +32,13 @@ put a bare `--persist` after the SQL there so it does not consume the query
|
|
|
30
32
|
argument. Embedding `dirsql`? The SDK constructors expose the same switch —
|
|
31
33
|
see [_Embedding `dirsql`?_](#embedding-dirsql) below.
|
|
32
34
|
|
|
33
|
-
## 2.
|
|
35
|
+
## 2. Nothing to ignore in git
|
|
34
36
|
|
|
35
|
-
The cache
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
The top-level `.dirsql/` directory is reserved for `dirsql`'s metadata and
|
|
43
|
-
is never scanned as data, so the cache can't index itself
|
|
44
|
-
([config reference](../reference/config.md#dirsql-keys)). While running,
|
|
45
|
-
`dirsql` also creates transient `cache.db-wal` and `cache.db-shm` sidecar
|
|
46
|
-
files next to the cache; the `.dirsql/` ignore already covers all three.
|
|
37
|
+
The default cache lives outside the scanned tree, so there is nothing to add
|
|
38
|
+
to `.gitignore` and the cache can't index itself. With `--persist <path>`, keep
|
|
39
|
+
that path out of the scanned tree too, or ignore it. While running, `dirsql`
|
|
40
|
+
also creates transient `cache.db-wal` and `cache.db-shm` sidecar files next to
|
|
41
|
+
the cache.
|
|
47
42
|
|
|
48
43
|
## What survives, what rebuilds
|
|
49
44
|
|
|
@@ -224,7 +224,7 @@ Rows are embedded once, at ingest, and cached on disk by content and model
|
|
|
224
224
|
::: warning Editing `ddl` wedges a persisted `vec0` cache
|
|
225
225
|
Under `--persist`, editing any part of a `ddl` batch whose cache holds a
|
|
226
226
|
`vec0` table currently fails with `SQLite error: no such module: vec0`, and
|
|
227
|
-
keeps failing until the cache is deleted (
|
|
227
|
+
keeps failing until the cache is deleted (delete it, or pass a fresh `--persist <path>`). Tracked in
|
|
228
228
|
[#1008](https://github.com/thekevinscott/dirsql/issues/1008); FTS5 is
|
|
229
229
|
unaffected.
|
|
230
230
|
:::
|
|
@@ -51,9 +51,6 @@ dirsql query "SELECT basename FROM notes ORDER BY basename" -c ./.dirsql.toml
|
|
|
51
51
|
list, though its path-tables still apply the built-in
|
|
52
52
|
[skip rules](../reference/path-tables.md#skip-rules) and respect
|
|
53
53
|
`.gitignore`.
|
|
54
|
-
- The top-level `.dirsql/` directory is always excluded, ignore list or
|
|
55
|
-
not — it is reserved for `dirsql`'s own metadata
|
|
56
|
-
([config reference](../reference/config.md#dirsql-keys)).
|
|
57
54
|
- Narrow table globs are the other half of the story: a file matching no
|
|
58
55
|
table's glob contributes no rows either. Use `ignore` for things that
|
|
59
56
|
should never be looked at; use precise globs to shape what each table
|
|
@@ -248,7 +248,7 @@ Config flags are subcommand-local: pass them after `server`
|
|
|
248
248
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
249
249
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
250
250
|
| `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
|
|
251
|
-
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches
|
|
251
|
+
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux), outside the root; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
|
|
252
252
|
| `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
|
|
253
253
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
254
254
|
| `--version` | | Print the version and exit. |
|
|
@@ -34,12 +34,6 @@ A config that still declares the removed `hook-timeout` key fails to load with
|
|
|
34
34
|
an error naming that replacement. [`[[dirsql.function]]`](#dirsql-function)
|
|
35
35
|
worker calls have their own per-call `timeout` key (default 30 seconds).
|
|
36
36
|
|
|
37
|
-
The top-level `.dirsql/` directory under the root is always excluded from
|
|
38
|
-
scanning, whether or not it appears in `ignore` — it is reserved for
|
|
39
|
-
`dirsql`'s own metadata (the persist cache lives there by default). Only the
|
|
40
|
-
top-level `.dirsql/` is reserved; a nested `sub/.dirsql/` is an ordinary
|
|
41
|
-
directory.
|
|
42
|
-
|
|
43
37
|
```toml
|
|
44
38
|
[dirsql]
|
|
45
39
|
ignore = ["node_modules/**", ".git/**"]
|
|
@@ -228,8 +228,7 @@ The table itself is per-connection: it lives in `temp`, so it cannot leak into
|
|
|
228
228
|
`sqlite_master` or survive a restart. Under `--persist` a *parsed* table's rows
|
|
229
229
|
outlive the connection in the cache (above), but the table is still minted
|
|
230
230
|
fresh each run and the scan still decides what exists. A `.dirsql/` directory
|
|
231
|
-
|
|
232
|
-
everywhere else.
|
|
231
|
+
is an ordinary dot directory.
|
|
233
232
|
|
|
234
233
|
### When to promote to a declared table
|
|
235
234
|
|
|
@@ -86,7 +86,7 @@ DirSQL::builder()
|
|
|
86
86
|
.config(config_toml_path) // optional; repeatable — call again to
|
|
87
87
|
// merge another config in call order
|
|
88
88
|
.persist(cache_path) // optional; Some(path), or None for the
|
|
89
|
-
//
|
|
89
|
+
// platform cache dir
|
|
90
90
|
.extensions(extensions) // optional; append one with .extension(e)
|
|
91
91
|
.poll_interval(duration) // optional; watch-loop cadence, default 200ms
|
|
92
92
|
.build() // -> Result<DirSQL> (synchronous scan)
|
|
@@ -139,8 +139,8 @@ shortcut was removed in #603 — use
|
|
|
139
139
|
accumulate; a duplicate table name across configs errors), mirroring the
|
|
140
140
|
CLI's repeatable [`-c/--config`](./cli.md#flags).
|
|
141
141
|
- `persist` — Keep the SQLite index on disk between runs (default off:
|
|
142
|
-
ephemeral, rebuilt every startup). The cache lives
|
|
143
|
-
|
|
142
|
+
ephemeral, rebuilt every startup). The cache lives in the
|
|
143
|
+
platform cache directory by default (outside `<root>`); on restart, only files whose stat
|
|
144
144
|
changed are re-parsed. (The CLI exposes the same switch as the
|
|
145
145
|
[`--persist [PATH]`](./cli.md#dirsql-server) flag; it is not a config key.)
|
|
146
146
|
- `persist_path` / `persistPath` — Override the cache location. Ignored when
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/use_case_transcripts_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/stat_speed_test.py -x -q",
|
|
3
|
+
"ran_at": 1791391233,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "83e889b9041e8e071128c2334d98bf645ec52581",
|
|
6
|
+
"branch": "bot/1431-persist-cache-dir"
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
### Default persist cache moves to the platform cache directory
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
Bare `--persist` (and `.persist(None)` / `persist=True` / `persist: true` in the
|
|
6
|
+
SDKs) no longer writes `<root>/.dirsql/cache.db`. It writes
|
|
7
|
+
`cache.db` under the platform cache directory, keyed by a hash of the root. The
|
|
8
|
+
scan no longer reserves `.dirsql/`.
|
|
9
|
+
|
|
10
|
+
#### Required changes
|
|
11
|
+
|
|
12
|
+
| Before | After |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| `.gitignore` entry `.dirsql/` for the cache | Not needed |
|
|
15
|
+
| `rm -rf <root>/.dirsql` to reset the cache | Delete the file under the platform cache directory, or pass `--persist <path>` |
|
|
16
|
+
|
|
17
|
+
#### Deprecations removed
|
|
18
|
+
|
|
19
|
+
_None._
|
|
20
|
+
|
|
21
|
+
#### Behavior changes without code changes
|
|
22
|
+
|
|
23
|
+
- The first `--persist` run after upgrading rebuilds the cache once.
|
|
24
|
+
- An old `<root>/.dirsql/cache.db` is left behind and, being an ordinary dot directory, is now scannable by a glob that spells `.dirsql`. Delete it.
|
|
25
|
+
- A top-level `.dirsql/` directory is no longer excluded from the scan.
|
|
26
|
+
|
|
27
|
+
#### Verification
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cd "$(mktemp -d)"
|
|
31
|
+
echo 'a' > a.txt
|
|
32
|
+
dirsql query "SELECT path FROM './*'" --persist
|
|
33
|
+
ls -A
|
|
34
|
+
# expected: only a.txt; no .dirsql/ in the root
|
|
35
|
+
```
|
|
@@ -6,7 +6,7 @@ description = "Ephemeral SQL index over a local directory"
|
|
|
6
6
|
# version stays for the binding crates (publish = false). The literal
|
|
7
7
|
# intentionally lags the published version: putitoutthere rewrites it to
|
|
8
8
|
# the planned release version at build time and never commits it back.
|
|
9
|
-
version = "0.4.
|
|
9
|
+
version = "0.4.96"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -63,6 +63,7 @@ base64 = "0.22"
|
|
|
63
63
|
blake3 = "1"
|
|
64
64
|
clap = { version = "4", features = ["derive"], optional = true }
|
|
65
65
|
console = "0.16.6"
|
|
66
|
+
dirs = "6"
|
|
66
67
|
futures = { version = "0.3", optional = true }
|
|
67
68
|
futures-channel.workspace = true
|
|
68
69
|
globset = "0.4"
|
|
@@ -17,9 +17,11 @@ why it is a CLI flag, not a config key.
|
|
|
17
17
|
dirsql --persist
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
That's the whole change. On the next run the cache is written to
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
That's the whole change. On the next run the cache is written to your platform cache directory
|
|
21
|
+
(`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux, `~/Library/Caches`
|
|
22
|
+
on macOS, `%LOCALAPPDATA%` on Windows), outside the scanned tree; runs after
|
|
23
|
+
that start from it. To put the cache elsewhere (a CI cache dir, a tmpfs), pass
|
|
24
|
+
a path:
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
27
|
dirsql --persist /var/cache/dirsql.db
|
|
@@ -30,20 +32,13 @@ put a bare `--persist` after the SQL there so it does not consume the query
|
|
|
30
32
|
argument. Embedding `dirsql`? The SDK constructors expose the same switch —
|
|
31
33
|
see [_Embedding `dirsql`?_](#embedding-dirsql) below.
|
|
32
34
|
|
|
33
|
-
## 2.
|
|
35
|
+
## 2. Nothing to ignore in git
|
|
34
36
|
|
|
35
|
-
The cache
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
The top-level `.dirsql/` directory is reserved for `dirsql`'s metadata and
|
|
43
|
-
is never scanned as data, so the cache can't index itself
|
|
44
|
-
([config reference](../reference/config.md#dirsql-keys)). While running,
|
|
45
|
-
`dirsql` also creates transient `cache.db-wal` and `cache.db-shm` sidecar
|
|
46
|
-
files next to the cache; the `.dirsql/` ignore already covers all three.
|
|
37
|
+
The default cache lives outside the scanned tree, so there is nothing to add
|
|
38
|
+
to `.gitignore` and the cache can't index itself. With `--persist <path>`, keep
|
|
39
|
+
that path out of the scanned tree too, or ignore it. While running, `dirsql`
|
|
40
|
+
also creates transient `cache.db-wal` and `cache.db-shm` sidecar files next to
|
|
41
|
+
the cache.
|
|
47
42
|
|
|
48
43
|
## What survives, what rebuilds
|
|
49
44
|
|
|
@@ -224,7 +224,7 @@ Rows are embedded once, at ingest, and cached on disk by content and model
|
|
|
224
224
|
::: warning Editing `ddl` wedges a persisted `vec0` cache
|
|
225
225
|
Under `--persist`, editing any part of a `ddl` batch whose cache holds a
|
|
226
226
|
`vec0` table currently fails with `SQLite error: no such module: vec0`, and
|
|
227
|
-
keeps failing until the cache is deleted (
|
|
227
|
+
keeps failing until the cache is deleted (delete it, or pass a fresh `--persist <path>`). Tracked in
|
|
228
228
|
[#1008](https://github.com/thekevinscott/dirsql/issues/1008); FTS5 is
|
|
229
229
|
unaffected.
|
|
230
230
|
:::
|
|
@@ -51,9 +51,6 @@ dirsql query "SELECT basename FROM notes ORDER BY basename" -c ./.dirsql.toml
|
|
|
51
51
|
list, though its path-tables still apply the built-in
|
|
52
52
|
[skip rules](../reference/path-tables.md#skip-rules) and respect
|
|
53
53
|
`.gitignore`.
|
|
54
|
-
- The top-level `.dirsql/` directory is always excluded, ignore list or
|
|
55
|
-
not — it is reserved for `dirsql`'s own metadata
|
|
56
|
-
([config reference](../reference/config.md#dirsql-keys)).
|
|
57
54
|
- Narrow table globs are the other half of the story: a file matching no
|
|
58
55
|
table's glob contributes no rows either. Use `ignore` for things that
|
|
59
56
|
should never be looked at; use precise globs to shape what each table
|
|
@@ -248,7 +248,7 @@ Config flags are subcommand-local: pass them after `server`
|
|
|
248
248
|
| `--host <addr>` | `localhost` | Bind address. |
|
|
249
249
|
| `--port <n>` | `7117` | TCP port to bind. |
|
|
250
250
|
| `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
|
|
251
|
-
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches
|
|
251
|
+
| `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux), outside the root; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
|
|
252
252
|
| `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
|
|
253
253
|
| `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
|
|
254
254
|
| `--version` | | Print the version and exit. |
|
|
@@ -34,12 +34,6 @@ A config that still declares the removed `hook-timeout` key fails to load with
|
|
|
34
34
|
an error naming that replacement. [`[[dirsql.function]]`](#dirsql-function)
|
|
35
35
|
worker calls have their own per-call `timeout` key (default 30 seconds).
|
|
36
36
|
|
|
37
|
-
The top-level `.dirsql/` directory under the root is always excluded from
|
|
38
|
-
scanning, whether or not it appears in `ignore` — it is reserved for
|
|
39
|
-
`dirsql`'s own metadata (the persist cache lives there by default). Only the
|
|
40
|
-
top-level `.dirsql/` is reserved; a nested `sub/.dirsql/` is an ordinary
|
|
41
|
-
directory.
|
|
42
|
-
|
|
43
37
|
```toml
|
|
44
38
|
[dirsql]
|
|
45
39
|
ignore = ["node_modules/**", ".git/**"]
|
|
@@ -228,8 +228,7 @@ The table itself is per-connection: it lives in `temp`, so it cannot leak into
|
|
|
228
228
|
`sqlite_master` or survive a restart. Under `--persist` a *parsed* table's rows
|
|
229
229
|
outlive the connection in the cache (above), but the table is still minted
|
|
230
230
|
fresh each run and the scan still decides what exists. A `.dirsql/` directory
|
|
231
|
-
|
|
232
|
-
everywhere else.
|
|
231
|
+
is an ordinary dot directory.
|
|
233
232
|
|
|
234
233
|
### When to promote to a declared table
|
|
235
234
|
|
|
@@ -86,7 +86,7 @@ DirSQL::builder()
|
|
|
86
86
|
.config(config_toml_path) // optional; repeatable — call again to
|
|
87
87
|
// merge another config in call order
|
|
88
88
|
.persist(cache_path) // optional; Some(path), or None for the
|
|
89
|
-
//
|
|
89
|
+
// platform cache dir
|
|
90
90
|
.extensions(extensions) // optional; append one with .extension(e)
|
|
91
91
|
.poll_interval(duration) // optional; watch-loop cadence, default 200ms
|
|
92
92
|
.build() // -> Result<DirSQL> (synchronous scan)
|
|
@@ -139,8 +139,8 @@ shortcut was removed in #603 — use
|
|
|
139
139
|
accumulate; a duplicate table name across configs errors), mirroring the
|
|
140
140
|
CLI's repeatable [`-c/--config`](./cli.md#flags).
|
|
141
141
|
- `persist` — Keep the SQLite index on disk between runs (default off:
|
|
142
|
-
ephemeral, rebuilt every startup). The cache lives
|
|
143
|
-
|
|
142
|
+
ephemeral, rebuilt every startup). The cache lives in the
|
|
143
|
+
platform cache directory by default (outside `<root>`); on restart, only files whose stat
|
|
144
144
|
changed are re-parsed. (The CLI exposes the same switch as the
|
|
145
145
|
[`--persist [PATH]`](./cli.md#dirsql-server) flag; it is not a config key.)
|
|
146
146
|
- `persist_path` / `persistPath` — Override the cache location. Ignored when
|
|
@@ -121,7 +121,7 @@ struct ConfigArgs {
|
|
|
121
121
|
|
|
122
122
|
/// Keep the SQLite index on disk between runs so a restart only re-parses
|
|
123
123
|
/// files that actually changed. Bare `--persist` caches at the default
|
|
124
|
-
/// location (
|
|
124
|
+
/// location (the platform cache directory); `--persist <path>` caches there.
|
|
125
125
|
/// Off by default (ephemeral index).
|
|
126
126
|
#[arg(long, num_args = 0..=1)]
|
|
127
127
|
persist: Option<Option<PathBuf>>,
|
|
@@ -1669,7 +1669,7 @@ impl DirSQLBuilder {
|
|
|
1669
1669
|
}
|
|
1670
1670
|
|
|
1671
1671
|
/// Enable persistent on-disk storage. `None` writes the SQLite database to
|
|
1672
|
-
/// the default
|
|
1672
|
+
/// the default location in the platform cache directory; `Some(path)` writes it to `path`.
|
|
1673
1673
|
/// Either way, subsequent startups only re-parse files that have actually
|
|
1674
1674
|
/// changed. See `docs/howto/persist.md` for the reconcile contract.
|
|
1675
1675
|
pub fn persist(mut self, path: Option<impl AsRef<Path>>) -> Self {
|