dirsql 0.4.102__tar.gz → 0.4.103__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.102 → dirsql-0.4.103}/Cargo.lock +2 -2
- {dirsql-0.4.102 → dirsql-0.4.103}/PKG-INFO +1 -1
- {dirsql-0.4.102/packages/rust → dirsql-0.4.103}/docs/reference/hooks.md +1 -1
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/Cargo.toml +1 -1
- dirsql-0.4.103/packages/python/changelog.d/2026-10-07-spread-few-large-files.md +1 -0
- {dirsql-0.4.102 → dirsql-0.4.103/packages/python}/docs/reference/hooks.md +1 -1
- dirsql-0.4.103/packages/python/e2e-attestations/bot-1454-split-few-files.json +7 -0
- dirsql-0.4.103/packages/python/migrations.d/2026-10-07-spread-few-large-files.md +39 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/Cargo.toml +1 -1
- {dirsql-0.4.102/packages/python → dirsql-0.4.103/packages/rust}/docs/reference/hooks.md +1 -1
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/on_file.rs +127 -4
- {dirsql-0.4.102 → dirsql-0.4.103}/Cargo.toml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/README.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/_async.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/discover_plugins/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/main.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/cli/resolve_config_extensions.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/plan_entry_path.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/py.typed +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/read_config.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/resolve_configs_extension_specs.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/resolve_extension.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/dirsql/resolve_package.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/AGENTS.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/context/.gitattributes +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/context/recipes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/context/usage.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/explanation.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/getting-started.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/embed.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/persist.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/query-json.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/index.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/package.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/plugins.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/cli.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/glob.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/http-api.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/docs/reference/sdk.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/CHANGELOG.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/MIGRATIONS.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/README.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-bracket-slash-literal.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-dotdot-and-double-slashes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-dotdot-as-written.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-literal-gitignore.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-on-file-ndjson.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-parallel-hooks.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-persist-cache-outside-root.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-posix-classes-unicode.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/README.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/conftest.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/context/.gitattributes +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/context/recipes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/context/usage.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/explanation.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/getting-started.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/embed.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/persist.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/query-json.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/index.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/package.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/plugins.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/cli.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/glob.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/http-api.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/docs/reference/sdk.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1334-listing-exemptions.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1414-stat-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1415-server-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1418-node-modules.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1419-dotdot-slashes.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1420-bracket-slash.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1421-posix-unicode.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1422-literal-gitignore.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1428-ndjson-hooks.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1429-parallel-hooks.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1430-dotdot-as-written.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1431-persist-cache-dir.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1437-test-cache-isolation.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1440-fix-main-build.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1448-wildcard-ignored-prefix.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-1451-named-dir-never-hidden.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/bot-fix-main-place-depth-20261007.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-config-braces.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-config-directory.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-config-dotnames.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-config-gitignore.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-config-links.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-braces.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-directory.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-dotnames.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-gitignore.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-config-links.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-bracket-slash-literal.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-dotdot-and-double-slashes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-dotdot-as-written.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-glob-walks-node-modules.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-literal-gitignore.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-on-file-ndjson.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-parallel-hooks.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-persist-cache-outside-root.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/2026-10-07-posix-classes-unicode.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/migrations.d/README.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/src/lib.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/testing-conventions.toml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/e2e/speed_of_light.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/integration/binding/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/python/tests/integration/hermetic/__init__.py +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/CHANGELOG.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/MIGRATIONS.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/README.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/context/.gitattributes +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/context/recipes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/context/troubleshooting.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/context/usage.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/explanation.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/getting-started.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/agent-skill.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/columns-from-paths.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/define-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/embed.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/extract-from-contents.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/load-extension.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/persist.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/query-json.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/query-without-config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/react-to-changes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/search-by-meaning.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/search-indexes.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/skip-files.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/howto/write-a-plugin.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/index.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/plugins.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/cli.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/columns.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/config.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/glob.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/http-api.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/path-tables.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/docs/reference/sdk.md +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/brace.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/context.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/execute.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/repl.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/run.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/cli/table.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/command.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/config.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/db.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/default_config.toml +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/extension_resolution.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/functions.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/infer.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/launcher.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/listing.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/parsed_vtab.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/path_table.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/posix_class.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/progress.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/row_event_flat.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/scanner.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/sql_literal.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/tree_walk.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/vtab.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/vtab_scaffold.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.4.102 → dirsql-0.4.103}/pyproject.toml +0 -0
|
@@ -573,7 +573,7 @@ dependencies = [
|
|
|
573
573
|
|
|
574
574
|
[[package]]
|
|
575
575
|
name = "dirsql"
|
|
576
|
-
version = "0.4.
|
|
576
|
+
version = "0.4.103"
|
|
577
577
|
dependencies = [
|
|
578
578
|
"assert_cmd",
|
|
579
579
|
"axum",
|
|
@@ -625,7 +625,7 @@ dependencies = [
|
|
|
625
625
|
|
|
626
626
|
[[package]]
|
|
627
627
|
name = "dirsql-py-ext"
|
|
628
|
-
version = "0.4.
|
|
628
|
+
version = "0.4.103"
|
|
629
629
|
dependencies = [
|
|
630
630
|
"dirsql",
|
|
631
631
|
"pyo3",
|
|
@@ -163,7 +163,7 @@ table's paths outgrow that cap, dirsql splits them into the fewest
|
|
|
163
163
|
consecutive runs that fit, runs the command once per run, and concatenates
|
|
164
164
|
the rows it prints. Runs execute concurrently, one per CPU at most, like
|
|
165
165
|
`xargs -P`, so rows keep their order within a run but not across runs; SQL
|
|
166
|
-
never promised row order, so `ORDER BY` what you need. The command cannot tell: each run is an
|
|
166
|
+
never promised row order, so `ORDER BY` what you need. A table whose paths fit one run is also split, by file size, into up to one run per CPU once it holds at least 4 MiB of file data per run, so a few large files do not serialize behind one process. The command cannot tell: each run is an
|
|
167
167
|
ordinary invocation with a subset of the paths. A command must therefore not
|
|
168
168
|
assume one invocation sees every path — a count, a cross-file join, or a
|
|
169
169
|
dedupe over `sys.argv[1:]` is per run, not per table. Do that work in SQL.
|
|
@@ -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.103"
|
|
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
|
+
**Changed** An `on-file` table with a few large files now runs its command over up to one run per CPU, split by file size at 4 MiB of data per run, instead of one run over all of them. Small tables still use one run.
|
|
@@ -163,7 +163,7 @@ table's paths outgrow that cap, dirsql splits them into the fewest
|
|
|
163
163
|
consecutive runs that fit, runs the command once per run, and concatenates
|
|
164
164
|
the rows it prints. Runs execute concurrently, one per CPU at most, like
|
|
165
165
|
`xargs -P`, so rows keep their order within a run but not across runs; SQL
|
|
166
|
-
never promised row order, so `ORDER BY` what you need. The command cannot tell: each run is an
|
|
166
|
+
never promised row order, so `ORDER BY` what you need. A table whose paths fit one run is also split, by file size, into up to one run per CPU once it holds at least 4 MiB of file data per run, so a few large files do not serialize behind one process. The command cannot tell: each run is an
|
|
167
167
|
ordinary invocation with a subset of the paths. A command must therefore not
|
|
168
168
|
assume one invocation sees every path — a count, a cross-file join, or a
|
|
169
169
|
dedupe over `sys.argv[1:]` is per run, not per table. Do that work in SQL.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "uv run python -m pytest tests/e2e/declared_table_name_test.py tests/e2e/fanout_test.py tests/e2e/extension_package_test.py tests/e2e/frontmatter_parse_speed_test.py tests/e2e/jsonl_parse_speed_test.py tests/e2e/plugin_extension_discovery_test.py tests/e2e/on_file_query_test.py tests/e2e/sigint_interrupt_test.py tests/e2e/use_case_notebook_test.py tests/e2e/server_speed_test.py tests/e2e/query_contract_test.py tests/e2e/plugin_discovery_test.py tests/e2e/use_case_transcripts_test.py -q",
|
|
3
|
+
"ran_at": 1791411055,
|
|
4
|
+
"exit_code": 0,
|
|
5
|
+
"commit": "7a93d0b97fe085a269b90d2b75c2a0aa22511c18",
|
|
6
|
+
"branch": "bot/1454-split-few-files"
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
### `on-file` splits large tables by file size
|
|
2
|
+
|
|
3
|
+
#### Summary
|
|
4
|
+
|
|
5
|
+
A table whose paths fit one argument list is now also split into several
|
|
6
|
+
concurrent runs when its files hold at least 4 MiB in total per run, up
|
|
7
|
+
to one run per CPU. Small tables are unchanged.
|
|
8
|
+
|
|
9
|
+
#### Required changes
|
|
10
|
+
|
|
11
|
+
_None._
|
|
12
|
+
|
|
13
|
+
#### Deprecations removed
|
|
14
|
+
|
|
15
|
+
_None._
|
|
16
|
+
|
|
17
|
+
#### Behavior changes without code changes
|
|
18
|
+
|
|
19
|
+
- A hook may now see a subset of the table's paths even when the table is
|
|
20
|
+
small in path count. A hook must already not assume it sees every path;
|
|
21
|
+
do cross-file work in SQL.
|
|
22
|
+
- Rows from different runs have no defined order; add an `ORDER BY`.
|
|
23
|
+
|
|
24
|
+
#### Verification
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cd "$(mktemp -d)"
|
|
28
|
+
for i in 1 2 3 4; do head -c 5000000 /dev/zero | tr '\0' x > "f$i.txt"; done
|
|
29
|
+
printf 'echo "{\\"n\\":$#}"\n' > count.sh
|
|
30
|
+
cat > .dirsql.toml <<'TOML'
|
|
31
|
+
[[table]]
|
|
32
|
+
name = "t"
|
|
33
|
+
ddl = "CREATE TABLE t (n INTEGER)"
|
|
34
|
+
glob = "*.txt"
|
|
35
|
+
on-file = "sh count.sh"
|
|
36
|
+
TOML
|
|
37
|
+
dirsql query "SELECT count(*) AS runs, sum(n) AS paths FROM t" -c .dirsql.toml
|
|
38
|
+
# expected: paths is 4; runs is the smaller of 4 and the CPU count
|
|
39
|
+
```
|
|
@@ -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.103"
|
|
10
10
|
edition.workspace = true
|
|
11
11
|
# Literal `license` (not `license.workspace = true`) because
|
|
12
12
|
# putitoutthere's preflight check reads `[package].license` directly
|
|
@@ -163,7 +163,7 @@ table's paths outgrow that cap, dirsql splits them into the fewest
|
|
|
163
163
|
consecutive runs that fit, runs the command once per run, and concatenates
|
|
164
164
|
the rows it prints. Runs execute concurrently, one per CPU at most, like
|
|
165
165
|
`xargs -P`, so rows keep their order within a run but not across runs; SQL
|
|
166
|
-
never promised row order, so `ORDER BY` what you need. The command cannot tell: each run is an
|
|
166
|
+
never promised row order, so `ORDER BY` what you need. A table whose paths fit one run is also split, by file size, into up to one run per CPU once it holds at least 4 MiB of file data per run, so a few large files do not serialize behind one process. The command cannot tell: each run is an
|
|
167
167
|
ordinary invocation with a subset of the paths. A command must therefore not
|
|
168
168
|
assume one invocation sees every path — a count, a cross-file join, or a
|
|
169
169
|
dedupe over `sys.argv[1:]` is per run, not per table. Do that work in SQL.
|
|
@@ -73,10 +73,12 @@ pub(crate) fn run_streaming(
|
|
|
73
73
|
.iter()
|
|
74
74
|
.map(|path| command::non_verbatim(&path.to_string_lossy()))
|
|
75
75
|
.collect();
|
|
76
|
-
let
|
|
77
|
-
let
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
let cpus = std::thread::available_parallelism().map_or(1, std::num::NonZero::get);
|
|
77
|
+
let mut runs = chunks(&args, ARG_BUDGET.saturating_sub(argv_bytes(&argv)));
|
|
78
|
+
if runs.len() == 1 {
|
|
79
|
+
runs = spread(&args, &file_sizes(paths), cpus);
|
|
80
|
+
}
|
|
81
|
+
let workers = cpus.min(runs.len());
|
|
80
82
|
|
|
81
83
|
let next = AtomicUsize::new(0);
|
|
82
84
|
let aborted = AtomicBool::new(false);
|
|
@@ -202,6 +204,45 @@ fn chunks(args: &[String], budget: usize) -> Vec<&[String]> {
|
|
|
202
204
|
out
|
|
203
205
|
}
|
|
204
206
|
|
|
207
|
+
/// Bytes of file data worth a process of its own: below this, spawning
|
|
208
|
+
/// another invocation costs more than it saves.
|
|
209
|
+
const MIN_RUN_BYTES: u64 = 4 * 1024 * 1024;
|
|
210
|
+
|
|
211
|
+
/// Each path's size in bytes; a path that cannot be read counts as empty.
|
|
212
|
+
fn file_sizes(paths: &[PathBuf]) -> Vec<u64> {
|
|
213
|
+
paths
|
|
214
|
+
.iter()
|
|
215
|
+
.map(|path| std::fs::metadata(path).map_or(0, |meta| meta.len()))
|
|
216
|
+
.collect()
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/// Split `args` into at most `parts` consecutive runs holding about equal
|
|
220
|
+
/// bytes of file data, preserving order, and never more runs than
|
|
221
|
+
/// [`MIN_RUN_BYTES`] of data justify. `sizes` runs parallel to `args`.
|
|
222
|
+
fn spread<'a>(args: &'a [String], sizes: &[u64], parts: usize) -> Vec<&'a [String]> {
|
|
223
|
+
let total: u64 = sizes.iter().sum();
|
|
224
|
+
let parts = parts
|
|
225
|
+
.min(args.len())
|
|
226
|
+
.min(usize::try_from(total / MIN_RUN_BYTES).unwrap_or(usize::MAX));
|
|
227
|
+
if parts <= 1 {
|
|
228
|
+
return vec![args];
|
|
229
|
+
}
|
|
230
|
+
let mut out = Vec::new();
|
|
231
|
+
let mut start = 0;
|
|
232
|
+
let mut seen = 0u64;
|
|
233
|
+
for (i, size) in sizes.iter().enumerate() {
|
|
234
|
+
seen += size;
|
|
235
|
+
let cut = u64::try_from(out.len() + 1).unwrap_or(u64::MAX);
|
|
236
|
+
let last = i + 1 == args.len();
|
|
237
|
+
if !last && out.len() + 1 < parts && seen * parts as u64 >= total * cut {
|
|
238
|
+
out.push(&args[start..=i]);
|
|
239
|
+
start = i + 1;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
out.push(&args[start..]);
|
|
243
|
+
out
|
|
244
|
+
}
|
|
245
|
+
|
|
205
246
|
#[cfg(test)]
|
|
206
247
|
mod tests {
|
|
207
248
|
use super::*;
|
|
@@ -344,6 +385,88 @@ mod tests {
|
|
|
344
385
|
assert_eq!(total, 6000);
|
|
345
386
|
}
|
|
346
387
|
|
|
388
|
+
fn files_of(dir: &Path, count: usize, bytes: usize) -> Vec<PathBuf> {
|
|
389
|
+
(0..count)
|
|
390
|
+
.map(|i| {
|
|
391
|
+
let path = dir.join(format!("f{i}.jsonl"));
|
|
392
|
+
std::fs::write(&path, vec![b'x'; bytes]).unwrap();
|
|
393
|
+
path
|
|
394
|
+
})
|
|
395
|
+
.collect()
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
fn invocations_over(paths: &[PathBuf]) -> usize {
|
|
399
|
+
run(
|
|
400
|
+
r#"sh -c 'echo "{\"n\":$#}"' sh"#,
|
|
401
|
+
Path::new("."),
|
|
402
|
+
Path::new("."),
|
|
403
|
+
paths,
|
|
404
|
+
)
|
|
405
|
+
.unwrap()
|
|
406
|
+
.len()
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
#[test]
|
|
410
|
+
fn spread_cuts_equal_bytes_in_order() {
|
|
411
|
+
let args = args(&["a", "b", "c", "d"]);
|
|
412
|
+
let mib = 1024 * 1024;
|
|
413
|
+
let runs = spread(&args, &[8 * mib, 8 * mib, 8 * mib, 8 * mib], 2);
|
|
414
|
+
assert_eq!(lens(&runs), [2, 2]);
|
|
415
|
+
assert_eq!(runs[1], ["c", "d"]);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
#[test]
|
|
419
|
+
fn spread_never_makes_more_runs_than_the_data_justifies() {
|
|
420
|
+
let args = args(&["a", "b", "c", "d"]);
|
|
421
|
+
let mib = 1024 * 1024;
|
|
422
|
+
assert_eq!(lens(&spread(&args, &[5 * mib; 4], 16)), [1, 1, 1, 1]);
|
|
423
|
+
assert_eq!(lens(&spread(&args, &[mib; 4], 16)), [4]);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
#[test]
|
|
427
|
+
fn spread_isolates_a_dominant_file() {
|
|
428
|
+
let args = args(&["a", "b", "c"]);
|
|
429
|
+
let mib = 1024 * 1024;
|
|
430
|
+
assert_eq!(lens(&spread(&args, &[100 * mib, mib, mib], 2)), [1, 2]);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
#[test]
|
|
434
|
+
fn spread_cuts_at_each_even_share_of_the_bytes() {
|
|
435
|
+
let args = args(&["a", "b", "c", "d", "e"]);
|
|
436
|
+
let mib = 1024 * 1024;
|
|
437
|
+
let sizes = [5 * mib, 0, 5 * mib, 5 * mib, 0];
|
|
438
|
+
assert_eq!(lens(&spread(&args, &sizes, 3)), [1, 2, 2]);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
#[test]
|
|
442
|
+
fn spread_never_ends_with_an_empty_run() {
|
|
443
|
+
let args = args(&["a", "b", "c"]);
|
|
444
|
+
let mib = 1024 * 1024;
|
|
445
|
+
let sizes = [20 * mib, 0, 20 * mib];
|
|
446
|
+
assert_eq!(lens(&spread(&args, &sizes, 3)), [1, 2]);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
#[test]
|
|
450
|
+
fn spread_gives_unreadable_files_no_weight() {
|
|
451
|
+
let args = args(&["a", "b"]);
|
|
452
|
+
assert_eq!(lens(&spread(&args, &[0, 0], 4)), [2]);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
#[test]
|
|
456
|
+
fn run_spreads_a_few_large_files_across_the_available_workers() {
|
|
457
|
+
let dir = tempfile::tempdir().unwrap();
|
|
458
|
+
let paths = files_of(dir.path(), 4, 4 * 1024 * 1024);
|
|
459
|
+
let runs = invocations_over(&paths);
|
|
460
|
+
assert!((2..=4).contains(&runs), "got {runs} invocations");
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
#[test]
|
|
464
|
+
fn run_keeps_a_few_small_files_in_one_invocation() {
|
|
465
|
+
let dir = tempfile::tempdir().unwrap();
|
|
466
|
+
let paths = files_of(dir.path(), 4, 100);
|
|
467
|
+
assert_eq!(invocations_over(&paths), 1);
|
|
468
|
+
}
|
|
469
|
+
|
|
347
470
|
#[test]
|
|
348
471
|
fn run_names_the_line_of_bad_output_after_earlier_blocks() {
|
|
349
472
|
let err = run(
|
|
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.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-plugin-discovery.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-13-repeatable-config.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-07-29-restore-python-310.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md
RENAMED
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md
RENAMED
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-08-03-python-no-ignore.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/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.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-09-18-export-scan-failure.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-02-readme-docs-host.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-directory.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-config-gitignore.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-bracket-slash-literal.md
RENAMED
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-dotdot-as-written.md
RENAMED
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md
RENAMED
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-literal-gitignore.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.4.102 → dirsql-0.4.103}/packages/python/changelog.d/2026-10-07-posix-classes-unicode.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
|