dirsql 0.4.87__tar.gz → 0.4.88__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.87 → dirsql-0.4.88}/Cargo.lock +2 -2
- {dirsql-0.4.87 → dirsql-0.4.88}/PKG-INFO +1 -1
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.88/packages/python/changelog.d/2026-10-06-config-gitignore.md +3 -0
- dirsql-0.4.88/packages/python/e2e-attestations/claude-1258-config-gitignore.json +7 -0
- dirsql-0.4.88/packages/python/migrations.d/2026-10-06-config-gitignore.md +45 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/lib.rs +32 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/matcher.rs +19 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/scanner.rs +41 -3
- {dirsql-0.4.87 → dirsql-0.4.88}/Cargo.toml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/README.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/_async.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/py.typed +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/read_config.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/AGENTS.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/context/recipes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/context/usage.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/explanation.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/getting-started.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/embed.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/persist.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/index.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/package.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/plugins.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/cli.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/README.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/conftest.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/cli.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/README.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/cli.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/brace.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/on_file.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/parsed_vtab.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/vtab.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/vtab_scaffold.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.87 → dirsql-0.4.88}/pyproject.toml +0 -0
|
@@ -552,7 +552,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
|
552
552
|
|
|
553
553
|
[[package]]
|
|
554
554
|
name = "dirsql"
|
|
555
|
-
version = "0.4.
|
|
555
|
+
version = "0.4.88"
|
|
556
556
|
dependencies = [
|
|
557
557
|
"assert_cmd",
|
|
558
558
|
"axum",
|
|
@@ -603,7 +603,7 @@ dependencies = [
|
|
|
603
603
|
|
|
604
604
|
[[package]]
|
|
605
605
|
name = "dirsql-py-ext"
|
|
606
|
-
version = "0.4.
|
|
606
|
+
version = "0.4.88"
|
|
607
607
|
dependencies = [
|
|
608
608
|
"dirsql",
|
|
609
609
|
"pyo3",
|
|
@@ -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.88"
|
|
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
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_gitignore_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/query_contract_test.py -x -q",
|
|
3
|
+
"ran_at": 1791329772,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "f828a8181c981ab9c5c775117cb60edf3ccd9dcc",
|
|
6
|
+
"branch": "claude/1258-config-gitignore"
|
|
7
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
### Config tables respect .gitignore
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
A declared `[[table]]` used to read every file its glob matched, whatever
|
|
6
|
+
`.gitignore` said. It now skips gitignored files, as a path-table does. This
|
|
7
|
+
breaks a config that relied on indexing an ignored file; pass `--no-ignore`
|
|
8
|
+
(or `no_ignore` in the SDKs) to restore the old behavior.
|
|
9
|
+
|
|
10
|
+
#### Required changes
|
|
11
|
+
|
|
12
|
+
| Before | After |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| a table indexed gitignored files | pass `--no-ignore`, or stop ignoring the file |
|
|
15
|
+
|
|
16
|
+
#### Deprecations removed
|
|
17
|
+
|
|
18
|
+
_None._
|
|
19
|
+
|
|
20
|
+
#### Behavior changes without code changes
|
|
21
|
+
|
|
22
|
+
- Inside a git repo (a directory holding `.git`), files a `.gitignore` ignores
|
|
23
|
+
are not rows of a `[[table]]`, at startup or while watching.
|
|
24
|
+
- Outside a repo nothing changes.
|
|
25
|
+
|
|
26
|
+
#### Verification
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cd "$(mktemp -d)"
|
|
30
|
+
git init -q
|
|
31
|
+
printf 'skip.json\n' > .gitignore
|
|
32
|
+
echo '[{"p":"keep"}]' > keep.json
|
|
33
|
+
echo '[{"p":"skip"}]' > skip.json
|
|
34
|
+
cat > .dirsql.toml <<'TOML'
|
|
35
|
+
[[table]]
|
|
36
|
+
name = "t"
|
|
37
|
+
glob = "*.json"
|
|
38
|
+
ddl = "CREATE TABLE t (p TEXT)"
|
|
39
|
+
on-file = "jq -sc add"
|
|
40
|
+
TOML
|
|
41
|
+
dirsql query "SELECT p FROM t" -c .dirsql.toml
|
|
42
|
+
# expected: [{"p":"keep"}]
|
|
43
|
+
dirsql query "SELECT p FROM t ORDER BY p" -c .dirsql.toml --no-ignore
|
|
44
|
+
# expected: [{"p":"keep"},{"p":"skip"}]
|
|
45
|
+
```
|
|
@@ -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.88"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -732,6 +732,14 @@ impl DirSQL {
|
|
|
732
732
|
if group.matcher.is_ignored(&rel_path_buf) {
|
|
733
733
|
continue;
|
|
734
734
|
}
|
|
735
|
+
if group.matcher.respects_gitignore()
|
|
736
|
+
&& scanner::is_gitignored_path(
|
|
737
|
+
&abs_path,
|
|
738
|
+
self.inner.fs.is_dir(&abs_path).unwrap_or(false),
|
|
739
|
+
)
|
|
740
|
+
{
|
|
741
|
+
continue;
|
|
742
|
+
}
|
|
735
743
|
|
|
736
744
|
// A directory that appears whole (`mkdir`, or a populated directory
|
|
737
745
|
// renamed into the tree) arrives as one event naming the directory and
|
|
@@ -1110,6 +1118,13 @@ impl DirSQL {
|
|
|
1110
1118
|
} = resolved;
|
|
1111
1119
|
|
|
1112
1120
|
let (groups, anchors, table_names) = compile_groups(&tables, &ignore, &root)?;
|
|
1121
|
+
let groups = groups
|
|
1122
|
+
.into_iter()
|
|
1123
|
+
.map(|group| AnchorGroup {
|
|
1124
|
+
matcher: group.matcher.with_gitignore(!no_ignore),
|
|
1125
|
+
..group
|
|
1126
|
+
})
|
|
1127
|
+
.collect::<Vec<_>>();
|
|
1113
1128
|
|
|
1114
1129
|
// Resolve the persistent context before scanning, so the scan can
|
|
1115
1130
|
// consult the cached file index.
|
|
@@ -2935,6 +2950,23 @@ mod internal_tests {
|
|
|
2935
2950
|
assert_eq!(found, vec!["a.txt"]);
|
|
2936
2951
|
}
|
|
2937
2952
|
|
|
2953
|
+
/// The startup walk honors `.gitignore` unless the build asked not to.
|
|
2954
|
+
#[test]
|
|
2955
|
+
fn prepare_hands_the_walk_a_matcher_that_honors_gitignore_unless_no_ignore() {
|
|
2956
|
+
let dir = TempDir::new().unwrap();
|
|
2957
|
+
for no_ignore in [false, true] {
|
|
2958
|
+
let honored = Cell::new(None);
|
|
2959
|
+
let mut resolved = resolved_over(dir.path(), vec![txt_table()], false);
|
|
2960
|
+
resolved.no_ignore = no_ignore;
|
|
2961
|
+
DirSQL::prepare_resolved_with(resolved, &|_, matcher, _| {
|
|
2962
|
+
honored.set(Some(matcher.respects_gitignore()));
|
|
2963
|
+
Vec::new()
|
|
2964
|
+
})
|
|
2965
|
+
.unwrap();
|
|
2966
|
+
assert_eq!(honored.get(), Some(!no_ignore));
|
|
2967
|
+
}
|
|
2968
|
+
}
|
|
2969
|
+
|
|
2938
2970
|
/// Skipping the walk skips only the walk: with persist on, the cache is
|
|
2939
2971
|
/// still opened and reconciled against the (empty) scan.
|
|
2940
2972
|
#[test]
|
|
@@ -97,6 +97,7 @@ pub struct TableMatcher {
|
|
|
97
97
|
entries: Vec<PatternEntry>,
|
|
98
98
|
ignore_set: Vec<Pattern>,
|
|
99
99
|
ignore_dir_set: Vec<Pattern>,
|
|
100
|
+
gitignore: bool,
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
/// Byte spans of the `{name}` placeholders in `pattern`, in order: `(start,
|
|
@@ -182,9 +183,20 @@ impl TableMatcher {
|
|
|
182
183
|
entries,
|
|
183
184
|
ignore_set,
|
|
184
185
|
ignore_dir_set,
|
|
186
|
+
gitignore: false,
|
|
185
187
|
})
|
|
186
188
|
}
|
|
187
189
|
|
|
190
|
+
/// Whether a scan under this matcher honors `.gitignore` files.
|
|
191
|
+
pub fn with_gitignore(mut self, gitignore: bool) -> Self {
|
|
192
|
+
self.gitignore = gitignore;
|
|
193
|
+
self
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
pub(crate) fn respects_gitignore(&self) -> bool {
|
|
197
|
+
self.gitignore
|
|
198
|
+
}
|
|
199
|
+
|
|
188
200
|
/// Returns one [`MatchResult`] per matching pattern, in declaration order.
|
|
189
201
|
/// A file matching N patterns yields N results (fan-out). Empty when
|
|
190
202
|
/// nothing matches.
|
|
@@ -230,6 +242,13 @@ mod tests {
|
|
|
230
242
|
assert_eq!(names(&matcher, "report.csv"), vec!["data"]);
|
|
231
243
|
}
|
|
232
244
|
|
|
245
|
+
#[test]
|
|
246
|
+
fn a_matcher_honors_gitignore_only_once_asked_to() {
|
|
247
|
+
let matcher = TableMatcher::new(&[], &[]).unwrap();
|
|
248
|
+
assert!(!matcher.respects_gitignore());
|
|
249
|
+
assert!(matcher.with_gitignore(true).respects_gitignore());
|
|
250
|
+
}
|
|
251
|
+
|
|
233
252
|
#[test]
|
|
234
253
|
fn match_all_returns_empty_for_no_match() {
|
|
235
254
|
let matcher = TableMatcher::new(&[("*.csv", "data")], &[]).unwrap();
|
|
@@ -93,15 +93,23 @@ fn scan_below(
|
|
|
93
93
|
) -> Vec<(PathBuf, String)> {
|
|
94
94
|
let mut results = Vec::new();
|
|
95
95
|
let mut seen: u64 = 0;
|
|
96
|
+
let gitignore = matcher.respects_gitignore();
|
|
97
|
+
let repo = if gitignore {
|
|
98
|
+
enclosing_repo(start, &holds_git)
|
|
99
|
+
} else {
|
|
100
|
+
None
|
|
101
|
+
};
|
|
96
102
|
|
|
97
103
|
// Match against relative path so globs like "comments/**/*.jsonl" work
|
|
98
104
|
// regardless of the absolute root directory.
|
|
99
105
|
let walker = Walk {
|
|
100
106
|
ignore: matcher,
|
|
101
107
|
glob: None,
|
|
102
|
-
gitignore
|
|
103
|
-
in_repo:
|
|
104
|
-
frames: Vec::new
|
|
108
|
+
gitignore,
|
|
109
|
+
in_repo: repo.is_some(),
|
|
110
|
+
frames: repo.map_or_else(Vec::new, |top| {
|
|
111
|
+
gitignores_above(start, top, &load_gitignore)
|
|
112
|
+
}),
|
|
105
113
|
dirs: false,
|
|
106
114
|
};
|
|
107
115
|
walk(
|
|
@@ -741,6 +749,26 @@ fn load_gitignore(dir: &Path) -> Option<Gitignore> {
|
|
|
741
749
|
builder.build().ok()
|
|
742
750
|
}
|
|
743
751
|
|
|
752
|
+
/// Whether the `.gitignore` files of the repo enclosing `path` ignore it, or
|
|
753
|
+
/// a directory above it, as the walk would have: for a path a watcher reports
|
|
754
|
+
/// without having walked to it.
|
|
755
|
+
pub(crate) fn is_gitignored_path(path: &Path, is_dir: bool) -> bool {
|
|
756
|
+
let Some(top) = path
|
|
757
|
+
.parent()
|
|
758
|
+
.and_then(|dir| enclosing_repo(dir, &holds_git))
|
|
759
|
+
else {
|
|
760
|
+
return false;
|
|
761
|
+
};
|
|
762
|
+
for frame in gitignores_above(path, top, &load_gitignore).iter().rev() {
|
|
763
|
+
match frame.matched_path_or_any_parents(path, is_dir) {
|
|
764
|
+
Match::Ignore(_) => return true,
|
|
765
|
+
Match::Whitelist(_) => return false,
|
|
766
|
+
Match::None => {}
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
false
|
|
770
|
+
}
|
|
771
|
+
|
|
744
772
|
/// Whether the `.gitignore` files in force mark `path` ignored. Deeper files
|
|
745
773
|
/// take precedence (git's rule), and a whitelisting `!pattern` un-ignores.
|
|
746
774
|
fn is_gitignored(frames: &[Arc<Gitignore>], path: &Path, is_dir: bool) -> bool {
|
|
@@ -1664,4 +1692,14 @@ mod tests {
|
|
|
1664
1692
|
let frames = [frame("", &["!keep.log"]), frame("sub", &["*.log"])];
|
|
1665
1693
|
assert!(is_gitignored(&frames, Path::new("sub/keep.log"), false));
|
|
1666
1694
|
}
|
|
1695
|
+
|
|
1696
|
+
#[test]
|
|
1697
|
+
fn is_gitignored_path_ignores_a_path_the_repo_gitignore_matches() {
|
|
1698
|
+
let repo = tempfile::tempdir().unwrap();
|
|
1699
|
+
fs::create_dir(repo.path().join(".git")).unwrap();
|
|
1700
|
+
fs::write(repo.path().join(".gitignore"), "*.log\n").unwrap();
|
|
1701
|
+
|
|
1702
|
+
assert!(is_gitignored_path(&repo.path().join("debug.log"), false));
|
|
1703
|
+
assert!(!is_gitignored_path(&repo.path().join("app.js"), false));
|
|
1704
|
+
}
|
|
1667
1705
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-07-29-restore-python-310.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-08-20-declared-table-name.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-export-scan-failure.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md
RENAMED
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.87 → dirsql-0.4.88}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|