dirsql 0.4.86__tar.gz → 0.4.87__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.86 → dirsql-0.4.87}/Cargo.lock +2 -2
- {dirsql-0.4.86 → dirsql-0.4.87}/PKG-INFO +1 -1
- {dirsql-0.4.86/packages/rust → dirsql-0.4.87}/docs/reference/path-tables.md +3 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.87/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +1 -0
- {dirsql-0.4.86 → dirsql-0.4.87/packages/python}/docs/reference/path-tables.md +3 -1
- dirsql-0.4.87/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +7 -0
- dirsql-0.4.87/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +29 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.86/packages/python → dirsql-0.4.87/packages/rust}/docs/reference/path-tables.md +3 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/brace.rs +14 -8
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/matcher.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/parsed_vtab.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/scanner.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/vtab.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/vtab_scaffold.rs +1 -1
- {dirsql-0.4.86 → dirsql-0.4.87}/Cargo.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/_async.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/py.typed +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/read_config.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/AGENTS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/package.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/conftest.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/README.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/cli.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/hooks.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/on_file.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.86 → dirsql-0.4.87}/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.87"
|
|
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.87"
|
|
607
607
|
dependencies = [
|
|
608
608
|
"dirsql",
|
|
609
609
|
"pyo3",
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -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.87"
|
|
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 @@
|
|
|
1
|
+
**Fixed** An unmatched `{`, `}` or `[` in a path-table or a config `[[table]] glob` is a literal character, as in bash, instead of a glob compile error.
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/glob_speed_depth_bound_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_matchers_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/capture_collision_test.py -x -q",
|
|
3
|
+
"ran_at": 1791325871,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "45535f123cfc3ea9cf9460c228196e2630d377db",
|
|
6
|
+
"branch": "claude/1268-unbalanced-brackets"
|
|
7
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
### Core: unbalanced braces and brackets in a glob are literal
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
A `{`, `}` or `[` with no partner in a glob is now a literal character, as in
|
|
6
|
+
bash, on path-tables and on config `[[table]] glob`. It used to fail with a
|
|
7
|
+
glob compile error. Nothing that compiled before changes meaning.
|
|
8
|
+
|
|
9
|
+
#### Required changes
|
|
10
|
+
|
|
11
|
+
_None._
|
|
12
|
+
|
|
13
|
+
#### Deprecations removed
|
|
14
|
+
|
|
15
|
+
_None._
|
|
16
|
+
|
|
17
|
+
#### Behavior changes without code changes
|
|
18
|
+
|
|
19
|
+
- `'./{a.md'`, `'./a}.md'`, `'./[a.md'` and `'./a[b.md'` match files named
|
|
20
|
+
exactly that instead of failing to compile.
|
|
21
|
+
|
|
22
|
+
#### Verification
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cd "$(mktemp -d)"
|
|
26
|
+
touch '[a.md'
|
|
27
|
+
dirsql query "SELECT path FROM './[a.md'"
|
|
28
|
+
# expected: [{"path":"[a.md"}]
|
|
29
|
+
```
|
|
@@ -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.87"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -59,7 +59,9 @@ alternation: `'./docs/{a,b}.md'` is `docs/a.md` and `docs/b.md`, and groups
|
|
|
59
59
|
nest. A group holding a `..` range counts: `'./log/{1..3}.txt'`,
|
|
60
60
|
`'./{a..c}.md'`, `'./{01..10}.md'` (zero-padded) and `'./{1..10..2}.md'`
|
|
61
61
|
(every second value). Any other brace is literal text, so `'./br/{q}.md'`
|
|
62
|
-
names the file `br/{q}.md`, and `\{` is always a literal brace.
|
|
62
|
+
names the file `br/{q}.md`, and `\{` is always a literal brace. A `{`, `}`
|
|
63
|
+
or `[` with no partner is literal too, in a path-table and in a config
|
|
64
|
+
`[[table]] glob`.
|
|
63
65
|
|
|
64
66
|
The scan starts at the last directory named outright before the first glob
|
|
65
67
|
component, and descends only as deep as the pattern can match --
|
|
@@ -198,7 +198,7 @@ fn steps(lo: i64, hi: i64, step: i64) -> Option<impl Iterator<Item = i128>> {
|
|
|
198
198
|
|
|
199
199
|
/// Escape the braces bash left as literal text, so globset matches them
|
|
200
200
|
/// rather than reading an alternation. A complete `[...]` class is copied as
|
|
201
|
-
/// written; an unclosed
|
|
201
|
+
/// written; an unclosed `[` is a literal character.
|
|
202
202
|
fn escape_braces(word: &str) -> String {
|
|
203
203
|
let chars: Vec<char> = word.chars().collect();
|
|
204
204
|
let mut out = String::with_capacity(word.len());
|
|
@@ -222,10 +222,7 @@ fn escape_braces(word: &str) -> String {
|
|
|
222
222
|
out.extend(&chars[i..=end]);
|
|
223
223
|
resume = end + 1;
|
|
224
224
|
}
|
|
225
|
-
None =>
|
|
226
|
-
out.extend(&chars[i..]);
|
|
227
|
-
return out;
|
|
228
|
-
}
|
|
225
|
+
None => out.push_str("[[]"),
|
|
229
226
|
},
|
|
230
227
|
('{', _) => out.push_str("[{]"),
|
|
231
228
|
('}', _) => out.push_str("[}]"),
|
|
@@ -411,9 +408,18 @@ mod tests {
|
|
|
411
408
|
}
|
|
412
409
|
|
|
413
410
|
#[test]
|
|
414
|
-
fn
|
|
415
|
-
assert_eq!(escape_braces("x[{q}"), "x[{q}");
|
|
416
|
-
assert_eq!(escape_braces("x[]{"), "x[]{");
|
|
411
|
+
fn an_unclosed_bracket_is_literal() {
|
|
412
|
+
assert_eq!(escape_braces("x[{q}"), "x[[][{]q[}]");
|
|
413
|
+
assert_eq!(escape_braces("x[]{"), "x[[]][{]");
|
|
414
|
+
assert_eq!(escape_braces("[!a"), "[[]!a");
|
|
415
|
+
assert_eq!(escape_braces("a].md"), "a].md");
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
#[test]
|
|
419
|
+
fn expand_leaves_an_unpartnered_brace_literal() {
|
|
420
|
+
assert_eq!(expand("{a.md"), vec!["[{]a.md"]);
|
|
421
|
+
assert_eq!(expand("a}.md"), vec!["a[}].md"]);
|
|
422
|
+
assert_eq!(expand("{a,b}}.md"), vec!["a[}].md", "b[}].md"]);
|
|
417
423
|
}
|
|
418
424
|
|
|
419
425
|
#[test]
|
|
@@ -291,7 +291,7 @@ mod tests {
|
|
|
291
291
|
|
|
292
292
|
#[test]
|
|
293
293
|
fn parse_module_args_rejects_an_invalid_glob() {
|
|
294
|
-
let args = args_with(&[b"'/tmp'", b"'['", b"'cat'", b"'gitignore'", b"'/tmp'"]);
|
|
294
|
+
let args = args_with(&[b"'/tmp'", b"'[z-a]'", b"'cat'", b"'gitignore'", b"'/tmp'"]);
|
|
295
295
|
assert!(parse_module_args(&args).is_err());
|
|
296
296
|
}
|
|
297
297
|
|
|
@@ -620,7 +620,7 @@ mod tests {
|
|
|
620
620
|
|
|
621
621
|
#[test]
|
|
622
622
|
fn parse_module_args_rejects_an_invalid_glob() {
|
|
623
|
-
let args = args_with(&[b"'/tmp'", b"'['", b"''", b"'gitignore'"]);
|
|
623
|
+
let args = args_with(&[b"'/tmp'", b"'[z-a]'", b"''", b"'gitignore'"]);
|
|
624
624
|
assert!(parse_module_args(&args).is_err());
|
|
625
625
|
}
|
|
626
626
|
|
|
@@ -669,7 +669,7 @@ mod tests {
|
|
|
669
669
|
|
|
670
670
|
#[test]
|
|
671
671
|
fn compile_glob_rejects_an_invalid_pattern() {
|
|
672
|
-
let err = compile_glob("[").unwrap_err();
|
|
672
|
+
let err = compile_glob("[z-a]").unwrap_err();
|
|
673
673
|
assert!(
|
|
674
674
|
matches!(err, Error::ModuleError(_)),
|
|
675
675
|
"invalid globs surface as module errors, got {err:?}"
|
|
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.86 → dirsql-0.4.87}/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.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-07-29-restore-python-310.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/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.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/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.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-09-18-export-scan-failure.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/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.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/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
|
|
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.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json
RENAMED
|
File without changes
|
{dirsql-0.4.86 → dirsql-0.4.87}/packages/python/e2e-attestations/bot-1398-inotify-error.json
RENAMED
|
File without changes
|