dirsql 0.4.95__tar.gz → 0.4.97__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 (395) hide show
  1. {dirsql-0.4.95 → dirsql-0.4.97}/Cargo.lock +40 -2
  2. {dirsql-0.4.95 → dirsql-0.4.97}/PKG-INFO +1 -1
  3. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/_async.py +1 -1
  4. {dirsql-0.4.95/packages/python → dirsql-0.4.97}/docs/howto/persist.md +11 -16
  5. {dirsql-0.4.95/packages/rust → dirsql-0.4.97}/docs/howto/search-indexes.md +1 -1
  6. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/skip-files.md +0 -3
  7. {dirsql-0.4.95 → dirsql-0.4.97}/docs/reference/cli.md +1 -1
  8. {dirsql-0.4.95/packages/rust → dirsql-0.4.97}/docs/reference/config.md +0 -6
  9. {dirsql-0.4.95/packages/python → dirsql-0.4.97}/docs/reference/glob.md +13 -0
  10. {dirsql-0.4.95/packages/rust → dirsql-0.4.97}/docs/reference/path-tables.md +1 -2
  11. {dirsql-0.4.95 → dirsql-0.4.97}/docs/reference/sdk.md +3 -3
  12. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/Cargo.toml +1 -1
  13. dirsql-0.4.97/packages/python/changelog.d/2026-10-07-bracket-slash-literal.md +3 -0
  14. dirsql-0.4.97/packages/python/changelog.d/2026-10-07-dotdot-and-double-slashes.md +3 -0
  15. dirsql-0.4.97/packages/python/changelog.d/2026-10-07-fix-main-build.md +3 -0
  16. dirsql-0.4.97/packages/python/changelog.d/2026-10-07-persist-cache-outside-root.md +7 -0
  17. {dirsql-0.4.95/packages/rust → dirsql-0.4.97/packages/python}/docs/howto/persist.md +11 -16
  18. {dirsql-0.4.95 → dirsql-0.4.97/packages/python}/docs/howto/search-indexes.md +1 -1
  19. {dirsql-0.4.95/packages/rust → dirsql-0.4.97/packages/python}/docs/howto/skip-files.md +0 -3
  20. {dirsql-0.4.95/packages/rust → dirsql-0.4.97/packages/python}/docs/reference/cli.md +1 -1
  21. {dirsql-0.4.95 → dirsql-0.4.97/packages/python}/docs/reference/config.md +0 -6
  22. {dirsql-0.4.95/packages/rust → dirsql-0.4.97/packages/python}/docs/reference/glob.md +13 -0
  23. {dirsql-0.4.95 → dirsql-0.4.97/packages/python}/docs/reference/path-tables.md +1 -2
  24. {dirsql-0.4.95/packages/rust → dirsql-0.4.97/packages/python}/docs/reference/sdk.md +3 -3
  25. dirsql-0.4.97/packages/python/e2e-attestations/bot-1419-dotdot-slashes.json +7 -0
  26. dirsql-0.4.97/packages/python/e2e-attestations/bot-1420-bracket-slash.json +7 -0
  27. dirsql-0.4.97/packages/python/e2e-attestations/bot-1431-persist-cache-dir.json +7 -0
  28. dirsql-0.4.97/packages/python/e2e-attestations/bot-1440-fix-main-build.json +7 -0
  29. dirsql-0.4.97/packages/python/migrations.d/2026-10-07-bracket-slash-literal.md +23 -0
  30. dirsql-0.4.97/packages/python/migrations.d/2026-10-07-dotdot-and-double-slashes.md +23 -0
  31. dirsql-0.4.97/packages/python/migrations.d/2026-10-07-fix-main-build.md +23 -0
  32. dirsql-0.4.97/packages/python/migrations.d/2026-10-07-persist-cache-outside-root.md +35 -0
  33. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/Cargo.toml +2 -1
  34. {dirsql-0.4.95 → dirsql-0.4.97/packages/rust}/docs/howto/persist.md +11 -16
  35. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/howto/search-indexes.md +1 -1
  36. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/howto/skip-files.md +0 -3
  37. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/reference/cli.md +1 -1
  38. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/reference/config.md +0 -6
  39. {dirsql-0.4.95 → dirsql-0.4.97/packages/rust}/docs/reference/glob.md +13 -0
  40. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/reference/path-tables.md +1 -2
  41. {dirsql-0.4.95/packages/python → dirsql-0.4.97/packages/rust}/docs/reference/sdk.md +3 -3
  42. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/brace.rs +11 -2
  43. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/run.rs +1 -1
  44. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/lib.rs +1 -1
  45. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/path_table.rs +54 -6
  46. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/persist.rs +37 -4
  47. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/scanner.rs +116 -145
  48. {dirsql-0.4.95 → dirsql-0.4.97}/Cargo.toml +0 -0
  49. {dirsql-0.4.95 → dirsql-0.4.97}/README.md +0 -0
  50. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/__init__.py +0 -0
  51. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/_dirsql.pyi +0 -0
  52. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/__init__.py +0 -0
  53. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/discover_plugins/__init__.py +0 -0
  54. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/discover_plugins/discovered_fragments.py +0 -0
  55. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/discover_plugins/discovery_disabled.py +0 -0
  56. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/discover_plugins/fragment_path.py +0 -0
  57. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/discover_plugins/with_discovered_plugins.py +0 -0
  58. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/main.py +0 -0
  59. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/cli/resolve_config_extensions.py +0 -0
  60. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/plan_entry_path.py +0 -0
  61. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/py.typed +0 -0
  62. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/read_config.py +0 -0
  63. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/resolve_configs_extension_specs.py +0 -0
  64. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/resolve_extension.py +0 -0
  65. {dirsql-0.4.95 → dirsql-0.4.97}/dirsql/resolve_package.py +0 -0
  66. {dirsql-0.4.95 → dirsql-0.4.97}/docs/.claude/CLAUDE.md +0 -0
  67. {dirsql-0.4.95 → dirsql-0.4.97}/docs/.vitepress/config.ts +0 -0
  68. {dirsql-0.4.95 → dirsql-0.4.97}/docs/.vitepress/theme/index.ts +0 -0
  69. {dirsql-0.4.95 → dirsql-0.4.97}/docs/.vitepress/theme/lang.ts +0 -0
  70. {dirsql-0.4.95 → dirsql-0.4.97}/docs/AGENTS.md +0 -0
  71. {dirsql-0.4.95 → dirsql-0.4.97}/docs/context/.gitattributes +0 -0
  72. {dirsql-0.4.95 → dirsql-0.4.97}/docs/context/recipes.md +0 -0
  73. {dirsql-0.4.95 → dirsql-0.4.97}/docs/context/troubleshooting.md +0 -0
  74. {dirsql-0.4.95 → dirsql-0.4.97}/docs/context/usage.md +0 -0
  75. {dirsql-0.4.95 → dirsql-0.4.97}/docs/explanation.md +0 -0
  76. {dirsql-0.4.95 → dirsql-0.4.97}/docs/getting-started.md +0 -0
  77. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/agent-skill.md +0 -0
  78. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/columns-from-paths.md +0 -0
  79. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/define-tables.md +0 -0
  80. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/embed.md +0 -0
  81. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/extract-from-contents.md +0 -0
  82. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/load-extension.md +0 -0
  83. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/parse-files-into-columns.md +0 -0
  84. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/query-json.md +0 -0
  85. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/query-without-config.md +0 -0
  86. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/react-to-changes.md +0 -0
  87. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/search-by-meaning.md +0 -0
  88. {dirsql-0.4.95 → dirsql-0.4.97}/docs/howto/write-a-plugin.md +0 -0
  89. {dirsql-0.4.95 → dirsql-0.4.97}/docs/index.md +0 -0
  90. {dirsql-0.4.95 → dirsql-0.4.97}/docs/package.json +0 -0
  91. {dirsql-0.4.95 → dirsql-0.4.97}/docs/plugins.md +0 -0
  92. {dirsql-0.4.95 → dirsql-0.4.97}/docs/pnpm-lock.yaml +0 -0
  93. {dirsql-0.4.95 → dirsql-0.4.97}/docs/pnpm-workspace.yaml +0 -0
  94. {dirsql-0.4.95 → dirsql-0.4.97}/docs/reference/columns.md +0 -0
  95. {dirsql-0.4.95 → dirsql-0.4.97}/docs/reference/hooks.md +0 -0
  96. {dirsql-0.4.95 → dirsql-0.4.97}/docs/reference/http-api.md +0 -0
  97. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/CHANGELOG.md +0 -0
  98. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/MIGRATIONS.md +0 -0
  99. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/README.md +0 -0
  100. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  101. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-13-plugin-discovery.md +0 -0
  102. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  103. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-13-repeatable-config.md +0 -0
  104. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  105. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-20-drop-implicit-files-table.md +0 -0
  106. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-21-remove-glob-captures.md +0 -0
  107. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-24-hookless-table-config-error.md +0 -0
  108. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  109. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-07-29-restore-python-310.md +0 -0
  110. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-02-release-profile.md +0 -0
  111. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-02-scan-failures.md +0 -0
  112. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-03-discovery-ext-resolution.md +0 -0
  113. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-03-manylinux-dynamic-binary.md +0 -0
  114. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-03-python-no-ignore.md +0 -0
  115. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-04-cast-lints.md +0 -0
  116. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-04-cli-in-process.md +0 -0
  117. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-20-curtaincall-dev-dependency.md +0 -0
  118. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-08-20-declared-table-name.md +0 -0
  119. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-04-config-paths-from-argv-module.md +0 -0
  120. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-05-config-extension-loader-split.md +0 -0
  121. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-05-resolve-config-extensions-split.md +0 -0
  122. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-05-resolve-extension-split.md +0 -0
  123. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-09-launcher-config-path-scan.md +0 -0
  124. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-17-extension-resolution-via-core.md +0 -0
  125. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-18-export-scan-failure.md +0 -0
  126. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-18-flatten-row-event-in-core.md +0 -0
  127. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-18-programmatic-extension-plan.md +0 -0
  128. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
  129. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-09-24-query-rows-in-projection-order.md +0 -0
  130. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-02-readme-docs-host.md +0 -0
  131. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
  132. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-03-path-table-directory-one-level.md +0 -0
  133. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
  134. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-brace-groups-follow-bash.md +0 -0
  135. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-cli-context.md +0 -0
  136. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-gitignore-requires-repo.md +0 -0
  137. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-path-table-node-modules-named.md +0 -0
  138. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-path-table-symlinks.md +0 -0
  139. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-path-table-trailing-slash.md +0 -0
  140. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
  141. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-braces.md +0 -0
  142. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-directory.md +0 -0
  143. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-dotnames.md +0 -0
  144. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-gitignore.md +0 -0
  145. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
  146. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-config-links.md +0 -0
  147. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-one-glob-compiler.md +0 -0
  148. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-plugin-no-default-records.md +0 -0
  149. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-watch-broadcast.md +0 -0
  150. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-06-zero-match-config-table-warning.md +0 -0
  151. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/2026-10-07-glob-walks-node-modules.md +0 -0
  152. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/changelog.d/README.md +0 -0
  153. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/conftest.py +0 -0
  154. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/.claude/CLAUDE.md +0 -0
  155. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/.vitepress/config.ts +0 -0
  156. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/.vitepress/theme/index.ts +0 -0
  157. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
  158. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/AGENTS.md +0 -0
  159. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/context/.gitattributes +0 -0
  160. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/context/recipes.md +0 -0
  161. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/context/troubleshooting.md +0 -0
  162. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/context/usage.md +0 -0
  163. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/explanation.md +0 -0
  164. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/getting-started.md +0 -0
  165. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/agent-skill.md +0 -0
  166. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/columns-from-paths.md +0 -0
  167. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/define-tables.md +0 -0
  168. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/embed.md +0 -0
  169. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/extract-from-contents.md +0 -0
  170. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/load-extension.md +0 -0
  171. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/parse-files-into-columns.md +0 -0
  172. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/query-json.md +0 -0
  173. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/query-without-config.md +0 -0
  174. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/react-to-changes.md +0 -0
  175. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/search-by-meaning.md +0 -0
  176. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/howto/write-a-plugin.md +0 -0
  177. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/index.md +0 -0
  178. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/package.json +0 -0
  179. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/plugins.md +0 -0
  180. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/pnpm-lock.yaml +0 -0
  181. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/pnpm-workspace.yaml +0 -0
  182. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/reference/columns.md +0 -0
  183. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/reference/hooks.md +0 -0
  184. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/docs/reference/http-api.md +0 -0
  185. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1334-listing-exemptions.json +0 -0
  186. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1397-watch-broadcast.json +0 -0
  187. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1398-inotify-error.json +0 -0
  188. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1399-server-cors.json +0 -0
  189. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1401-watch-scope.json +0 -0
  190. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1407-child-place-depth.json +0 -0
  191. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1414-stat-speed.json +0 -0
  192. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1415-server-speed.json +0 -0
  193. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/bot-1418-node-modules.json +0 -0
  194. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/cc-keen-knuth-f11gyq.json +0 -0
  195. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1056-py-ofpf9.json +0 -0
  196. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1066-p1-resolve-extension.json +0 -0
  197. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1078-argv-config-paths-core.json +0 -0
  198. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1079-p2-resolve-config-extensions.json +0 -0
  199. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1080-share-vtab-scaffolding.json +0 -0
  200. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1081-indicatif-progress.json +0 -0
  201. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1096-watch-moved-dir.json +0 -0
  202. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1109-watch-moved-out.json +0 -0
  203. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1119-ext-plan.json +0 -0
  204. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1120-py-ext.json +0 -0
  205. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1122-ext-cleanup.json +0 -0
  206. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1130-codec-crates.json +0 -0
  207. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1131-flatten-row-event.json +0 -0
  208. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1139-sse-flatten.json +0 -0
  209. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1140-scan-failure-export.json +0 -0
  210. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1148-clippy-all-targets.json +0 -0
  211. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1164-sigint-fatal.json +0 -0
  212. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1170-projection-order.json +0 -0
  213. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1172-on-file-path.json +0 -0
  214. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1173-py-projection-order.json +0 -0
  215. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1184-win-rel-paths.json +0 -0
  216. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1185-win-abs-table-names.json +0 -0
  217. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1186-win-test-harness.json +0 -0
  218. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1196-join-index.json +0 -0
  219. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1199-glob-prefix.json +0 -0
  220. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1201-single-walk.json +0 -0
  221. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1204-embed-batch.json +0 -0
  222. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1207-win-argv-quote.json +0 -0
  223. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1208-win-nonverbatim-paths.json +0 -0
  224. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1215-on-file-batch.json +0 -0
  225. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1216-on-file-cleanup.json +0 -0
  226. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1223-config-glob-rule.json +0 -0
  227. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1223-dir-one-level.json +0 -0
  228. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1225-plugin-no-default.json +0 -0
  229. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1226-stale-docs.json +0 -0
  230. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1232-anchor-plumbing.json +0 -0
  231. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1232-config-anchor.json +0 -0
  232. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1232-multi-watch.json +0 -0
  233. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1232-zero-match.json +0 -0
  234. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1238-parallel-walk.json +0 -0
  235. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1241-content-prefetch.json +0 -0
  236. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1243-ingest-perf.json +0 -0
  237. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1249-dotfiles.json +0 -0
  238. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1256-symlinks.json +0 -0
  239. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1257-trailing-slash.json +0 -0
  240. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-config-braces.json +0 -0
  241. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-config-directory.json +0 -0
  242. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-config-dotnames.json +0 -0
  243. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-config-gitignore.json +0 -0
  244. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-config-links.json +0 -0
  245. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1258-one-pattern.json +0 -0
  246. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1262-brace-literal.json +0 -0
  247. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1264-context.json +0 -0
  248. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1267-posix-classes.json +0 -0
  249. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1268-unbalanced-brackets.json +0 -0
  250. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1269-utf8-chars.json +0 -0
  251. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1271-node-modules-named.json +0 -0
  252. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1272-ancestor-gitignore.json +0 -0
  253. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1273-walk-prune.json +0 -0
  254. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1285-ingest-fast.json +0 -0
  255. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1286-nested-repo.json +0 -0
  256. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1305-glob-speed.json +0 -0
  257. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1308-glob-speed.json +0 -0
  258. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1310-glob-speed.json +0 -0
  259. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1311-glob-speed.json +0 -0
  260. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1312-glob-speed.json +0 -0
  261. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1318-lazy-stat.json +0 -0
  262. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1320-walk-speed.json +0 -0
  263. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1322-walk-readdir.json +0 -0
  264. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1325-parallel-walk.json +0 -0
  265. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1326-stream-rows.json +0 -0
  266. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-python-dirsql-patch.json +0 -0
  267. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-python-extensions-patch.json +0 -0
  268. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-scanner-effects.json +0 -0
  269. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-scanner-gitignore.json +0 -0
  270. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-vtab-prefetch-flag.json +0 -0
  271. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1330-vtab-read.json +0 -0
  272. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-1351-dot-dirs.json +0 -0
  273. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-819-oneshot-timeout.json +0 -0
  274. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-827-unquote-doubled-quotes.json +0 -0
  275. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-epic-953-slice2-reedline.json +0 -0
  276. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-epic-953-slice3-format.json +0 -0
  277. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-epic-953-stacked-prs-x59wm3.json +0 -0
  278. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-github-issue-825-e4mhhp.json +0 -0
  279. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-issue-951-0eease.json +0 -0
  280. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-issue-962-0jjrfv.json +0 -0
  281. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-issue-986-red-test-e7sjrb.json +0 -0
  282. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-1034-cachesplit.json +0 -0
  283. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-1042-py12.json +0 -0
  284. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-956-xzen74.json +0 -0
  285. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6-worker-calls.json +0 -0
  286. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-957-lrm0z6.json +0 -0
  287. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/e2e-attestations/claude-tackle-975-n8mc2h.json +0 -0
  288. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-13-drop-cwd-config-auto-detect.md +0 -0
  289. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-13-rename-extract-to-on-file.md +0 -0
  290. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-13-sdk-default-baked-in-config.md +0 -0
  291. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-20-drop-implicit-files-table.md +0 -0
  292. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-21-remove-glob-captures.md +0 -0
  293. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-24-hookless-table-config-error.md +0 -0
  294. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-24-remove-stat-fact-injection.md +0 -0
  295. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-07-29-restore-python-310.md +0 -0
  296. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-08-04-cli-in-process.md +0 -0
  297. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-08-20-declared-table-name.md +0 -0
  298. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-09-20-sigint-ends-a-run-in-progress.md +0 -0
  299. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-09-24-query-rows-in-projection-order.md +0 -0
  300. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-02-readme-docs-host.md +0 -0
  301. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-03-one-glob-rule-for-config-globs.md +0 -0
  302. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-03-path-table-directory-one-level.md +0 -0
  303. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-04-path-table-dotfiles-hidden.md +0 -0
  304. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-brace-groups-follow-bash.md +0 -0
  305. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-cli-context.md +0 -0
  306. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-gitignore-requires-repo.md +0 -0
  307. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-path-table-node-modules-named.md +0 -0
  308. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-path-table-symlinks.md +0 -0
  309. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-path-table-trailing-slash.md +0 -0
  310. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-05-unbalanced-brackets-literal.md +0 -0
  311. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-braces.md +0 -0
  312. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-directory.md +0 -0
  313. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-dotnames.md +0 -0
  314. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-gitignore.md +0 -0
  315. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-globs-anchor-at-the-config.md +0 -0
  316. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-config-links.md +0 -0
  317. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-one-glob-compiler.md +0 -0
  318. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-plugin-no-default-records.md +0 -0
  319. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-watch-broadcast.md +0 -0
  320. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-06-zero-match-config-table-warning.md +0 -0
  321. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/2026-10-07-glob-walks-node-modules.md +0 -0
  322. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/migrations.d/README.md +0 -0
  323. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/src/lib.rs +0 -0
  324. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/testing-conventions.toml +0 -0
  325. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/__init__.py +0 -0
  326. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/conftest.py +0 -0
  327. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/e2e/__init__.py +0 -0
  328. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/__init__.py +0 -0
  329. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/e2e/fixtures/dirsql_plugin_fixture/dirsql.toml +0 -0
  330. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/e2e/speed_of_light.py +0 -0
  331. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/integration/__init__.py +0 -0
  332. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/integration/binding/__init__.py +0 -0
  333. {dirsql-0.4.95 → dirsql-0.4.97}/packages/python/tests/integration/hermetic/__init__.py +0 -0
  334. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/CHANGELOG.md +0 -0
  335. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/MIGRATIONS.md +0 -0
  336. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/README.md +0 -0
  337. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/benches/db_bench.rs +0 -0
  338. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/benches/differ_bench.rs +0 -0
  339. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/benches/matcher_bench.rs +0 -0
  340. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/benches/scanner_bench.rs +0 -0
  341. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/context/.gitattributes +0 -0
  342. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/context/recipes.md +0 -0
  343. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/context/troubleshooting.md +0 -0
  344. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/context/usage.md +0 -0
  345. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/explanation.md +0 -0
  346. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/getting-started.md +0 -0
  347. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/agent-skill.md +0 -0
  348. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/columns-from-paths.md +0 -0
  349. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/define-tables.md +0 -0
  350. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/embed.md +0 -0
  351. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/extract-from-contents.md +0 -0
  352. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/load-extension.md +0 -0
  353. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/parse-files-into-columns.md +0 -0
  354. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/query-json.md +0 -0
  355. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/query-without-config.md +0 -0
  356. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/react-to-changes.md +0 -0
  357. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/search-by-meaning.md +0 -0
  358. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/howto/write-a-plugin.md +0 -0
  359. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/index.md +0 -0
  360. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/plugins.md +0 -0
  361. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/reference/columns.md +0 -0
  362. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/reference/hooks.md +0 -0
  363. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/docs/reference/http-api.md +0 -0
  364. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/bin/dirsql.rs +0 -0
  365. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/context.rs +0 -0
  366. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/execute.rs +0 -0
  367. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/init.rs +0 -0
  368. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/mod.rs +0 -0
  369. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/repl.rs +0 -0
  370. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/router.rs +0 -0
  371. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/serialize.rs +0 -0
  372. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/server.rs +0 -0
  373. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/cli/table.rs +0 -0
  374. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/command.rs +0 -0
  375. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/config.rs +0 -0
  376. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/db.rs +0 -0
  377. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/default_config.toml +0 -0
  378. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/differ.rs +0 -0
  379. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/extension_resolution.rs +0 -0
  380. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/functions.rs +0 -0
  381. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/infer.rs +0 -0
  382. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/launcher.rs +0 -0
  383. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/listing.rs +0 -0
  384. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/matcher.rs +0 -0
  385. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/on_file.rs +0 -0
  386. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/parsed_vtab.rs +0 -0
  387. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/posix_class.rs +0 -0
  388. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/progress.rs +0 -0
  389. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/row_event_flat.rs +0 -0
  390. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/sql_literal.rs +0 -0
  391. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/tree_walk.rs +0 -0
  392. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/vtab.rs +0 -0
  393. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/vtab_scaffold.rs +0 -0
  394. {dirsql-0.4.95 → dirsql-0.4.97}/packages/rust/src/watcher.rs +0 -0
  395. {dirsql-0.4.95 → dirsql-0.4.97}/pyproject.toml +0 -0
@@ -550,9 +550,30 @@ version = "0.4.0"
550
550
  source = "registry+https://github.com/rust-lang/crates.io-index"
551
551
  checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
552
552
 
553
+ [[package]]
554
+ name = "dirs"
555
+ version = "6.0.0"
556
+ source = "registry+https://github.com/rust-lang/crates.io-index"
557
+ checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
558
+ dependencies = [
559
+ "dirs-sys",
560
+ ]
561
+
562
+ [[package]]
563
+ name = "dirs-sys"
564
+ version = "0.5.0"
565
+ source = "registry+https://github.com/rust-lang/crates.io-index"
566
+ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
567
+ dependencies = [
568
+ "libc",
569
+ "option-ext",
570
+ "redox_users",
571
+ "windows-sys 0.61.2",
572
+ ]
573
+
553
574
  [[package]]
554
575
  name = "dirsql"
555
- version = "0.4.95"
576
+ version = "0.4.97"
556
577
  dependencies = [
557
578
  "assert_cmd",
558
579
  "axum",
@@ -561,6 +582,7 @@ dependencies = [
561
582
  "clap",
562
583
  "console",
563
584
  "criterion",
585
+ "dirs",
564
586
  "eventsource-client",
565
587
  "futures",
566
588
  "futures-channel",
@@ -603,7 +625,7 @@ dependencies = [
603
625
 
604
626
  [[package]]
605
627
  name = "dirsql-py-ext"
606
- version = "0.4.95"
628
+ version = "0.4.97"
607
629
  dependencies = [
608
630
  "dirsql",
609
631
  "pyo3",
@@ -1710,6 +1732,12 @@ version = "0.1.6"
1710
1732
  source = "registry+https://github.com/rust-lang/crates.io-index"
1711
1733
  checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
1712
1734
 
1735
+ [[package]]
1736
+ name = "option-ext"
1737
+ version = "0.2.0"
1738
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1739
+ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
1740
+
1713
1741
  [[package]]
1714
1742
  name = "parking_lot"
1715
1743
  version = "0.12.5"
@@ -2119,6 +2147,16 @@ dependencies = [
2119
2147
  "bitflags 2.11.1",
2120
2148
  ]
2121
2149
 
2150
+ [[package]]
2151
+ name = "redox_users"
2152
+ version = "0.5.3"
2153
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2154
+ checksum = "60dc65c0ff1a7ae1294b0c67b9f14baf70b644404010370171787bfac1038fc0"
2155
+ dependencies = [
2156
+ "libredox",
2157
+ "thiserror",
2158
+ ]
2159
+
2122
2160
  [[package]]
2123
2161
  name = "reedline"
2124
2162
  version = "0.49.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dirsql
3
- Version: 0.4.95
3
+ Version: 0.4.97
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
@@ -79,7 +79,7 @@ class DirSQL:
79
79
  apply.
80
80
 
81
81
  Pass ``persist=True`` to keep an on-disk SQLite cache (default location:
82
- ``<root>/.dirsql/cache.db``). Override the location with ``persist_path``.
82
+ the platform cache directory, outside ``<root>``). Override the location with ``persist_path``.
83
83
 
84
84
  Pass ``extensions`` -- a list of ``{"path": ..., "entrypoint": ...}`` dicts
85
85
  (``entrypoint`` optional) -- to load SQLite extensions onto the connection
@@ -17,9 +17,11 @@ why it is a CLI flag, not a config key.
17
17
  dirsql --persist
18
18
  ```
19
19
 
20
- That's the whole change. On the next run the cache is written to
21
- `.dirsql/cache.db` under the root; runs after that start from it. To put
22
- the cache elsewhere (a CI cache dir, a tmpfs), pass a path:
20
+ That's the whole change. On the next run the cache is written to your platform cache directory
21
+ (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux, `~/Library/Caches`
22
+ on macOS, `%LOCALAPPDATA%` on Windows), outside the scanned tree; runs after
23
+ that start from it. To put the cache elsewhere (a CI cache dir, a tmpfs), pass
24
+ a path:
23
25
 
24
26
  ```bash
25
27
  dirsql --persist /var/cache/dirsql.db
@@ -30,20 +32,13 @@ put a bare `--persist` after the SQL there so it does not consume the query
30
32
  argument. Embedding `dirsql`? The SDK constructors expose the same switch —
31
33
  see [_Embedding `dirsql`?_](#embedding-dirsql) below.
32
34
 
33
- ## 2. Keep the cache out of git
35
+ ## 2. Nothing to ignore in git
34
36
 
35
- The cache is derived data — reproducible from the tree and frequently
36
- large. Add it to `.gitignore`:
37
-
38
- ```
39
- .dirsql/
40
- ```
41
-
42
- The top-level `.dirsql/` directory is reserved for `dirsql`'s metadata and
43
- is never scanned as data, so the cache can't index itself
44
- ([config reference](../reference/config.md#dirsql-keys)). While running,
45
- `dirsql` also creates transient `cache.db-wal` and `cache.db-shm` sidecar
46
- files next to the cache; the `.dirsql/` ignore already covers all three.
37
+ The default cache lives outside the scanned tree, so there is nothing to add
38
+ to `.gitignore` and the cache can't index itself. With `--persist <path>`, keep
39
+ that path out of the scanned tree too, or ignore it. While running, `dirsql`
40
+ also creates transient `cache.db-wal` and `cache.db-shm` sidecar files next to
41
+ the cache.
47
42
 
48
43
  ## What survives, what rebuilds
49
44
 
@@ -224,7 +224,7 @@ Rows are embedded once, at ingest, and cached on disk by content and model
224
224
  ::: warning Editing `ddl` wedges a persisted `vec0` cache
225
225
  Under `--persist`, editing any part of a `ddl` batch whose cache holds a
226
226
  `vec0` table currently fails with `SQLite error: no such module: vec0`, and
227
- keeps failing until the cache is deleted (`rm -rf <root>/.dirsql`). Tracked in
227
+ keeps failing until the cache is deleted (delete it, or pass a fresh `--persist <path>`). Tracked in
228
228
  [#1008](https://github.com/thekevinscott/dirsql/issues/1008); FTS5 is
229
229
  unaffected.
230
230
  :::
@@ -51,9 +51,6 @@ dirsql query "SELECT basename FROM notes ORDER BY basename" -c ./.dirsql.toml
51
51
  list, though its path-tables still apply the built-in
52
52
  [skip rules](../reference/path-tables.md#skip-rules) and respect
53
53
  `.gitignore`.
54
- - The top-level `.dirsql/` directory is always excluded, ignore list or
55
- not — it is reserved for `dirsql`'s own metadata
56
- ([config reference](../reference/config.md#dirsql-keys)).
57
54
  - Narrow table globs are the other half of the story: a file matching no
58
55
  table's glob contributes no rows either. Use `ignore` for things that
59
56
  should never be looked at; use precise globs to shape what each table
@@ -248,7 +248,7 @@ Config flags are subcommand-local: pass them after `server`
248
248
  | `--host <addr>` | `localhost` | Bind address. |
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
- | `--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). |
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 under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux), outside the root; `--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
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. |
@@ -34,12 +34,6 @@ A config that still declares the removed `hook-timeout` key fails to load with
34
34
  an error naming that replacement. [`[[dirsql.function]]`](#dirsql-function)
35
35
  worker calls have their own per-call `timeout` key (default 30 seconds).
36
36
 
37
- The top-level `.dirsql/` directory under the root is always excluded from
38
- scanning, whether or not it appears in `ignore` — it is reserved for
39
- `dirsql`'s own metadata (the persist cache lives there by default). Only the
40
- top-level `.dirsql/` is reserved; a nested `sub/.dirsql/` is an ordinary
41
- directory.
42
-
43
37
  ```toml
44
38
  [dirsql]
45
39
  ignore = ["node_modules/**", ".git/**"]
@@ -76,6 +76,9 @@ A test runs every row against dirsql as a path-table and, with the leading
76
76
  | `./[!a].md` | `1.md`, `2.md`, `3.md`, `4.md`, `b.md`, `c.md` | |
77
77
  | `./\[a\].md` | `[a].md` | |
78
78
  | `./[z.md` | `[z.md` | |
79
+ | `./[d/x]ocs/api.md` | none | |
80
+ | `./docs[/]api.md` | none | |
81
+ | `./[!/]*/api.md` | none | |
79
82
  | `./{a,b}.md` | `a.md`, `b.md` | |
80
83
  | `./{q}.md` | `{q}.md` | |
81
84
  | `./{a.md` | none | |
@@ -91,6 +94,16 @@ A test runs every row against dirsql as a path-table and, with the leading
91
94
  | `./*/r.md` | `linkdir/r.md`, `real/r.md` | |
92
95
  | `./**/r.md` | `linkdir/r.md`, `real/r.md` | |
93
96
  | `./real/**` | `real/r.md` | |
97
+ | `./docs//api.md` | `docs//api.md` | |
98
+ | `./docs//*.md` | `docs//api.md`, `docs//guide.md` | |
99
+ | `./*//api.md` | `docs/api.md` | |
100
+ | `./docs/./api.md` | `docs/./api.md` | |
101
+ | `./*/./api.md` | `docs/./api.md` | |
102
+ | `./docs/../top.md` | `docs/../top.md` | |
103
+ | `./docs/nested/../../top.md` | `docs/nested/../../top.md` | |
104
+ | `./[dlr]*/../top.md` | `docs/../top.md`, `linkdir/../top.md`, `real/../top.md` | |
105
+ | `./**/nested/../api.md` | `docs/nested/../api.md` | |
106
+ | `./docs/*/../api.md` | `docs/nested/../api.md` | |
94
107
  | `./docs` | `docs/api.md`, `docs/guide.md` | directory-name |
95
108
  | `./docs/` | `docs/api.md`, `docs/guide.md` | directory-name |
96
109
  | `./*/` | `docs/api.md`, `docs/guide.md`, `linkdir/r.md`, `real/r.md` | directory-name |
@@ -228,8 +228,7 @@ The table itself is per-connection: it lives in `temp`, so it cannot leak into
228
228
  `sqlite_master` or survive a restart. Under `--persist` a *parsed* table's rows
229
229
  outlive the connection in the cache (above), but the table is still minted
230
230
  fresh each run and the scan still decides what exists. A `.dirsql/` directory
231
- at the top of the directory the scan starts in is reserved and excluded, as
232
- everywhere else.
231
+ is an ordinary dot directory.
233
232
 
234
233
  ### When to promote to a declared table
235
234
 
@@ -86,7 +86,7 @@ DirSQL::builder()
86
86
  .config(config_toml_path) // optional; repeatable — call again to
87
87
  // merge another config in call order
88
88
  .persist(cache_path) // optional; Some(path), or None for the
89
- // default <root>/.dirsql/cache.db
89
+ // platform cache dir
90
90
  .extensions(extensions) // optional; append one with .extension(e)
91
91
  .poll_interval(duration) // optional; watch-loop cadence, default 200ms
92
92
  .build() // -> Result<DirSQL> (synchronous scan)
@@ -139,8 +139,8 @@ shortcut was removed in #603 — use
139
139
  accumulate; a duplicate table name across configs errors), mirroring the
140
140
  CLI's repeatable [`-c/--config`](./cli.md#flags).
141
141
  - `persist` — Keep the SQLite index on disk between runs (default off:
142
- ephemeral, rebuilt every startup). The cache lives at
143
- `<root>/.dirsql/cache.db` by default; on restart, only files whose stat
142
+ ephemeral, rebuilt every startup). The cache lives in the
143
+ platform cache directory by default (outside `<root>`); on restart, only files whose stat
144
144
  changed are re-parsed. (The CLI exposes the same switch as the
145
145
  [`--persist [PATH]`](./cli.md#dirsql-server) flag; it is not a config key.)
146
146
  - `persist_path` / `persistPath` — Override the cache location. Ignored when
@@ -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.95"
7
+ version = "0.4.97"
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,3 @@
1
+ **Changed**
2
+
3
+ - A `/` inside `[...]` is literal and ends the component, as in bash: `./[b/c]/*` matches nothing instead of `b/c/*`.
@@ -0,0 +1,3 @@
1
+ **Changed**
2
+
3
+ - A relative path-table accepts `//`, `.` and `..` components and reports the path as written; `./docs//api.md` returns `docs//api.md`, and `./docs/../top.md` matches `top.md` through `docs/..`.
@@ -0,0 +1,3 @@
1
+ **Changed**
2
+
3
+ - No user-visible change.
@@ -0,0 +1,7 @@
1
+ **Changed**
2
+
3
+ - **The default `--persist` cache moves out of the scanned tree.** Bare `--persist` now writes `cache.db` under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/` on Linux, `~/Library/Caches` on macOS, `%LOCALAPPDATA%` on Windows) instead of `<root>/.dirsql/`. `--persist <path>` is unchanged.
4
+
5
+ **Removed**
6
+
7
+ - **The reserved `.dirsql/` directory.** The scan no longer skips a top-level `.dirsql/`; it is an ordinary dot directory, matched like bash.
@@ -17,9 +17,11 @@ why it is a CLI flag, not a config key.
17
17
  dirsql --persist
18
18
  ```
19
19
 
20
- That's the whole change. On the next run the cache is written to
21
- `.dirsql/cache.db` under the root; runs after that start from it. To put
22
- the cache elsewhere (a CI cache dir, a tmpfs), pass a path:
20
+ That's the whole change. On the next run the cache is written to your platform cache directory
21
+ (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux, `~/Library/Caches`
22
+ on macOS, `%LOCALAPPDATA%` on Windows), outside the scanned tree; runs after
23
+ that start from it. To put the cache elsewhere (a CI cache dir, a tmpfs), pass
24
+ a path:
23
25
 
24
26
  ```bash
25
27
  dirsql --persist /var/cache/dirsql.db
@@ -30,20 +32,13 @@ put a bare `--persist` after the SQL there so it does not consume the query
30
32
  argument. Embedding `dirsql`? The SDK constructors expose the same switch —
31
33
  see [_Embedding `dirsql`?_](#embedding-dirsql) below.
32
34
 
33
- ## 2. Keep the cache out of git
35
+ ## 2. Nothing to ignore in git
34
36
 
35
- The cache is derived data — reproducible from the tree and frequently
36
- large. Add it to `.gitignore`:
37
-
38
- ```
39
- .dirsql/
40
- ```
41
-
42
- The top-level `.dirsql/` directory is reserved for `dirsql`'s metadata and
43
- is never scanned as data, so the cache can't index itself
44
- ([config reference](../reference/config.md#dirsql-keys)). While running,
45
- `dirsql` also creates transient `cache.db-wal` and `cache.db-shm` sidecar
46
- files next to the cache; the `.dirsql/` ignore already covers all three.
37
+ The default cache lives outside the scanned tree, so there is nothing to add
38
+ to `.gitignore` and the cache can't index itself. With `--persist <path>`, keep
39
+ that path out of the scanned tree too, or ignore it. While running, `dirsql`
40
+ also creates transient `cache.db-wal` and `cache.db-shm` sidecar files next to
41
+ the cache.
47
42
 
48
43
  ## What survives, what rebuilds
49
44
 
@@ -224,7 +224,7 @@ Rows are embedded once, at ingest, and cached on disk by content and model
224
224
  ::: warning Editing `ddl` wedges a persisted `vec0` cache
225
225
  Under `--persist`, editing any part of a `ddl` batch whose cache holds a
226
226
  `vec0` table currently fails with `SQLite error: no such module: vec0`, and
227
- keeps failing until the cache is deleted (`rm -rf <root>/.dirsql`). Tracked in
227
+ keeps failing until the cache is deleted (delete it, or pass a fresh `--persist <path>`). Tracked in
228
228
  [#1008](https://github.com/thekevinscott/dirsql/issues/1008); FTS5 is
229
229
  unaffected.
230
230
  :::
@@ -51,9 +51,6 @@ dirsql query "SELECT basename FROM notes ORDER BY basename" -c ./.dirsql.toml
51
51
  list, though its path-tables still apply the built-in
52
52
  [skip rules](../reference/path-tables.md#skip-rules) and respect
53
53
  `.gitignore`.
54
- - The top-level `.dirsql/` directory is always excluded, ignore list or
55
- not — it is reserved for `dirsql`'s own metadata
56
- ([config reference](../reference/config.md#dirsql-keys)).
57
54
  - Narrow table globs are the other half of the story: a file matching no
58
55
  table's glob contributes no rows either. Use `ignore` for things that
59
56
  should never be looked at; use precise globs to shape what each table
@@ -248,7 +248,7 @@ Config flags are subcommand-local: pass them after `server`
248
248
  | `--host <addr>` | `localhost` | Bind address. |
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
- | `--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). |
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 under the platform cache directory (`$XDG_CACHE_HOME/dirsql/<root hash>/cache.db` on Linux), outside the root; `--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
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. |
@@ -34,12 +34,6 @@ A config that still declares the removed `hook-timeout` key fails to load with
34
34
  an error naming that replacement. [`[[dirsql.function]]`](#dirsql-function)
35
35
  worker calls have their own per-call `timeout` key (default 30 seconds).
36
36
 
37
- The top-level `.dirsql/` directory under the root is always excluded from
38
- scanning, whether or not it appears in `ignore` — it is reserved for
39
- `dirsql`'s own metadata (the persist cache lives there by default). Only the
40
- top-level `.dirsql/` is reserved; a nested `sub/.dirsql/` is an ordinary
41
- directory.
42
-
43
37
  ```toml
44
38
  [dirsql]
45
39
  ignore = ["node_modules/**", ".git/**"]
@@ -76,6 +76,9 @@ A test runs every row against dirsql as a path-table and, with the leading
76
76
  | `./[!a].md` | `1.md`, `2.md`, `3.md`, `4.md`, `b.md`, `c.md` | |
77
77
  | `./\[a\].md` | `[a].md` | |
78
78
  | `./[z.md` | `[z.md` | |
79
+ | `./[d/x]ocs/api.md` | none | |
80
+ | `./docs[/]api.md` | none | |
81
+ | `./[!/]*/api.md` | none | |
79
82
  | `./{a,b}.md` | `a.md`, `b.md` | |
80
83
  | `./{q}.md` | `{q}.md` | |
81
84
  | `./{a.md` | none | |
@@ -91,6 +94,16 @@ A test runs every row against dirsql as a path-table and, with the leading
91
94
  | `./*/r.md` | `linkdir/r.md`, `real/r.md` | |
92
95
  | `./**/r.md` | `linkdir/r.md`, `real/r.md` | |
93
96
  | `./real/**` | `real/r.md` | |
97
+ | `./docs//api.md` | `docs//api.md` | |
98
+ | `./docs//*.md` | `docs//api.md`, `docs//guide.md` | |
99
+ | `./*//api.md` | `docs/api.md` | |
100
+ | `./docs/./api.md` | `docs/./api.md` | |
101
+ | `./*/./api.md` | `docs/./api.md` | |
102
+ | `./docs/../top.md` | `docs/../top.md` | |
103
+ | `./docs/nested/../../top.md` | `docs/nested/../../top.md` | |
104
+ | `./[dlr]*/../top.md` | `docs/../top.md`, `linkdir/../top.md`, `real/../top.md` | |
105
+ | `./**/nested/../api.md` | `docs/nested/../api.md` | |
106
+ | `./docs/*/../api.md` | `docs/nested/../api.md` | |
94
107
  | `./docs` | `docs/api.md`, `docs/guide.md` | directory-name |
95
108
  | `./docs/` | `docs/api.md`, `docs/guide.md` | directory-name |
96
109
  | `./*/` | `docs/api.md`, `docs/guide.md`, `linkdir/r.md`, `real/r.md` | directory-name |
@@ -228,8 +228,7 @@ The table itself is per-connection: it lives in `temp`, so it cannot leak into
228
228
  `sqlite_master` or survive a restart. Under `--persist` a *parsed* table's rows
229
229
  outlive the connection in the cache (above), but the table is still minted
230
230
  fresh each run and the scan still decides what exists. A `.dirsql/` directory
231
- at the top of the directory the scan starts in is reserved and excluded, as
232
- everywhere else.
231
+ is an ordinary dot directory.
233
232
 
234
233
  ### When to promote to a declared table
235
234
 
@@ -86,7 +86,7 @@ DirSQL::builder()
86
86
  .config(config_toml_path) // optional; repeatable — call again to
87
87
  // merge another config in call order
88
88
  .persist(cache_path) // optional; Some(path), or None for the
89
- // default <root>/.dirsql/cache.db
89
+ // platform cache dir
90
90
  .extensions(extensions) // optional; append one with .extension(e)
91
91
  .poll_interval(duration) // optional; watch-loop cadence, default 200ms
92
92
  .build() // -> Result<DirSQL> (synchronous scan)
@@ -139,8 +139,8 @@ shortcut was removed in #603 — use
139
139
  accumulate; a duplicate table name across configs errors), mirroring the
140
140
  CLI's repeatable [`-c/--config`](./cli.md#flags).
141
141
  - `persist` — Keep the SQLite index on disk between runs (default off:
142
- ephemeral, rebuilt every startup). The cache lives at
143
- `<root>/.dirsql/cache.db` by default; on restart, only files whose stat
142
+ ephemeral, rebuilt every startup). The cache lives in the
143
+ platform cache directory by default (outside `<root>`); on restart, only files whose stat
144
144
  changed are re-parsed. (The CLI exposes the same switch as the
145
145
  [`--persist [PATH]`](./cli.md#dirsql-server) flag; it is not a config key.)
146
146
  - `persist_path` / `persistPath` — Override the cache location. Ignored when
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/glob_speed_matchers_test.py -x -q",
3
+ "ran_at": 1791392720,
4
+ "exit_code": 0,
5
+ "commit": "7ffc3f247a2b09c1a4788f680e7ab1e88342df94",
6
+ "branch": "bot/1419-dotdot-slashes"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/glob_speed_matchers_test.py -x -q",
3
+ "ran_at": 1791393896,
4
+ "exit_code": 0,
5
+ "commit": "10ba3a468aaa558480098ec45a7b52b802b681bd",
6
+ "branch": "bot/1420-bracket-slash"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/query_contract_test.py tests/e2e/fanout_test.py tests/e2e/use_case_transcripts_test.py tests/e2e/glob_speed_dotfiles_test.py tests/e2e/glob_speed_recursive_test.py tests/e2e/glob_speed_one_level_test.py tests/e2e/stat_speed_test.py -x -q",
3
+ "ran_at": 1791391233,
4
+ "exit_code": 0,
5
+ "commit": "83e889b9041e8e071128c2334d98bf645ec52581",
6
+ "branch": "bot/1431-persist-cache-dir"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "command": "uv run python -m pytest tests/e2e/glob_speed_one_level_test.py -x -q",
3
+ "ran_at": 1791395806,
4
+ "exit_code": 0,
5
+ "commit": "a61af62fec489a0a0d45979d96fa045df52a8f60",
6
+ "branch": "bot/1440-fix-main-build"
7
+ }
@@ -0,0 +1,23 @@
1
+ ### A slash inside brackets is literal
2
+
3
+ #### Summary
4
+
5
+ A slash inside brackets ends the component, so the brackets are literal, as in bash.
6
+
7
+ #### Required changes
8
+
9
+ _None._
10
+
11
+ #### Deprecations removed
12
+
13
+ _None._
14
+
15
+ #### Behavior changes without code changes
16
+
17
+ - A `/` inside `[...]` is literal and ends the component, as in bash: `./[b/c]/*` matches nothing instead of `b/c/*`.
18
+
19
+ #### Verification
20
+
21
+ ```bash
22
+ dirsql query "SELECT path FROM './[d/x]ocs/api.md'"
23
+ ```
@@ -0,0 +1,23 @@
1
+ ### Relative globs accept //, . and .. components
2
+
3
+ #### Summary
4
+
5
+ Relative path-table and config globs now accept `//`, `.` and `..` components as bash does.
6
+
7
+ #### Required changes
8
+
9
+ _None._
10
+
11
+ #### Deprecations removed
12
+
13
+ _None._
14
+
15
+ #### Behavior changes without code changes
16
+
17
+ - A relative path-table accepts `//`, `.` and `..` components and reports the path as written; `./docs//api.md` returns `docs//api.md`, and `./docs/../top.md` matches `top.md` through `docs/..`.
18
+
19
+ #### Verification
20
+
21
+ ```bash
22
+ dirsql query "SELECT path FROM './docs/../*.md'"
23
+ ```
@@ -0,0 +1,23 @@
1
+ ### Build fix
2
+
3
+ #### Summary
4
+
5
+ Fixes the build break from two merged changes.
6
+
7
+ #### Required changes
8
+
9
+ _None._
10
+
11
+ #### Deprecations removed
12
+
13
+ _None._
14
+
15
+ #### Behavior changes without code changes
16
+
17
+ - No user-visible change.
18
+
19
+ #### Verification
20
+
21
+ ```bash
22
+ dirsql query "SELECT path FROM './docs/../*.md'"
23
+ ```
@@ -0,0 +1,35 @@
1
+ ### Default persist cache moves to the platform cache directory
2
+
3
+ #### Summary
4
+
5
+ Bare `--persist` (and `.persist(None)` / `persist=True` / `persist: true` in the
6
+ SDKs) no longer writes `<root>/.dirsql/cache.db`. It writes
7
+ `cache.db` under the platform cache directory, keyed by a hash of the root. The
8
+ scan no longer reserves `.dirsql/`.
9
+
10
+ #### Required changes
11
+
12
+ | Before | After |
13
+ | --- | --- |
14
+ | `.gitignore` entry `.dirsql/` for the cache | Not needed |
15
+ | `rm -rf <root>/.dirsql` to reset the cache | Delete the file under the platform cache directory, or pass `--persist <path>` |
16
+
17
+ #### Deprecations removed
18
+
19
+ _None._
20
+
21
+ #### Behavior changes without code changes
22
+
23
+ - The first `--persist` run after upgrading rebuilds the cache once.
24
+ - An old `<root>/.dirsql/cache.db` is left behind and, being an ordinary dot directory, is now scannable by a glob that spells `.dirsql`. Delete it.
25
+ - A top-level `.dirsql/` directory is no longer excluded from the scan.
26
+
27
+ #### Verification
28
+
29
+ ```bash
30
+ cd "$(mktemp -d)"
31
+ echo 'a' > a.txt
32
+ dirsql query "SELECT path FROM './*'" --persist
33
+ ls -A
34
+ # expected: only a.txt; no .dirsql/ in the root
35
+ ```
@@ -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.95"
9
+ version = "0.4.97"
10
10
  edition.workspace = true
11
11
  # Literal `license` (not `license.workspace = true`) because
12
12
  # putitoutthere's preflight check reads `[package].license` directly
@@ -63,6 +63,7 @@ base64 = "0.22"
63
63
  blake3 = "1"
64
64
  clap = { version = "4", features = ["derive"], optional = true }
65
65
  console = "0.16.6"
66
+ dirs = "6"
66
67
  futures = { version = "0.3", optional = true }
67
68
  futures-channel.workspace = true
68
69
  globset = "0.4"