dirsql 0.4.111__tar.gz → 0.4.113__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.111 → dirsql-0.4.113}/Cargo.lock +2 -2
- {dirsql-0.4.111 → dirsql-0.4.113}/PKG-INFO +1 -1
- {dirsql-0.4.111/packages/rust → dirsql-0.4.113}/docs/reference/cli.md +47 -6
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/Cargo.toml +1 -1
- {dirsql-0.4.111 → dirsql-0.4.113/packages/python}/docs/reference/cli.md +47 -6
- dirsql-0.4.113/packages/python/e2e-attestations/bot-1487-frontend-query-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-1488-frontend-metadata-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-1489-frontend-browse-1013.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-1504-bench-names-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-speed-gap-childpath-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-speed-parse-overlap-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-speed-parse-pragmas-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-speed-walk-components-1011.json +7 -0
- dirsql-0.4.113/packages/python/e2e-attestations/bot-speed-walk-rowpath-1011.json +7 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.111/packages/python → dirsql-0.4.113/packages/rust}/docs/reference/cli.md +47 -6
- dirsql-0.4.113/packages/rust/src/cli/frontend.html +58 -0
- dirsql-0.4.113/packages/rust/src/cli/frontend.js +297 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/router.rs +55 -1
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/db.rs +171 -4
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/lib.rs +194 -50
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/matcher.rs +70 -9
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/on_file.rs +211 -74
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/scanner.rs +56 -5
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/vtab.rs +39 -8
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/vtab_scaffold.rs +59 -1
- dirsql-0.4.111/packages/rust/src/cli/frontend.html +0 -60
- {dirsql-0.4.111 → dirsql-0.4.113}/Cargo.toml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/README.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/_async.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/py.typed +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/read_config.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/AGENTS.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/context/recipes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/context/usage.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/explanation.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/getting-started.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/embed.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/persist.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/index.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/package.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/plugins.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/glob.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/README.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-bracket-slash-literal.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-dotdot-and-double-slashes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-dotdot-as-written.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-literal-gitignore.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-on-file-ndjson.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-parallel-hooks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-persist-cache-outside-root.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-posix-classes-unicode.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-07-spread-few-large-files.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-08-small-walks-stay-on-one-thread.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/2026-10-08-watch-requires-named-table.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/conftest.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/glob.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1334-listing-exemptions.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1406-watch-no-tables-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1414-stat-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1415-server-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1416-watch-speed-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1418-node-modules.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1419-dotdot-slashes.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1420-bracket-slash.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1421-posix-unicode.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1422-literal-gitignore.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1426-walk-spawn-threshold-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1428-ndjson-hooks.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1429-parallel-hooks.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1430-dotdot-as-written.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1431-persist-cache-dir.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1437-test-cache-isolation.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1440-fix-main-build.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1448-wildcard-ignored-prefix.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1451-named-dir-never-hidden.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1454-split-few-files.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1457-incremental-refresh-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1459-rescan-on-overflow-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1461-row-footprint-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1462-paired-speed-harness-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1464-fastest-native-1008.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1469-ci-speed-sanity-1009.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1470-perf-suite-1009.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-1503-bench-watch-1011.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-fix-main-place-depth-20261007.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-issue-1486-frontend-20261009.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-speed-parse-paths-1009.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/bot-speed-walk-sched-1009.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-config-braces.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-config-directory.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-config-dotnames.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-config-gitignore.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-config-links.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-bracket-slash-literal.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-dotdot-and-double-slashes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-dotdot-as-written.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-literal-gitignore.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-on-file-ndjson.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-parallel-hooks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-persist-cache-outside-root.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-posix-classes-unicode.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-07-spread-few-large-files.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-08-small-walks-stay-on-one-thread.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/2026-10-08-watch-requires-named-table.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/bench_report.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/bench_suite.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/README.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/glob.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/brace.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/parsed_vtab.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.111 → dirsql-0.4.113}/pyproject.toml +0 -0
|
@@ -573,7 +573,7 @@ dependencies = [
|
|
|
573
573
|
|
|
574
574
|
[[package]]
|
|
575
575
|
name = "dirsql"
|
|
576
|
-
version = "0.4.
|
|
576
|
+
version = "0.4.113"
|
|
577
577
|
dependencies = [
|
|
578
578
|
"assert_cmd",
|
|
579
579
|
"axum",
|
|
@@ -625,7 +625,7 @@ dependencies = [
|
|
|
625
625
|
|
|
626
626
|
[[package]]
|
|
627
627
|
name = "dirsql-py-ext"
|
|
628
|
-
version = "0.4.
|
|
628
|
+
version = "0.4.113"
|
|
629
629
|
dependencies = [
|
|
630
630
|
"dirsql",
|
|
631
631
|
"pyo3",
|
|
@@ -240,18 +240,59 @@ requests, closes open `/events` streams, and exits.
|
|
|
240
240
|
Pass `--frontend` to serve the bundled dirsql SQL explorer shell at `/` on
|
|
241
241
|
the same origin as the HTTP API. It works offline and prints `Frontend at
|
|
242
242
|
http://<host>:<actual-port>/` without opening a browser. With `--port 0`, the
|
|
243
|
-
printed URL uses the assigned port. The
|
|
244
|
-
query
|
|
243
|
+
printed URL uses the assigned port. The page offers an editable SQL box
|
|
244
|
+
holding the starter query `SELECT * FROM './' LIMIT 100`. Nothing runs until
|
|
245
|
+
you press **Run** (or Ctrl/Cmd+Enter); pressing it again refreshes the
|
|
246
|
+
result. Queries go through `POST /query`, so the read-only rule applies, and
|
|
247
|
+
run exactly as written. The page shows elapsed time, the number of rows
|
|
248
|
+
returned, and errors. Values render as text (`NULL` is marked), and only the
|
|
249
|
+
first 1000 rows are displayed. An empty result says so and shows no column
|
|
250
|
+
names, since the response carries none.
|
|
251
|
+
|
|
252
|
+
Above the SQL box the page shows the query root and the path-table columns
|
|
253
|
+
(`path`, `basename`, `dir`, `ext`, `size`, `mtime`, `ctime`, plus `content`,
|
|
254
|
+
read only when named), with a button that loads the starter query. A config
|
|
255
|
+
with declared tables adds each table and its columns; choosing one loads
|
|
256
|
+
`SELECT * FROM "<table>" LIMIT 100` into the box without running it.
|
|
257
|
+
Declared-table globs anchor at their config file's directory, while
|
|
258
|
+
path-tables resolve under the query root. With no declared tables, including
|
|
259
|
+
a config of only functions or extensions, the page shows the path-table
|
|
260
|
+
start alone. A config that fails to load shows its diagnostic and how to
|
|
261
|
+
restart. To refresh, run the query again: path-tables re-read the filesystem,
|
|
262
|
+
and declared tables reflect the server's index. The page does not use
|
|
263
|
+
`/events`.
|
|
245
264
|
|
|
246
265
|
```bash
|
|
247
266
|
dirsql server --frontend
|
|
248
267
|
dirsql server --frontend -c .dirsql.toml
|
|
249
268
|
```
|
|
250
269
|
|
|
251
|
-
The shell reads `GET /frontend/state
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
270
|
+
The shell reads `GET /frontend/state`. When the index is ready it returns
|
|
271
|
+
HTTP `200`:
|
|
272
|
+
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"error": null,
|
|
276
|
+
"root": "/abs/path/of/the/invocation/directory",
|
|
277
|
+
"tables": [
|
|
278
|
+
{"name": "posts", "columns": [{"name": "basename", "type": "TEXT"}]}
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
`root` is the query root, where [path-tables](./path-tables.md) resolve.
|
|
284
|
+
`tables` lists the declared tables, ordered by name, each with its columns in
|
|
285
|
+
declaration order and the declared SQLite type (`""` when untyped). Empty
|
|
286
|
+
tables are listed. A configless server, or a config with only functions or
|
|
287
|
+
extensions, returns `"tables": []`. dirsql's bookkeeping tables, SQLite's own
|
|
288
|
+
tables, virtual tables with their shadow tables, and path-tables are never
|
|
289
|
+
listed. The metadata is read from SQLite's catalog: no file is parsed, no
|
|
290
|
+
directory walked, no table counted.
|
|
291
|
+
|
|
292
|
+
When config loading fails the endpoint returns HTTP `503` with
|
|
293
|
+
`{"error":"<diagnostic>"}` and no `root` or `tables`. Fix the config and
|
|
294
|
+
restart the server. Without `--frontend`, the `/` and `/frontend/state`
|
|
295
|
+
routes return `404`. `POST /query` is unchanged.
|
|
255
296
|
|
|
256
297
|
### Flags
|
|
257
298
|
|
|
@@ -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.113"
|
|
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
|
|
@@ -240,18 +240,59 @@ requests, closes open `/events` streams, and exits.
|
|
|
240
240
|
Pass `--frontend` to serve the bundled dirsql SQL explorer shell at `/` on
|
|
241
241
|
the same origin as the HTTP API. It works offline and prints `Frontend at
|
|
242
242
|
http://<host>:<actual-port>/` without opening a browser. With `--port 0`, the
|
|
243
|
-
printed URL uses the assigned port. The
|
|
244
|
-
query
|
|
243
|
+
printed URL uses the assigned port. The page offers an editable SQL box
|
|
244
|
+
holding the starter query `SELECT * FROM './' LIMIT 100`. Nothing runs until
|
|
245
|
+
you press **Run** (or Ctrl/Cmd+Enter); pressing it again refreshes the
|
|
246
|
+
result. Queries go through `POST /query`, so the read-only rule applies, and
|
|
247
|
+
run exactly as written. The page shows elapsed time, the number of rows
|
|
248
|
+
returned, and errors. Values render as text (`NULL` is marked), and only the
|
|
249
|
+
first 1000 rows are displayed. An empty result says so and shows no column
|
|
250
|
+
names, since the response carries none.
|
|
251
|
+
|
|
252
|
+
Above the SQL box the page shows the query root and the path-table columns
|
|
253
|
+
(`path`, `basename`, `dir`, `ext`, `size`, `mtime`, `ctime`, plus `content`,
|
|
254
|
+
read only when named), with a button that loads the starter query. A config
|
|
255
|
+
with declared tables adds each table and its columns; choosing one loads
|
|
256
|
+
`SELECT * FROM "<table>" LIMIT 100` into the box without running it.
|
|
257
|
+
Declared-table globs anchor at their config file's directory, while
|
|
258
|
+
path-tables resolve under the query root. With no declared tables, including
|
|
259
|
+
a config of only functions or extensions, the page shows the path-table
|
|
260
|
+
start alone. A config that fails to load shows its diagnostic and how to
|
|
261
|
+
restart. To refresh, run the query again: path-tables re-read the filesystem,
|
|
262
|
+
and declared tables reflect the server's index. The page does not use
|
|
263
|
+
`/events`.
|
|
245
264
|
|
|
246
265
|
```bash
|
|
247
266
|
dirsql server --frontend
|
|
248
267
|
dirsql server --frontend -c .dirsql.toml
|
|
249
268
|
```
|
|
250
269
|
|
|
251
|
-
The shell reads `GET /frontend/state
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
270
|
+
The shell reads `GET /frontend/state`. When the index is ready it returns
|
|
271
|
+
HTTP `200`:
|
|
272
|
+
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"error": null,
|
|
276
|
+
"root": "/abs/path/of/the/invocation/directory",
|
|
277
|
+
"tables": [
|
|
278
|
+
{"name": "posts", "columns": [{"name": "basename", "type": "TEXT"}]}
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
`root` is the query root, where [path-tables](./path-tables.md) resolve.
|
|
284
|
+
`tables` lists the declared tables, ordered by name, each with its columns in
|
|
285
|
+
declaration order and the declared SQLite type (`""` when untyped). Empty
|
|
286
|
+
tables are listed. A configless server, or a config with only functions or
|
|
287
|
+
extensions, returns `"tables": []`. dirsql's bookkeeping tables, SQLite's own
|
|
288
|
+
tables, virtual tables with their shadow tables, and path-tables are never
|
|
289
|
+
listed. The metadata is read from SQLite's catalog: no file is parsed, no
|
|
290
|
+
directory walked, no table counted.
|
|
291
|
+
|
|
292
|
+
When config loading fails the endpoint returns HTTP `503` with
|
|
293
|
+
`{"error":"<diagnostic>"}` and no `root` or `tables`. Fix the config and
|
|
294
|
+
restart the server. Without `--frontend`, the `/` and `/frontend/state`
|
|
295
|
+
routes return `404`. `POST /query` is unchanged.
|
|
255
296
|
|
|
256
297
|
### Flags
|
|
257
298
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/cli_version_test.py tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/extension_package_test.py tests/e2e/server_speed_test.py -x -q",
|
|
3
|
+
"ran_at": 1791765336,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "a2b5671787b3cfa038a128d5cbbeac13e6c268a9",
|
|
6
|
+
"branch": "bot/1487-frontend-query-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/cli_version_test.py tests/e2e/query_contract_test.py tests/e2e/declared_table_name_test.py tests/e2e/on_file_query_test.py -x -q",
|
|
3
|
+
"ran_at": 1791764712,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "ae61a26f7b9018c3e12aebeea7c6a3cf32ef4d87",
|
|
6
|
+
"branch": "bot/1488-frontend-metadata-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/cli_version_test.py tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/extension_package_test.py -x -q",
|
|
3
|
+
"ran_at": 1791927030,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "59221551ed292a404b0342d8455c18d2a946d7d6",
|
|
6
|
+
"branch": "bot/1489-frontend-browse-1013"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m tests.e2e.bench_suite --pairs 3 --out /tmp/bench-1504 -k \"glob_speed_symlink or glob_speed_dotfiles or glob_speed_recursive\"",
|
|
3
|
+
"ran_at": 1791770495,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "cce3e83ece8026cc8feedbb1cd64f73242f1d230",
|
|
6
|
+
"branch": "bot/1504-bench-names-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_depth_bound_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_symlink_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_gitignore_test.py -x -q",
|
|
3
|
+
"ran_at": 1791777891,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "fb7068d3883fd35c014146a174f4f342aaf93dab",
|
|
6
|
+
"branch": "bot/speed-gap-childpath-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/jsonl_parse_speed_test.py tests/e2e/frontmatter_parse_speed_test.py tests/e2e/on_file_query_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791768023,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "db8e06627eb807a3932ae3989ef662019a288ce1",
|
|
6
|
+
"branch": "bot/speed-parse-overlap-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/jsonl_parse_speed_test.py tests/e2e/frontmatter_parse_speed_test.py tests/e2e/on_file_query_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791766109,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "a2a42d2c9ac8c5aa5292f4d4d540296cf1e1ee6c",
|
|
6
|
+
"branch": "bot/speed-parse-pragmas-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_depth_bound_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_symlink_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_node_modules_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/glob_speed_gitignore_test.py tests/e2e/stat_speed_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791771802,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "6a704d60f7963656097b921100e1f3aaefba6bbd",
|
|
6
|
+
"branch": "bot/speed-walk-components-1011"
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_depth_bound_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_symlink_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_node_modules_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/glob_speed_gitignore_test.py tests/e2e/stat_speed_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791768231,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "d6653e1f4d8a1d8b4b723b6f24c0bc805e4aa7e1",
|
|
6
|
+
"branch": "bot/speed-walk-rowpath-1011"
|
|
7
|
+
}
|
|
@@ -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.113"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -240,18 +240,59 @@ requests, closes open `/events` streams, and exits.
|
|
|
240
240
|
Pass `--frontend` to serve the bundled dirsql SQL explorer shell at `/` on
|
|
241
241
|
the same origin as the HTTP API. It works offline and prints `Frontend at
|
|
242
242
|
http://<host>:<actual-port>/` without opening a browser. With `--port 0`, the
|
|
243
|
-
printed URL uses the assigned port. The
|
|
244
|
-
query
|
|
243
|
+
printed URL uses the assigned port. The page offers an editable SQL box
|
|
244
|
+
holding the starter query `SELECT * FROM './' LIMIT 100`. Nothing runs until
|
|
245
|
+
you press **Run** (or Ctrl/Cmd+Enter); pressing it again refreshes the
|
|
246
|
+
result. Queries go through `POST /query`, so the read-only rule applies, and
|
|
247
|
+
run exactly as written. The page shows elapsed time, the number of rows
|
|
248
|
+
returned, and errors. Values render as text (`NULL` is marked), and only the
|
|
249
|
+
first 1000 rows are displayed. An empty result says so and shows no column
|
|
250
|
+
names, since the response carries none.
|
|
251
|
+
|
|
252
|
+
Above the SQL box the page shows the query root and the path-table columns
|
|
253
|
+
(`path`, `basename`, `dir`, `ext`, `size`, `mtime`, `ctime`, plus `content`,
|
|
254
|
+
read only when named), with a button that loads the starter query. A config
|
|
255
|
+
with declared tables adds each table and its columns; choosing one loads
|
|
256
|
+
`SELECT * FROM "<table>" LIMIT 100` into the box without running it.
|
|
257
|
+
Declared-table globs anchor at their config file's directory, while
|
|
258
|
+
path-tables resolve under the query root. With no declared tables, including
|
|
259
|
+
a config of only functions or extensions, the page shows the path-table
|
|
260
|
+
start alone. A config that fails to load shows its diagnostic and how to
|
|
261
|
+
restart. To refresh, run the query again: path-tables re-read the filesystem,
|
|
262
|
+
and declared tables reflect the server's index. The page does not use
|
|
263
|
+
`/events`.
|
|
245
264
|
|
|
246
265
|
```bash
|
|
247
266
|
dirsql server --frontend
|
|
248
267
|
dirsql server --frontend -c .dirsql.toml
|
|
249
268
|
```
|
|
250
269
|
|
|
251
|
-
The shell reads `GET /frontend/state
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
270
|
+
The shell reads `GET /frontend/state`. When the index is ready it returns
|
|
271
|
+
HTTP `200`:
|
|
272
|
+
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"error": null,
|
|
276
|
+
"root": "/abs/path/of/the/invocation/directory",
|
|
277
|
+
"tables": [
|
|
278
|
+
{"name": "posts", "columns": [{"name": "basename", "type": "TEXT"}]}
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
`root` is the query root, where [path-tables](./path-tables.md) resolve.
|
|
284
|
+
`tables` lists the declared tables, ordered by name, each with its columns in
|
|
285
|
+
declaration order and the declared SQLite type (`""` when untyped). Empty
|
|
286
|
+
tables are listed. A configless server, or a config with only functions or
|
|
287
|
+
extensions, returns `"tables": []`. dirsql's bookkeeping tables, SQLite's own
|
|
288
|
+
tables, virtual tables with their shadow tables, and path-tables are never
|
|
289
|
+
listed. The metadata is read from SQLite's catalog: no file is parsed, no
|
|
290
|
+
directory walked, no table counted.
|
|
291
|
+
|
|
292
|
+
When config loading fails the endpoint returns HTTP `503` with
|
|
293
|
+
`{"error":"<diagnostic>"}` and no `root` or `tables`. Fix the config and
|
|
294
|
+
restart the server. Without `--frontend`, the `/` and `/frontend/state`
|
|
295
|
+
routes return `404`. `POST /query` is unchanged.
|
|
255
296
|
|
|
256
297
|
### Flags
|
|
257
298
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>dirsql SQL explorer</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { color-scheme: light; font-family: ui-sans-serif, system-ui, sans-serif; background: #f4f6f4; color: #173026; }
|
|
9
|
+
* { box-sizing: border-box; }
|
|
10
|
+
body { margin: 0; min-height: 100vh; }
|
|
11
|
+
header { border-bottom: 1px solid #d9e1da; background: #fff; padding: 1.1rem max(1.5rem, calc((100vw - 56rem) / 2)); }
|
|
12
|
+
header strong { font-size: 1.15rem; letter-spacing: -.03em; }
|
|
13
|
+
main { max-width: 56rem; margin: 0 auto; padding: clamp(2rem, 7vw, 5rem) 1.5rem; }
|
|
14
|
+
h1 { font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.1; letter-spacing: -.055em; margin: 0 0 1rem; }
|
|
15
|
+
p { line-height: 1.6; color: #4a5d51; max-width: 42rem; }
|
|
16
|
+
.panel { margin-top: 2.5rem; padding: 1.5rem; border: 1px solid #d9e1da; border-radius: 12px; background: #fff; box-shadow: 0 3px 12px #17302609; }
|
|
17
|
+
.panel h2 { margin: 0 0 .5rem; font-size: 1rem; }
|
|
18
|
+
.panel p { margin: 0 0 .6rem; }
|
|
19
|
+
.panel h2:not(:first-child) { margin-top: 1.2rem; }
|
|
20
|
+
.panel ul { margin: .2rem 0 .8rem; padding-left: 1.2rem; line-height: 1.5; color: #4a5d51; }
|
|
21
|
+
.panel button.choice { margin: .2rem 0; padding: .25rem .6rem; background: #eef2ee; color: #173026; border: 1px solid #b9c7bd; font: .9rem/1.4 ui-monospace, monospace; }
|
|
22
|
+
form { margin-top: 2rem; }
|
|
23
|
+
label { display: block; font-weight: 600; margin-bottom: .4rem; }
|
|
24
|
+
textarea { width: 100%; min-height: 7rem; padding: .7rem; border: 1px solid #b9c7bd; border-radius: 8px; font: .95rem/1.5 ui-monospace, monospace; resize: vertical; }
|
|
25
|
+
button { margin-top: .6rem; padding: .5rem 1.2rem; border: 0; border-radius: 8px; background: #1f6b46; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
|
|
26
|
+
button[aria-busy="true"] { opacity: .6; cursor: progress; }
|
|
27
|
+
.hint { font-size: .85rem; margin: .4rem 0 0; }
|
|
28
|
+
#result { margin-top: 1.5rem; overflow-x: auto; }
|
|
29
|
+
#result p.error { color: #a0362a; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
30
|
+
table { border-collapse: collapse; font: .85rem/1.4 ui-monospace, monospace; background: #fff; }
|
|
31
|
+
th, td { border: 1px solid #d9e1da; padding: .3rem .6rem; text-align: left; vertical-align: top; white-space: pre-wrap; overflow-wrap: anywhere; max-width: 40rem; }
|
|
32
|
+
th { background: #eef2ee; }
|
|
33
|
+
td.null { color: #7a8a80; font-style: italic; }
|
|
34
|
+
.error { border-color: #d7a7a1; background: #fff8f7; }
|
|
35
|
+
.error h2 { color: #a0362a; }
|
|
36
|
+
.error pre { white-space: pre-wrap; overflow-wrap: anywhere; font: .9rem/1.5 ui-monospace, monospace; margin: .8rem 0; }
|
|
37
|
+
</style>
|
|
38
|
+
</head>
|
|
39
|
+
<body>
|
|
40
|
+
<header><strong>dirsql</strong></header>
|
|
41
|
+
<main>
|
|
42
|
+
<h1>dirsql SQL explorer</h1>
|
|
43
|
+
<p>Explore the files and tables in this directory with SQL.</p>
|
|
44
|
+
<section class="panel" id="state" aria-live="polite">
|
|
45
|
+
<h2 id="state-title">Connecting to dirsql…</h2>
|
|
46
|
+
<p id="state-message">Checking the server state.</p>
|
|
47
|
+
</section>
|
|
48
|
+
<form id="query" onsubmit="return false">
|
|
49
|
+
<label for="sql">SQL (read-only)</label>
|
|
50
|
+
<textarea id="sql" name="sql" spellcheck="false" aria-describedby="sql-hint">SELECT * FROM './' LIMIT 100</textarea>
|
|
51
|
+
<button type="button" id="run">Run</button>
|
|
52
|
+
<p class="hint" id="sql-hint">Runs exactly as written; edit the LIMIT as needed. Press Ctrl+Enter or Cmd+Enter to run.</p>
|
|
53
|
+
</form>
|
|
54
|
+
<section id="result" aria-live="polite" aria-label="Query result"></section>
|
|
55
|
+
</main>
|
|
56
|
+
<script type="module" src="/frontend.js"></script>
|
|
57
|
+
</body>
|
|
58
|
+
</html>
|