dirsql 0.4.94__tar.gz → 0.4.95__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.
Files changed (383) hide show
  1. {dirsql-0.4.94 → dirsql-0.4.95}/Cargo.lock +2 -2
  2. {dirsql-0.4.94 → dirsql-0.4.95}/PKG-INFO +2 -2
  3. {dirsql-0.4.94/packages/python → dirsql-0.4.95}/README.md +1 -1
  4. {dirsql-0.4.94/packages/python → dirsql-0.4.95}/docs/context/troubleshooting.md +0 -1
  5. {dirsql-0.4.94/packages/rust → dirsql-0.4.95}/docs/context/usage.md +0 -1
  6. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/query-without-config.md +3 -2
  7. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/cli.md +1 -1
  8. {dirsql-0.4.94/packages/rust → dirsql-0.4.95}/docs/reference/glob.md +2 -3
  9. {dirsql-0.4.94/packages/rust → dirsql-0.4.95}/docs/reference/path-tables.md +8 -25
  10. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/sdk.md +1 -1
  11. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/Cargo.toml +1 -1
  12. {dirsql-0.4.94 → dirsql-0.4.95/packages/python}/README.md +1 -1
  13. dirsql-0.4.95/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md +3 -0
  14. {dirsql-0.4.94/packages/rust → dirsql-0.4.95/packages/python}/docs/context/troubleshooting.md +0 -1
  15. {dirsql-0.4.94 → dirsql-0.4.95/packages/python}/docs/context/usage.md +0 -1
  16. {dirsql-0.4.94/packages/rust → dirsql-0.4.95/packages/python}/docs/howto/query-without-config.md +3 -2
  17. {dirsql-0.4.94/packages/rust → dirsql-0.4.95/packages/python}/docs/reference/cli.md +1 -1
  18. {dirsql-0.4.94 → dirsql-0.4.95/packages/python}/docs/reference/glob.md +2 -3
  19. {dirsql-0.4.94 → dirsql-0.4.95/packages/python}/docs/reference/path-tables.md +8 -25
  20. {dirsql-0.4.94/packages/rust → dirsql-0.4.95/packages/python}/docs/reference/sdk.md +1 -1
  21. dirsql-0.4.95/packages/python/e2e-attestations/bot-1414-stat-speed.json +7 -0
  22. dirsql-0.4.95/packages/python/e2e-attestations/bot-1418-node-modules.json +7 -0
  23. dirsql-0.4.95/packages/python/migrations.d/2026-10-07-glob-walks-node-modules.md +23 -0
  24. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/Cargo.toml +1 -1
  25. {dirsql-0.4.94 → dirsql-0.4.95/packages/rust}/docs/context/troubleshooting.md +0 -1
  26. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/context/usage.md +0 -1
  27. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/howto/query-without-config.md +3 -2
  28. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/reference/cli.md +1 -1
  29. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/reference/glob.md +2 -3
  30. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/reference/path-tables.md +8 -25
  31. {dirsql-0.4.94/packages/python → dirsql-0.4.95/packages/rust}/docs/reference/sdk.md +1 -1
  32. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/db.rs +5 -5
  33. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/matcher.rs +5 -42
  34. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/path_table.rs +4 -45
  35. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/scanner.rs +2 -4
  36. {dirsql-0.4.94 → dirsql-0.4.95}/Cargo.toml +0 -0
  37. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/__init__.py +0 -0
  38. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/_async.py +0 -0
  39. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/_dirsql.pyi +0 -0
  40. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/__init__.py +0 -0
  41. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/discover_plugins/__init__.py +0 -0
  42. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
  43. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
  44. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
  45. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
  46. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/main.py +0 -0
  47. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/cli/resolve_config_extensions.py +0 -0
  48. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/plan_entry_path.py +0 -0
  49. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/py.typed +0 -0
  50. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/read_config.py +0 -0
  51. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/resolve_configs_extension_specs.py +0 -0
  52. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/resolve_extension.py +0 -0
  53. {dirsql-0.4.94 → dirsql-0.4.95}/dirsql/resolve_package.py +0 -0
  54. {dirsql-0.4.94 → dirsql-0.4.95}/docs/.claude/CLAUDE.md +0 -0
  55. {dirsql-0.4.94 → dirsql-0.4.95}/docs/.vitepress/config.ts +0 -0
  56. {dirsql-0.4.94 → dirsql-0.4.95}/docs/.vitepress/theme/index.ts +0 -0
  57. {dirsql-0.4.94 → dirsql-0.4.95}/docs/.vitepress/theme/lang.ts +0 -0
  58. {dirsql-0.4.94 → dirsql-0.4.95}/docs/AGENTS.md +0 -0
  59. {dirsql-0.4.94 → dirsql-0.4.95}/docs/context/.gitattributes +0 -0
  60. {dirsql-0.4.94 → dirsql-0.4.95}/docs/context/recipes.md +0 -0
  61. {dirsql-0.4.94 → dirsql-0.4.95}/docs/explanation.md +0 -0
  62. {dirsql-0.4.94 → dirsql-0.4.95}/docs/getting-started.md +0 -0
  63. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/agent-skill.md +0 -0
  64. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/columns-from-paths.md +0 -0
  65. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/define-tables.md +0 -0
  66. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/embed.md +0 -0
  67. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/extract-from-contents.md +0 -0
  68. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/load-extension.md +0 -0
  69. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/parse-files-into-columns.md +0 -0
  70. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/persist.md +0 -0
  71. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/query-json.md +0 -0
  72. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/react-to-changes.md +0 -0
  73. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/search-by-meaning.md +0 -0
  74. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/search-indexes.md +0 -0
  75. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/skip-files.md +0 -0
  76. {dirsql-0.4.94 → dirsql-0.4.95}/docs/howto/write-a-plugin.md +0 -0
  77. {dirsql-0.4.94 → dirsql-0.4.95}/docs/index.md +0 -0
  78. {dirsql-0.4.94 → dirsql-0.4.95}/docs/package.json +0 -0
  79. {dirsql-0.4.94 → dirsql-0.4.95}/docs/plugins.md +0 -0
  80. {dirsql-0.4.94 → dirsql-0.4.95}/docs/pnpm-lock.yaml +0 -0
  81. {dirsql-0.4.94 → dirsql-0.4.95}/docs/pnpm-workspace.yaml +0 -0
  82. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/columns.md +0 -0
  83. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/config.md +0 -0
  84. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/hooks.md +0 -0
  85. {dirsql-0.4.94 → dirsql-0.4.95}/docs/reference/http-api.md +0 -0
  86. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/CHANGELOG.md +0 -0
  87. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/MIGRATIONS.md +0 -0
  88. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  89. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
  90. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  91. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
  92. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  93. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
  94. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
  95. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
  96. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  97. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
  98. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
  99. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
  100. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
  101. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
  102. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
  103. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
  104. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
  105. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
  106. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
  107. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
  108. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
  109. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
  110. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
  111. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
  112. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
  113. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
  114. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
  115. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
  116. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
  117. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
  118. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
  119. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
  120. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
  121. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
  122. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
  123. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
  124. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
  125. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
  126. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
  127. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
  128. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
  129. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-braces.md +0 -0
  130. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-directory.md +0 -0
  131. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-dotnames.md +0 -0
  132. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-gitignore.md +0 -0
  133. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
  134. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-config-links.md +0 -0
  135. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
  136. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
  137. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
  138. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
  139. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/changelog.d/README.md +0 -0
  140. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/conftest.py +0 -0
  141. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/.claude/CLAUDE.md +0 -0
  142. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/.vitepress/config.ts +0 -0
  143. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/.vitepress/theme/index.ts +0 -0
  144. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
  145. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/AGENTS.md +0 -0
  146. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/context/.gitattributes +0 -0
  147. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/context/recipes.md +0 -0
  148. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/explanation.md +0 -0
  149. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/getting-started.md +0 -0
  150. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/agent-skill.md +0 -0
  151. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/columns-from-paths.md +0 -0
  152. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/define-tables.md +0 -0
  153. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/embed.md +0 -0
  154. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/extract-from-contents.md +0 -0
  155. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/load-extension.md +0 -0
  156. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
  157. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/persist.md +0 -0
  158. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/query-json.md +0 -0
  159. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/react-to-changes.md +0 -0
  160. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/search-by-meaning.md +0 -0
  161. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/search-indexes.md +0 -0
  162. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/skip-files.md +0 -0
  163. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/howto/write-a-plugin.md +0 -0
  164. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/index.md +0 -0
  165. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/package.json +0 -0
  166. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/plugins.md +0 -0
  167. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/pnpm-lock.yaml +0 -0
  168. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/pnpm-workspace.yaml +0 -0
  169. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/reference/columns.md +0 -0
  170. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/reference/config.md +0 -0
  171. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/reference/hooks.md +0 -0
  172. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/docs/reference/http-api.md +0 -0
  173. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1334-listing-exemptions.json +0 -0
  174. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
  175. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
  176. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
  177. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
  178. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
  179. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/bot-1415-server-speed.json +0 -0
  180. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
  181. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
  182. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
  183. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
  184. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
  185. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
  186. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
  187. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
  188. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
  189. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
  190. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
  191. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
  192. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
  193. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
  194. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
  195. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
  196. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
  197. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
  198. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
  199. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
  200. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
  201. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
  202. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
  203. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
  204. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
  205. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
  206. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
  207. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
  208. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
  209. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
  210. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
  211. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
  212. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
  213. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
  214. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
  215. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
  216. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
  217. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
  218. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
  219. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
  220. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
  221. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
  222. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
  223. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
  224. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
  225. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
  226. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-config-braces.json +0 -0
  227. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-config-directory.json +0 -0
  228. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-config-dotnames.json +0 -0
  229. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-config-gitignore.json +0 -0
  230. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-config-links.json +0 -0
  231. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
  232. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
  233. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
  234. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
  235. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
  236. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
  237. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
  238. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
  239. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
  240. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
  241. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
  242. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
  243. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
  244. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
  245. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
  246. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
  247. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
  248. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
  249. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
  250. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
  251. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
  252. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
  253. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
  254. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
  255. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
  256. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
  257. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
  258. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
  259. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
  260. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
  261. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
  262. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
  263. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
  264. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
  265. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
  266. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
  267. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
  268. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
  269. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
  270. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
  271. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
  272. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
  273. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
  274. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  275. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  276. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  277. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
  278. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
  279. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
  280. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  281. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
  282. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
  283. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
  284. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
  285. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
  286. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
  287. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
  288. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
  289. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
  290. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
  291. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
  292. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
  293. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
  294. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
  295. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
  296. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
  297. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-braces.md +0 -0
  298. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-directory.md +0 -0
  299. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-dotnames.md +0 -0
  300. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-gitignore.md +0 -0
  301. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
  302. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-config-links.md +0 -0
  303. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
  304. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
  305. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
  306. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
  307. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/migrations.d/README.md +0 -0
  308. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/src/lib.rs +0 -0
  309. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/testing-conventions.toml +0 -0
  310. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/__init__.py +0 -0
  311. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/conftest.py +0 -0
  312. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/e2e/__init__.py +0 -0
  313. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
  314. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
  315. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/e2e/speed_of_light.py +0 -0
  316. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/integration/__init__.py +0 -0
  317. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/integration/binding/__init__.py +0 -0
  318. {dirsql-0.4.94 → dirsql-0.4.95}/packages/python/tests/integration/hermetic/__init__.py +0 -0
  319. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/CHANGELOG.md +0 -0
  320. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/MIGRATIONS.md +0 -0
  321. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/README.md +0 -0
  322. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/benches/db_bench.rs +0 -0
  323. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/benches/differ_bench.rs +0 -0
  324. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/benches/matcher_bench.rs +0 -0
  325. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/benches/scanner_bench.rs +0 -0
  326. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/context/.gitattributes +0 -0
  327. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/context/recipes.md +0 -0
  328. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/explanation.md +0 -0
  329. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/getting-started.md +0 -0
  330. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/agent-skill.md +0 -0
  331. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/columns-from-paths.md +0 -0
  332. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/define-tables.md +0 -0
  333. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/embed.md +0 -0
  334. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/extract-from-contents.md +0 -0
  335. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/load-extension.md +0 -0
  336. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
  337. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/persist.md +0 -0
  338. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/query-json.md +0 -0
  339. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/react-to-changes.md +0 -0
  340. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/search-by-meaning.md +0 -0
  341. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/search-indexes.md +0 -0
  342. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/skip-files.md +0 -0
  343. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/howto/write-a-plugin.md +0 -0
  344. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/index.md +0 -0
  345. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/plugins.md +0 -0
  346. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/reference/columns.md +0 -0
  347. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/reference/config.md +0 -0
  348. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/reference/hooks.md +0 -0
  349. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/docs/reference/http-api.md +0 -0
  350. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/bin/dirsql.rs +0 -0
  351. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/brace.rs +0 -0
  352. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/context.rs +0 -0
  353. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/execute.rs +0 -0
  354. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/init.rs +0 -0
  355. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/mod.rs +0 -0
  356. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/repl.rs +0 -0
  357. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/router.rs +0 -0
  358. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/run.rs +0 -0
  359. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/serialize.rs +0 -0
  360. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/server.rs +0 -0
  361. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/cli/table.rs +0 -0
  362. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/command.rs +0 -0
  363. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/config.rs +0 -0
  364. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/default_config.toml +0 -0
  365. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/differ.rs +0 -0
  366. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/extension_resolution.rs +0 -0
  367. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/functions.rs +0 -0
  368. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/infer.rs +0 -0
  369. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/launcher.rs +0 -0
  370. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/lib.rs +0 -0
  371. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/listing.rs +0 -0
  372. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/on_file.rs +0 -0
  373. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/parsed_vtab.rs +0 -0
  374. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/persist.rs +0 -0
  375. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/posix_class.rs +0 -0
  376. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/progress.rs +0 -0
  377. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/row_event_flat.rs +0 -0
  378. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/sql_literal.rs +0 -0
  379. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/tree_walk.rs +0 -0
  380. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/vtab.rs +0 -0
  381. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/vtab_scaffold.rs +0 -0
  382. {dirsql-0.4.94 → dirsql-0.4.95}/packages/rust/src/watcher.rs +0 -0
  383. {dirsql-0.4.94 → dirsql-0.4.95}/pyproject.toml +0 -0
@@ -552,7 +552,7 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
552
552
 
553
553
  [[package]]
554
554
  name = "dirsql"
555
- version = "0.4.94"
555
+ version = "0.4.95"
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.94"
606
+ version = "0.4.95"
607
607
  dependencies = [
608
608
  "dirsql",
609
609
  "pyo3",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirsql
3
- Version: 0.4.94
3
+ Version: 0.4.95
4
4
  Requires-Dist: bin-shim>=0.1
5
5
  Summary: Ephemeral SQL index over a local directory
6
6
  Keywords: sql,filesystem,directory,sqlite,index
@@ -93,7 +93,7 @@ db = DirSQL(
93
93
 
94
94
  Path-table scans (`SELECT ... FROM './'`) respect `.gitignore` files by
95
95
  default. Pass `no_ignore=True` to restore the full walk; the built-in
96
- `node_modules`/`.git` defaults and any `ignore` patterns still apply:
96
+ `.git` default and any `ignore` patterns still apply:
97
97
 
98
98
  ```python
99
99
  db = DirSQL("./my-blog", no_ignore=True)
@@ -82,7 +82,7 @@ db = DirSQL(
82
82
 
83
83
  Path-table scans (`SELECT ... FROM './'`) respect `.gitignore` files by
84
84
  default. Pass `no_ignore=True` to restore the full walk; the built-in
85
- `node_modules`/`.git` defaults and any `ignore` patterns still apply:
85
+ `.git` default and any `ignore` patterns still apply:
86
86
 
87
87
  ```python
88
88
  db = DirSQL("./my-blog", no_ignore=True)
@@ -52,7 +52,6 @@ uvx dirsql "SELECT path FROM './**'" --format json
52
52
  ```
53
53
 
54
54
  Naming the directory outright also works: `'./build'` scans `build/` even when it is ignored.
55
- - **The files are under `node_modules`**, which is skipped unless the path names it: `'./node_modules/**'`.
56
55
  - **The files start with a dot, or sit under a directory that does.** Spell the dot: `'./.git/**'`, `'./**/.env'`.
57
56
 
58
57
  ### `table ./ may not be modified`
@@ -36,7 +36,6 @@ Every row has `path`, `basename`, `dir`, `ext` (no dot, `NULL` when absent), `si
36
36
  ### What a scan skips
37
37
 
38
38
  - **`.gitignore` is respected inside a git repo**, as git does; outside one (no enclosing `.git`) no `.gitignore` applies. Pass `--no-ignore` to scan gitignored files too, or name the ignored directory outright: `'./build'` scans `build/`.
39
- - **`node_modules` is skipped** unless the path names it: `'./node_modules/**'`.
40
39
  - **`'./**'` does not enter `.git`.** Naming it scans it: `'./.git/**'`.
41
40
  - **To match dotfiles, spell the dot:** `'./.github/**'`, `'./**/.env'`.
42
41
 
@@ -67,5 +67,6 @@ why indexes belong to only one of them, are in
67
67
  - Paths outside the root resolve too — `'/var/log/*.log'`, `'../notes'`,
68
68
  `'~/notes/*.md'` — reporting absolute paths
69
69
  ([path-tables reference](../reference/path-tables.md#paths-outside-the-index-root)).
70
- - `node_modules/` and `.git/` are skipped by default so a bare `'./**'` does
71
- not drown in machinery ([skip rules](../reference/path-tables.md#skip-rules)).
70
+ - `.git/` is skipped by default, and a git repo's `.gitignore` hides what it
71
+ lists, so a bare `'./**'` does not drown in machinery
72
+ ([skip rules](../reference/path-tables.md#skip-rules)).
@@ -249,7 +249,7 @@ Config flags are subcommand-local: pass them after `server`
249
249
  | `--port <n>` | `7117` | TCP port to bind. |
250
250
  | `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
251
251
  | `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches at `<root>/.dirsql/cache.db`; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
252
- | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in skips (`node_modules`/`.git`) and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
252
+ | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
253
253
  | `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
254
254
  | `--version` | | Print the version and exit. |
255
255
  | `--help` | | Print usage and exit. |
@@ -70,7 +70,7 @@ A test runs every row against dirsql as a path-table and, with the leading
70
70
  | --- | --- | --- |
71
71
  | `./*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `link.md`, `my file.md`, `top.md`, `{q}.md` | |
72
72
  | `./**/*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `linkdir/r.md`, `my file.md`, `real/r.md`, `top.md`, `{q}.md` | |
73
- | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
73
+ | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `node_modules/pkg/index.js`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
74
74
  | `./?.md` | `1.md`, `2.md`, `3.md`, `4.md`, `a.md`, `b.md`, `c.md` | |
75
75
  | `./[ab].md` | `a.md`, `b.md` | |
76
76
  | `./[!a].md` | `1.md`, `2.md`, `3.md`, `4.md`, `b.md`, `c.md` | |
@@ -96,7 +96,7 @@ A test runs every row against dirsql as a path-table and, with the leading
96
96
  | `./*/` | `docs/api.md`, `docs/guide.md`, `linkdir/r.md`, `real/r.md` | directory-name |
97
97
  | `./d*` | none | files-only |
98
98
  | `./*.log` | none | gitignore |
99
- | `./**/*.js` | none | node-modules |
99
+ | `./**/*.js` | `node_modules/pkg/index.js` | |
100
100
  | `./node_modules/*/index.js` | `node_modules/pkg/index.js` | |
101
101
  | `./docs/**/*.md` | `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md` | |
102
102
  | `./docs/*.md` | `docs/api.md`, `docs/guide.md` | |
@@ -111,7 +111,6 @@ A test runs every row against dirsql as a path-table and, with the leading
111
111
  | `gitignore` | Inside a git repo, `.gitignore` files hide matching files and directories. `--no-ignore` turns it off. | A query over a repo should not drown in build output. |
112
112
  | `directory-name` | A pattern's last component that names a directory lists the files directly inside it, like `ls docs`. A trailing `/` is `*` appended. | A table is rows of files, and `ls` is the shell habit. |
113
113
  | `files-only` | A pattern that matches a directory but no file returns nothing. | Every row is a file. |
114
- | `node-modules` | A `node_modules` directory is skipped unless the pattern spells its name. | A zero-config `./**` should not walk dependencies. |
115
114
  | `absolute` | `/`, `~/` and `../` patterns report absolute `path` values, with `..` folded out textually. | The scanned root is derived from the pattern, so there is no relative base. |
116
115
 
117
116
  `.git` needs no rule of its own: the dotfile rule hides it.
@@ -198,8 +198,8 @@ over a very large table. Its output *is* the table:
198
198
  ```
199
199
  dirsql_parsed: parser produced no rows for `posts/*.md`; cannot infer a schema
200
200
  ```
201
- - **The skip rules still apply.** A parsed scan honors the same `node_modules`
202
- /`.git`/`ignore` rules a stat scan does (see below).
201
+ - **The skip rules still apply.** A parsed scan honors the same `.git`
202
+ /`ignore` rules a stat scan does (see below).
203
203
  - **The parser runs on every start.** A parsed path-table is not kept in the
204
204
  [persistent cache](/howto/persist); declared tables are.
205
205
 
@@ -251,14 +251,9 @@ choice is stated as one trade in
251
251
  A path-table scan applies the same [`ignore`](/reference/config) patterns your
252
252
  declared tables use — matched against root-relative paths under the same
253
253
  [glob rule](/reference/config#glob-rule) as the path itself, `*` one level and
254
- `**` any depth — plus two built-in defaults so a zero-config
255
- `SELECT * FROM './**'` does not drown in machinery:
256
-
257
- - `**/node_modules/**`
258
- - `**/.git/**`
259
-
260
- Both apply at any depth, so a `node_modules` nested inside a subdirectory is
261
- skipped just like one at the top.
254
+ `**` any depth — plus one built-in default, `**/.git/**`, which applies at any depth.
255
+ `node_modules` is an ordinary directory: a `.gitignore` that lists it hides it,
256
+ as it hides any other.
262
257
 
263
258
  ### `.gitignore`
264
259
 
@@ -266,9 +261,7 @@ Path-table scans also respect `.gitignore` files by default, inside a git
266
261
  repo, the way git, fd and ripgrep do: a `.gitignore` applies below its own
267
262
  directory, deeper files override shallower ones, `!pattern` re-includes, and
268
263
  an ignored directory is pruned rather than walked. In a typical repo this
269
- excludes build output, virtualenvs, and caches with zero ceremony. The
270
- built-in defaults above remain as a floor for directories with no
271
- `.gitignore` at all.
264
+ excludes build output, virtualenvs, and caches with zero ceremony.
272
265
 
273
266
  A `.gitignore` is in force only when a directory holding `.git` encloses it.
274
267
  Outside a repo none applies, at the scan's start, above it or below it: a
@@ -280,7 +273,7 @@ applies, including those above the directory a scan starts in, so
280
273
  Pass [`--no-ignore`](./cli.md#flags) to restore the full walk — the
281
274
  determinism switch for scripted use, since results otherwise depend on
282
275
  `.gitignore` state. It disables only the `.gitignore` respect; the built-in
283
- defaults and configured `ignore` patterns still apply.
276
+ default and configured `ignore` patterns still apply.
284
277
 
285
278
  ### Naming a skipped directory
286
279
 
@@ -288,23 +281,13 @@ Skip rules are judged from the directory the scan starts in, so pointing at a
288
281
  skipped directory — built-in or gitignored — still scans it:
289
282
 
290
283
  ```sql
291
- SELECT path FROM './**'; -- no node_modules rows
292
- SELECT path FROM './node_modules/*/package.json'; -- scans it anyway
284
+ SELECT path FROM './.git/*'; -- scans .git anyway
293
285
  SELECT path FROM './dist'; -- scans dist/ even when gitignored
294
286
  ```
295
287
 
296
288
  The `.gitignore` files in force there, including those above it, still
297
289
  filter what lies beneath it.
298
290
 
299
- A `node_modules` component after a glob names it too, at any depth:
300
-
301
- ```sql
302
- SELECT path FROM './**/node_modules/*/package.json'; -- every node_modules
303
- SELECT path FROM './*/node_modules/**'; -- one level down
304
- ```
305
-
306
- Only the literal name counts; `'./**/*.js'` still skips every `node_modules`.
307
-
308
291
  ### Hidden files
309
292
 
310
293
  A path component starting with `.` is skipped unless the path spells it, the
@@ -123,7 +123,7 @@ shortcut was removed in #603 — use
123
123
  matched files are skipped entirely (scan and watch).
124
124
  - `no_ignore` / `noIgnore` — Scan files a `.gitignore` would hide.
125
125
  [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by
126
- default; the built-in `node_modules`/`.git` skips and any `ignore` patterns
126
+ default; the built-in `.git` skip and any `ignore` patterns
127
127
  still apply. The CLI's [`--no-ignore`](./cli.md#flags).
128
128
  - `config` — Path to a [`.dirsql.toml`](./config.md). Its `[[table]]`
129
129
  entries are appended after any programmatic `tables`; its `ignore`
@@ -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.94"
7
+ version = "0.4.95"
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
@@ -82,7 +82,7 @@ db = DirSQL(
82
82
 
83
83
  Path-table scans (`SELECT ... FROM './'`) respect `.gitignore` files by
84
84
  default. Pass `no_ignore=True` to restore the full walk; the built-in
85
- `node_modules`/`.git` defaults and any `ignore` patterns still apply:
85
+ `.git` default and any `ignore` patterns still apply:
86
86
 
87
87
  ```python
88
88
  db = DirSQL("./my-blog", no_ignore=True)
@@ -0,0 +1,3 @@
1
+ **Changed**
2
+
3
+ - **Globs walk `node_modules`, like bash.** A path-table or config glob such as `./**/*.js` now returns files under `node_modules`. A `.gitignore` that lists it still hides it.
@@ -52,7 +52,6 @@ uvx dirsql "SELECT path FROM './**'" --format json
52
52
  ```
53
53
 
54
54
  Naming the directory outright also works: `'./build'` scans `build/` even when it is ignored.
55
- - **The files are under `node_modules`**, which is skipped unless the path names it: `'./node_modules/**'`.
56
55
  - **The files start with a dot, or sit under a directory that does.** Spell the dot: `'./.git/**'`, `'./**/.env'`.
57
56
 
58
57
  ### `table ./ may not be modified`
@@ -36,7 +36,6 @@ Every row has `path`, `basename`, `dir`, `ext` (no dot, `NULL` when absent), `si
36
36
  ### What a scan skips
37
37
 
38
38
  - **`.gitignore` is respected inside a git repo**, as git does; outside one (no enclosing `.git`) no `.gitignore` applies. Pass `--no-ignore` to scan gitignored files too, or name the ignored directory outright: `'./build'` scans `build/`.
39
- - **`node_modules` is skipped** unless the path names it: `'./node_modules/**'`.
40
39
  - **`'./**'` does not enter `.git`.** Naming it scans it: `'./.git/**'`.
41
40
  - **To match dotfiles, spell the dot:** `'./.github/**'`, `'./**/.env'`.
42
41
 
@@ -67,5 +67,6 @@ why indexes belong to only one of them, are in
67
67
  - Paths outside the root resolve too — `'/var/log/*.log'`, `'../notes'`,
68
68
  `'~/notes/*.md'` — reporting absolute paths
69
69
  ([path-tables reference](../reference/path-tables.md#paths-outside-the-index-root)).
70
- - `node_modules/` and `.git/` are skipped by default so a bare `'./**'` does
71
- not drown in machinery ([skip rules](../reference/path-tables.md#skip-rules)).
70
+ - `.git/` is skipped by default, and a git repo's `.gitignore` hides what it
71
+ lists, so a bare `'./**'` does not drown in machinery
72
+ ([skip rules](../reference/path-tables.md#skip-rules)).
@@ -249,7 +249,7 @@ Config flags are subcommand-local: pass them after `server`
249
249
  | `--port <n>` | `7117` | TCP port to bind. |
250
250
  | `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
251
251
  | `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches at `<root>/.dirsql/cache.db`; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
252
- | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in skips (`node_modules`/`.git`) and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
252
+ | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
253
253
  | `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
254
254
  | `--version` | | Print the version and exit. |
255
255
  | `--help` | | Print usage and exit. |
@@ -70,7 +70,7 @@ A test runs every row against dirsql as a path-table and, with the leading
70
70
  | --- | --- | --- |
71
71
  | `./*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `link.md`, `my file.md`, `top.md`, `{q}.md` | |
72
72
  | `./**/*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `linkdir/r.md`, `my file.md`, `real/r.md`, `top.md`, `{q}.md` | |
73
- | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
73
+ | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `node_modules/pkg/index.js`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
74
74
  | `./?.md` | `1.md`, `2.md`, `3.md`, `4.md`, `a.md`, `b.md`, `c.md` | |
75
75
  | `./[ab].md` | `a.md`, `b.md` | |
76
76
  | `./[!a].md` | `1.md`, `2.md`, `3.md`, `4.md`, `b.md`, `c.md` | |
@@ -96,7 +96,7 @@ A test runs every row against dirsql as a path-table and, with the leading
96
96
  | `./*/` | `docs/api.md`, `docs/guide.md`, `linkdir/r.md`, `real/r.md` | directory-name |
97
97
  | `./d*` | none | files-only |
98
98
  | `./*.log` | none | gitignore |
99
- | `./**/*.js` | none | node-modules |
99
+ | `./**/*.js` | `node_modules/pkg/index.js` | |
100
100
  | `./node_modules/*/index.js` | `node_modules/pkg/index.js` | |
101
101
  | `./docs/**/*.md` | `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md` | |
102
102
  | `./docs/*.md` | `docs/api.md`, `docs/guide.md` | |
@@ -111,7 +111,6 @@ A test runs every row against dirsql as a path-table and, with the leading
111
111
  | `gitignore` | Inside a git repo, `.gitignore` files hide matching files and directories. `--no-ignore` turns it off. | A query over a repo should not drown in build output. |
112
112
  | `directory-name` | A pattern's last component that names a directory lists the files directly inside it, like `ls docs`. A trailing `/` is `*` appended. | A table is rows of files, and `ls` is the shell habit. |
113
113
  | `files-only` | A pattern that matches a directory but no file returns nothing. | Every row is a file. |
114
- | `node-modules` | A `node_modules` directory is skipped unless the pattern spells its name. | A zero-config `./**` should not walk dependencies. |
115
114
  | `absolute` | `/`, `~/` and `../` patterns report absolute `path` values, with `..` folded out textually. | The scanned root is derived from the pattern, so there is no relative base. |
116
115
 
117
116
  `.git` needs no rule of its own: the dotfile rule hides it.
@@ -198,8 +198,8 @@ over a very large table. Its output *is* the table:
198
198
  ```
199
199
  dirsql_parsed: parser produced no rows for `posts/*.md`; cannot infer a schema
200
200
  ```
201
- - **The skip rules still apply.** A parsed scan honors the same `node_modules`
202
- /`.git`/`ignore` rules a stat scan does (see below).
201
+ - **The skip rules still apply.** A parsed scan honors the same `.git`
202
+ /`ignore` rules a stat scan does (see below).
203
203
  - **The parser runs on every start.** A parsed path-table is not kept in the
204
204
  [persistent cache](/howto/persist); declared tables are.
205
205
 
@@ -251,14 +251,9 @@ choice is stated as one trade in
251
251
  A path-table scan applies the same [`ignore`](/reference/config) patterns your
252
252
  declared tables use — matched against root-relative paths under the same
253
253
  [glob rule](/reference/config#glob-rule) as the path itself, `*` one level and
254
- `**` any depth — plus two built-in defaults so a zero-config
255
- `SELECT * FROM './**'` does not drown in machinery:
256
-
257
- - `**/node_modules/**`
258
- - `**/.git/**`
259
-
260
- Both apply at any depth, so a `node_modules` nested inside a subdirectory is
261
- skipped just like one at the top.
254
+ `**` any depth — plus one built-in default, `**/.git/**`, which applies at any depth.
255
+ `node_modules` is an ordinary directory: a `.gitignore` that lists it hides it,
256
+ as it hides any other.
262
257
 
263
258
  ### `.gitignore`
264
259
 
@@ -266,9 +261,7 @@ Path-table scans also respect `.gitignore` files by default, inside a git
266
261
  repo, the way git, fd and ripgrep do: a `.gitignore` applies below its own
267
262
  directory, deeper files override shallower ones, `!pattern` re-includes, and
268
263
  an ignored directory is pruned rather than walked. In a typical repo this
269
- excludes build output, virtualenvs, and caches with zero ceremony. The
270
- built-in defaults above remain as a floor for directories with no
271
- `.gitignore` at all.
264
+ excludes build output, virtualenvs, and caches with zero ceremony.
272
265
 
273
266
  A `.gitignore` is in force only when a directory holding `.git` encloses it.
274
267
  Outside a repo none applies, at the scan's start, above it or below it: a
@@ -280,7 +273,7 @@ applies, including those above the directory a scan starts in, so
280
273
  Pass [`--no-ignore`](./cli.md#flags) to restore the full walk — the
281
274
  determinism switch for scripted use, since results otherwise depend on
282
275
  `.gitignore` state. It disables only the `.gitignore` respect; the built-in
283
- defaults and configured `ignore` patterns still apply.
276
+ default and configured `ignore` patterns still apply.
284
277
 
285
278
  ### Naming a skipped directory
286
279
 
@@ -288,23 +281,13 @@ Skip rules are judged from the directory the scan starts in, so pointing at a
288
281
  skipped directory — built-in or gitignored — still scans it:
289
282
 
290
283
  ```sql
291
- SELECT path FROM './**'; -- no node_modules rows
292
- SELECT path FROM './node_modules/*/package.json'; -- scans it anyway
284
+ SELECT path FROM './.git/*'; -- scans .git anyway
293
285
  SELECT path FROM './dist'; -- scans dist/ even when gitignored
294
286
  ```
295
287
 
296
288
  The `.gitignore` files in force there, including those above it, still
297
289
  filter what lies beneath it.
298
290
 
299
- A `node_modules` component after a glob names it too, at any depth:
300
-
301
- ```sql
302
- SELECT path FROM './**/node_modules/*/package.json'; -- every node_modules
303
- SELECT path FROM './*/node_modules/**'; -- one level down
304
- ```
305
-
306
- Only the literal name counts; `'./**/*.js'` still skips every `node_modules`.
307
-
308
291
  ### Hidden files
309
292
 
310
293
  A path component starting with `.` is skipped unless the path spells it, the
@@ -123,7 +123,7 @@ shortcut was removed in #603 — use
123
123
  matched files are skipped entirely (scan and watch).
124
124
  - `no_ignore` / `noIgnore` — Scan files a `.gitignore` would hide.
125
125
  [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by
126
- default; the built-in `node_modules`/`.git` skips and any `ignore` patterns
126
+ default; the built-in `.git` skip and any `ignore` patterns
127
127
  still apply. The CLI's [`--no-ignore`](./cli.md#flags).
128
128
  - `config` — Path to a [`.dirsql.toml`](./config.md). Its `[[table]]`
129
129
  entries are appended after any programmatic `tables`; its `ignore`
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/stat_speed_test.py -x -q",
3
+ "ran_at": 1791385891,
4
+ "exit_code": 0,
5
+ "commit": "7647977af354f51e12a919585b0ad765e234c524",
6
+ "branch": "bot/1414-stat-speed"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/glob_speed_node_modules_test.py tests/e2e/glob_speed_recursive_test.py -x -q",
3
+ "ran_at": 1791391105,
4
+ "exit_code": 0,
5
+ "commit": "42554b1e5556bbc63fde8573be5f68bdf7cb81d4",
6
+ "branch": "bot/1418-node-modules"
7
+ }
@@ -0,0 +1,23 @@
1
+ ### Globs walk node_modules
2
+
3
+ #### Summary
4
+
5
+ Globs no longer skip `node_modules`; nothing else changes.
6
+
7
+ #### Required changes
8
+
9
+ _None._
10
+
11
+ #### Deprecations removed
12
+
13
+ _None._
14
+
15
+ #### Behavior changes without code changes
16
+
17
+ - **Globs walk `node_modules`, like bash.** A path-table or config glob such as `./**/*.js` now returns files under `node_modules`. A `.gitignore` that lists it still hides it.
18
+
19
+ #### Verification
20
+
21
+ ```bash
22
+ mkdir -p /tmp/nm/node_modules/p && touch /tmp/nm/node_modules/p/a.js && cd /tmp/nm && dirsql query "SELECT path FROM './**/*.js'" # node_modules/p/a.js
23
+ ```
@@ -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.94"
9
+ version = "0.4.95"
10
10
  edition.workspace = true
11
11
  # Literal `license` (not `license.workspace = true`) because
12
12
  # putitoutthere's preflight check reads `[package].license` directly
@@ -52,7 +52,6 @@ uvx dirsql "SELECT path FROM './**'" --format json
52
52
  ```
53
53
 
54
54
  Naming the directory outright also works: `'./build'` scans `build/` even when it is ignored.
55
- - **The files are under `node_modules`**, which is skipped unless the path names it: `'./node_modules/**'`.
56
55
  - **The files start with a dot, or sit under a directory that does.** Spell the dot: `'./.git/**'`, `'./**/.env'`.
57
56
 
58
57
  ### `table ./ may not be modified`
@@ -36,7 +36,6 @@ Every row has `path`, `basename`, `dir`, `ext` (no dot, `NULL` when absent), `si
36
36
  ### What a scan skips
37
37
 
38
38
  - **`.gitignore` is respected inside a git repo**, as git does; outside one (no enclosing `.git`) no `.gitignore` applies. Pass `--no-ignore` to scan gitignored files too, or name the ignored directory outright: `'./build'` scans `build/`.
39
- - **`node_modules` is skipped** unless the path names it: `'./node_modules/**'`.
40
39
  - **`'./**'` does not enter `.git`.** Naming it scans it: `'./.git/**'`.
41
40
  - **To match dotfiles, spell the dot:** `'./.github/**'`, `'./**/.env'`.
42
41
 
@@ -67,5 +67,6 @@ why indexes belong to only one of them, are in
67
67
  - Paths outside the root resolve too — `'/var/log/*.log'`, `'../notes'`,
68
68
  `'~/notes/*.md'` — reporting absolute paths
69
69
  ([path-tables reference](../reference/path-tables.md#paths-outside-the-index-root)).
70
- - `node_modules/` and `.git/` are skipped by default so a bare `'./**'` does
71
- not drown in machinery ([skip rules](../reference/path-tables.md#skip-rules)).
70
+ - `.git/` is skipped by default, and a git repo's `.gitignore` hides what it
71
+ lists, so a bare `'./**'` does not drown in machinery
72
+ ([skip rules](../reference/path-tables.md#skip-rules)).
@@ -249,7 +249,7 @@ Config flags are subcommand-local: pass them after `server`
249
249
  | `--port <n>` | `7117` | TCP port to bind. |
250
250
  | `--cors-origin <origin>` | off | Let browser pages on `<origin>` (an exact origin such as `http://localhost:3202`, or `*` for any) call `/query` and open `/events`. See [Cross-origin requests](#cross-origin-requests). |
251
251
  | `--persist [<path>]` | off | Keep the SQLite index on disk between runs so a restart only re-parses files that actually changed. Bare `--persist` caches at `<root>/.dirsql/cache.db`; `--persist <path>` caches at `<path>`. Off by default (the index is ephemeral). Also available on [`dirsql query`](#dirsql-query). See [Keep the index across restarts](../howto/persist.md). |
252
- | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in skips (`node_modules`/`.git`) and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
252
+ | `--no-ignore` | off | Scan files a `.gitignore` would hide. [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by default; this flag restores the full walk. The built-in `.git` skip and configured `ignore` patterns still apply. Also available on [`dirsql query`](#dirsql-query). |
253
253
  | `--extension <path>` | none | Load a SQLite extension by literal path, overriding the config's `[[dirsql.extension]]` entries. Repeatable. Format: `<path>` or `<path>::<entrypoint>`. Internal plumbing for the pip/npm launchers, which resolve package-name extensions and pass the resolved paths here — not intended for direct use. When any `--extension` is present, the config file's own extension entries are not loaded. |
254
254
  | `--version` | | Print the version and exit. |
255
255
  | `--help` | | Print usage and exit. |
@@ -70,7 +70,7 @@ A test runs every row against dirsql as a path-table and, with the leading
70
70
  | --- | --- | --- |
71
71
  | `./*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `link.md`, `my file.md`, `top.md`, `{q}.md` | |
72
72
  | `./**/*.md` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `linkdir/r.md`, `my file.md`, `real/r.md`, `top.md`, `{q}.md` | |
73
- | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
73
+ | `./**` | `1.md`, `2.md`, `3.md`, `4.md`, `[a].md`, `[z.md`, `a.md`, `b.md`, `c.md`, `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md`, `link.md`, `my file.md`, `node_modules/pkg/index.js`, `real/r.md`, `top.md`, `x.txt`, `{q}.md` | |
74
74
  | `./?.md` | `1.md`, `2.md`, `3.md`, `4.md`, `a.md`, `b.md`, `c.md` | |
75
75
  | `./[ab].md` | `a.md`, `b.md` | |
76
76
  | `./[!a].md` | `1.md`, `2.md`, `3.md`, `4.md`, `b.md`, `c.md` | |
@@ -96,7 +96,7 @@ A test runs every row against dirsql as a path-table and, with the leading
96
96
  | `./*/` | `docs/api.md`, `docs/guide.md`, `linkdir/r.md`, `real/r.md` | directory-name |
97
97
  | `./d*` | none | files-only |
98
98
  | `./*.log` | none | gitignore |
99
- | `./**/*.js` | none | node-modules |
99
+ | `./**/*.js` | `node_modules/pkg/index.js` | |
100
100
  | `./node_modules/*/index.js` | `node_modules/pkg/index.js` | |
101
101
  | `./docs/**/*.md` | `docs/api.md`, `docs/guide.md`, `docs/nested/deep.md` | |
102
102
  | `./docs/*.md` | `docs/api.md`, `docs/guide.md` | |
@@ -111,7 +111,6 @@ A test runs every row against dirsql as a path-table and, with the leading
111
111
  | `gitignore` | Inside a git repo, `.gitignore` files hide matching files and directories. `--no-ignore` turns it off. | A query over a repo should not drown in build output. |
112
112
  | `directory-name` | A pattern's last component that names a directory lists the files directly inside it, like `ls docs`. A trailing `/` is `*` appended. | A table is rows of files, and `ls` is the shell habit. |
113
113
  | `files-only` | A pattern that matches a directory but no file returns nothing. | Every row is a file. |
114
- | `node-modules` | A `node_modules` directory is skipped unless the pattern spells its name. | A zero-config `./**` should not walk dependencies. |
115
114
  | `absolute` | `/`, `~/` and `../` patterns report absolute `path` values, with `..` folded out textually. | The scanned root is derived from the pattern, so there is no relative base. |
116
115
 
117
116
  `.git` needs no rule of its own: the dotfile rule hides it.
@@ -198,8 +198,8 @@ over a very large table. Its output *is* the table:
198
198
  ```
199
199
  dirsql_parsed: parser produced no rows for `posts/*.md`; cannot infer a schema
200
200
  ```
201
- - **The skip rules still apply.** A parsed scan honors the same `node_modules`
202
- /`.git`/`ignore` rules a stat scan does (see below).
201
+ - **The skip rules still apply.** A parsed scan honors the same `.git`
202
+ /`ignore` rules a stat scan does (see below).
203
203
  - **The parser runs on every start.** A parsed path-table is not kept in the
204
204
  [persistent cache](/howto/persist); declared tables are.
205
205
 
@@ -251,14 +251,9 @@ choice is stated as one trade in
251
251
  A path-table scan applies the same [`ignore`](/reference/config) patterns your
252
252
  declared tables use — matched against root-relative paths under the same
253
253
  [glob rule](/reference/config#glob-rule) as the path itself, `*` one level and
254
- `**` any depth — plus two built-in defaults so a zero-config
255
- `SELECT * FROM './**'` does not drown in machinery:
256
-
257
- - `**/node_modules/**`
258
- - `**/.git/**`
259
-
260
- Both apply at any depth, so a `node_modules` nested inside a subdirectory is
261
- skipped just like one at the top.
254
+ `**` any depth — plus one built-in default, `**/.git/**`, which applies at any depth.
255
+ `node_modules` is an ordinary directory: a `.gitignore` that lists it hides it,
256
+ as it hides any other.
262
257
 
263
258
  ### `.gitignore`
264
259
 
@@ -266,9 +261,7 @@ Path-table scans also respect `.gitignore` files by default, inside a git
266
261
  repo, the way git, fd and ripgrep do: a `.gitignore` applies below its own
267
262
  directory, deeper files override shallower ones, `!pattern` re-includes, and
268
263
  an ignored directory is pruned rather than walked. In a typical repo this
269
- excludes build output, virtualenvs, and caches with zero ceremony. The
270
- built-in defaults above remain as a floor for directories with no
271
- `.gitignore` at all.
264
+ excludes build output, virtualenvs, and caches with zero ceremony.
272
265
 
273
266
  A `.gitignore` is in force only when a directory holding `.git` encloses it.
274
267
  Outside a repo none applies, at the scan's start, above it or below it: a
@@ -280,7 +273,7 @@ applies, including those above the directory a scan starts in, so
280
273
  Pass [`--no-ignore`](./cli.md#flags) to restore the full walk — the
281
274
  determinism switch for scripted use, since results otherwise depend on
282
275
  `.gitignore` state. It disables only the `.gitignore` respect; the built-in
283
- defaults and configured `ignore` patterns still apply.
276
+ default and configured `ignore` patterns still apply.
284
277
 
285
278
  ### Naming a skipped directory
286
279
 
@@ -288,23 +281,13 @@ Skip rules are judged from the directory the scan starts in, so pointing at a
288
281
  skipped directory — built-in or gitignored — still scans it:
289
282
 
290
283
  ```sql
291
- SELECT path FROM './**'; -- no node_modules rows
292
- SELECT path FROM './node_modules/*/package.json'; -- scans it anyway
284
+ SELECT path FROM './.git/*'; -- scans .git anyway
293
285
  SELECT path FROM './dist'; -- scans dist/ even when gitignored
294
286
  ```
295
287
 
296
288
  The `.gitignore` files in force there, including those above it, still
297
289
  filter what lies beneath it.
298
290
 
299
- A `node_modules` component after a glob names it too, at any depth:
300
-
301
- ```sql
302
- SELECT path FROM './**/node_modules/*/package.json'; -- every node_modules
303
- SELECT path FROM './*/node_modules/**'; -- one level down
304
- ```
305
-
306
- Only the literal name counts; `'./**/*.js'` still skips every `node_modules`.
307
-
308
291
  ### Hidden files
309
292
 
310
293
  A path component starting with `.` is skipped unless the path spells it, the
@@ -123,7 +123,7 @@ shortcut was removed in #603 — use
123
123
  matched files are skipped entirely (scan and watch).
124
124
  - `no_ignore` / `noIgnore` — Scan files a `.gitignore` would hide.
125
125
  [Path-tables](./path-tables.md#skip-rules) respect `.gitignore` files by
126
- default; the built-in `node_modules`/`.git` skips and any `ignore` patterns
126
+ default; the built-in `.git` skip and any `ignore` patterns
127
127
  still apply. The CLI's [`--no-ignore`](./cli.md#flags).
128
128
  - `config` — Path to a [`.dirsql.toml`](./config.md). Its `[[table]]`
129
129
  entries are appended after any programmatic `tables`; its `ignore`
@@ -8,7 +8,7 @@ use thiserror::Error;
8
8
  use crate::functions::{self, CallReporter, ResolvedFunction, Worker};
9
9
  use crate::infer::JsonRow;
10
10
  use crate::parsed_vtab;
11
- use crate::path_table::{self, PathTable, Resolution};
11
+ use crate::path_table::{self, DEFAULT_IGNORES, PathTable, Resolution};
12
12
  use crate::scanner;
13
13
  use crate::sql_literal::{quote_identifier, quote_literal};
14
14
  use crate::vtab::{self, StatementScope};
@@ -315,8 +315,8 @@ pub struct Db {
315
315
  /// exactly where `files` used to exist implicitly. A user who declared
316
316
  /// tables and forgot `files` gets the plain SQLite error.
317
317
  hint_legacy_files_table: bool,
318
- /// Configured skip rules a path-table scan applies on top of the table's
319
- /// [`PathTable::default_ignores`].
318
+ /// Configured skip rules a path-table scan applies on top of
319
+ /// [`DEFAULT_IGNORES`].
320
320
  path_table_ignore: Vec<String>,
321
321
  /// Whether a path-table scan respects `.gitignore` files. On by default;
322
322
  /// the CLI's `--no-ignore` turns it off.
@@ -1210,8 +1210,8 @@ impl Db {
1210
1210
  .path_table_root
1211
1211
  .as_deref()
1212
1212
  .expect("a path-table resolves only under an index root");
1213
- let ignore: Vec<String> = table
1214
- .default_ignores()
1213
+ let ignore: Vec<String> = DEFAULT_IGNORES
1214
+ .into_iter()
1215
1215
  .map(str::to_string)
1216
1216
  .chain(self.path_table_ignore.iter().cloned())
1217
1217
  .collect();