sqlrite 0.10.0__tar.gz → 0.10.1__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 (255) hide show
  1. {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/ci.yml +27 -1
  2. {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/release.yml +25 -0
  3. {sqlrite-0.10.0 → sqlrite-0.10.1}/.gitignore +9 -0
  4. {sqlrite-0.10.0 → sqlrite-0.10.1}/Cargo.lock +7 -7
  5. {sqlrite-0.10.0 → sqlrite-0.10.1}/Cargo.toml +2 -2
  6. {sqlrite-0.10.0 → sqlrite-0.10.1}/PKG-INFO +1 -1
  7. {sqlrite-0.10.0 → sqlrite-0.10.1}/README.md +9 -0
  8. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/package.json +1 -1
  9. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/release-plan.md +62 -1
  10. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/sql-engine.md +1 -1
  11. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/README.md +30 -0
  12. sqlrite-0.10.1/examples/nodejs-notes/.gitignore +6 -0
  13. sqlrite-0.10.1/examples/nodejs-notes/README.md +333 -0
  14. sqlrite-0.10.1/examples/nodejs-notes/bin/sqlrite-notes.mjs +15 -0
  15. sqlrite-0.10.1/examples/nodejs-notes/package-lock.json +31 -0
  16. sqlrite-0.10.1/examples/nodejs-notes/package.json +38 -0
  17. sqlrite-0.10.1/examples/nodejs-notes/src/chunker.mjs +191 -0
  18. sqlrite-0.10.1/examples/nodejs-notes/src/claude-config.mjs +65 -0
  19. sqlrite-0.10.1/examples/nodejs-notes/src/cli.mjs +350 -0
  20. sqlrite-0.10.1/examples/nodejs-notes/src/config.mjs +71 -0
  21. sqlrite-0.10.1/examples/nodejs-notes/src/db.mjs +400 -0
  22. sqlrite-0.10.1/examples/nodejs-notes/src/embeddings.mjs +152 -0
  23. sqlrite-0.10.1/examples/nodejs-notes/src/ingest.mjs +235 -0
  24. sqlrite-0.10.1/examples/nodejs-notes/src/search.mjs +51 -0
  25. sqlrite-0.10.1/examples/nodejs-notes/src/serve.mjs +113 -0
  26. sqlrite-0.10.1/examples/nodejs-notes/src/sqlutil.mjs +63 -0
  27. sqlrite-0.10.1/examples/nodejs-notes/test/chunker.test.mjs +85 -0
  28. sqlrite-0.10.1/examples/nodejs-notes/test/claude-config.test.mjs +36 -0
  29. sqlrite-0.10.1/examples/nodejs-notes/test/db.test.mjs +272 -0
  30. sqlrite-0.10.1/examples/nodejs-notes/test/embeddings.test.mjs +104 -0
  31. sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/crdts.md +23 -0
  32. sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/postgres.md +18 -0
  33. sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/running.md +8 -0
  34. sqlrite-0.10.1/examples/nodejs-notes/test/ingest.test.mjs +131 -0
  35. sqlrite-0.10.1/examples/nodejs-notes/test/serve.test.mjs +38 -0
  36. sqlrite-0.10.1/examples/nodejs-notes/test/sqlutil.test.mjs +47 -0
  37. sqlrite-0.10.1/examples/python-agent/.gitignore +12 -0
  38. sqlrite-0.10.1/examples/python-agent/README.md +275 -0
  39. sqlrite-0.10.1/examples/python-agent/pyproject.toml +55 -0
  40. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/__init__.py +4 -0
  41. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/__main__.py +4 -0
  42. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/agent.py +163 -0
  43. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/chat.py +113 -0
  44. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/cli.py +194 -0
  45. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/db.py +349 -0
  46. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/embeddings.py +141 -0
  47. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/facts.py +137 -0
  48. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/memory.py +216 -0
  49. sqlrite-0.10.1/examples/python-agent/sqlrite_agent/sqlutil.py +39 -0
  50. sqlrite-0.10.1/examples/python-agent/tests/conftest.py +38 -0
  51. sqlrite-0.10.1/examples/python-agent/tests/test_agent.py +100 -0
  52. sqlrite-0.10.1/examples/python-agent/tests/test_db.py +172 -0
  53. sqlrite-0.10.1/examples/python-agent/tests/test_facts.py +57 -0
  54. sqlrite-0.10.1/examples/python-agent/tests/test_memory.py +85 -0
  55. sqlrite-0.10.1/examples/python-agent/tests/test_sqlutil.py +28 -0
  56. {sqlrite-0.10.0 → sqlrite-0.10.1}/pyproject.toml +1 -1
  57. {sqlrite-0.10.0 → sqlrite-0.10.1}/scripts/bump-version.sh +18 -3
  58. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/Cargo.toml +1 -1
  59. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/Cargo.toml +1 -1
  60. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/table.rs +48 -3
  61. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/executor.rs +10 -7
  62. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/hnsw.rs +96 -45
  63. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/mod.rs +55 -0
  64. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/mod.rs +4 -48
  65. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/README.md +50 -1
  66. sqlrite-0.10.1/web/content/blog/shipping-concurrent-writes-mvcc-v010.mdx +395 -0
  67. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/package-lock.json +500 -2
  68. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/package.json +1 -0
  69. sqlrite-0.10.1/web/seo/keywords.md +161 -0
  70. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/page.tsx +23 -8
  71. sqlrite-0.10.1/web/src/app/examples/page.tsx +271 -0
  72. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/layout.tsx +29 -11
  73. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/page.tsx +5 -2
  74. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/sitemap.ts +1 -0
  75. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/benchmarks.tsx +7 -6
  76. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/features.tsx +15 -8
  77. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/hero.tsx +8 -8
  78. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/nav.tsx +8 -0
  79. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/roadmap.tsx +23 -6
  80. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/site.ts +1 -1
  81. sqlrite-0.10.1/web/src/middleware.ts +31 -0
  82. {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/release-pr.yml +0 -0
  83. {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/rust.yml +0 -0
  84. {sqlrite-0.10.0 → sqlrite-0.10.1}/CLAUDE.md +0 -0
  85. {sqlrite-0.10.0 → sqlrite-0.10.1}/CODE_OF_CONDUCT.md +0 -0
  86. {sqlrite-0.10.0 → sqlrite-0.10.1}/LICENSE +0 -0
  87. {sqlrite-0.10.0 → sqlrite-0.10.1}/MAINTAINERS +0 -0
  88. {sqlrite-0.10.0 → sqlrite-0.10.1}/Makefile +0 -0
  89. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/index.html +0 -0
  90. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/package-lock.json +0 -0
  91. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/App.svelte +0 -0
  92. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/app.css +0 -0
  93. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/main.ts +0 -0
  94. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/vite-env.d.ts +0 -0
  95. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/svelte.config.js +0 -0
  96. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/tsconfig.json +0 -0
  97. {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/vite.config.ts +0 -0
  98. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/_index.md +0 -0
  99. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/architecture.md +0 -0
  100. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/ask-backend-examples.md +0 -0
  101. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/ask.md +0 -0
  102. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/benchmarks-plan.md +0 -0
  103. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/benchmarks.md +0 -0
  104. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/concurrent-writes-plan.md +0 -0
  105. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/concurrent-writes.md +0 -0
  106. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/design-decisions.md +0 -0
  107. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/desktop.md +0 -0
  108. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/embedding.md +0 -0
  109. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/file-format.md +0 -0
  110. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/fts.md +0 -0
  111. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/getting-started.md +0 -0
  112. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/mcp.md +0 -0
  113. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/pager.md +0 -0
  114. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/phase-7-plan.md +0 -0
  115. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/phase-8-plan.md +0 -0
  116. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/release-secrets.md +0 -0
  117. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/roadmap.md +0 -0
  118. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/smoke-test.md +0 -0
  119. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/storage-model.md +0 -0
  120. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/supported-sql.md +0 -0
  121. {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/usage.md +0 -0
  122. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/c/Makefile +0 -0
  123. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/c/hello.c +0 -0
  124. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/go/go.mod +0 -0
  125. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/go/hello.go +0 -0
  126. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/hybrid-retrieval/README.md +0 -0
  127. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/hybrid-retrieval/hybrid_retrieval.rs +0 -0
  128. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/nodejs/hello.mjs +0 -0
  129. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/python/hello.py +0 -0
  130. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/rust/concurrent_writers.rs +0 -0
  131. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/rust/quickstart.rs +0 -0
  132. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/Makefile +0 -0
  133. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/index.html +0 -0
  134. {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/server.mjs +0 -0
  135. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite - Desktop.png +0 -0
  136. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Data Structures.png +0 -0
  137. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL Execution High Level Diagram.png +0 -0
  138. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL INSERT Execution High Level Diagram (Insert Row).png +0 -0
  139. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL INSERT Execution High Level Diagram.png +0 -0
  140. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite_logo.png +0 -0
  141. {sqlrite-0.10.0 → sqlrite-0.10.1}/images/architecture.png +0 -0
  142. {sqlrite-0.10.0 → sqlrite-0.10.1}/rust-toolchain.toml +0 -0
  143. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.delete.example +0 -0
  144. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.insert.exemple +0 -0
  145. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.select.example +0 -0
  146. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.update.example +0 -0
  147. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE TABLE sqlrite_schema.sql +0 -0
  148. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE_TABLE with duplicate.sql +0 -0
  149. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE_TABLE.sql +0 -0
  150. {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/INSERT.sql +0 -0
  151. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/README.md +0 -0
  152. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/ask.go +0 -0
  153. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/ask_test.go +0 -0
  154. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/conn.go +0 -0
  155. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/go.mod +0 -0
  156. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/rows.go +0 -0
  157. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/sqlrite.go +0 -0
  158. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/sqlrite_test.go +0 -0
  159. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/stmt.go +0 -0
  160. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/README.md +0 -0
  161. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/src/lib.rs +0 -0
  162. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/tests/test_ask.py +0 -0
  163. {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/tests/test_sqlrite.py +0 -0
  164. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/README.md +0 -0
  165. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/lib.rs +0 -0
  166. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/prompt.rs +0 -0
  167. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/anthropic.rs +0 -0
  168. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/mock.rs +0 -0
  169. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/mod.rs +0 -0
  170. {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/tests/anthropic_http.rs +0 -0
  171. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/ask/mod.rs +0 -0
  172. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/ask/schema.rs +0 -0
  173. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/connection.rs +0 -0
  174. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/error.rs +0 -0
  175. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/lib.rs +0 -0
  176. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/main.rs +0 -0
  177. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/meta_command/mod.rs +0 -0
  178. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/clock.rs +0 -0
  179. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/log.rs +0 -0
  180. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/mod.rs +0 -0
  181. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/registry.rs +0 -0
  182. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/store.rs +0 -0
  183. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/transaction.rs +0 -0
  184. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/repl/mod.rs +0 -0
  185. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/agg.rs +0 -0
  186. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/database.rs +0 -0
  187. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/mod.rs +0 -0
  188. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/secondary_index.rs +0 -0
  189. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/dialect.rs +0 -0
  190. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/bm25.rs +0 -0
  191. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/mod.rs +0 -0
  192. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/posting_list.rs +0 -0
  193. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/tokenizer.rs +0 -0
  194. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/allocator.rs +0 -0
  195. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/cell.rs +0 -0
  196. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/file.rs +0 -0
  197. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/freelist.rs +0 -0
  198. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/fts_cell.rs +0 -0
  199. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/header.rs +0 -0
  200. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/hnsw_cell.rs +0 -0
  201. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/index_cell.rs +0 -0
  202. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/interior_page.rs +0 -0
  203. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/overflow.rs +0 -0
  204. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/page.rs +0 -0
  205. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/pager.rs +0 -0
  206. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/table_page.rs +0 -0
  207. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/varint.rs +0 -0
  208. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/wal.rs +0 -0
  209. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/params.rs +0 -0
  210. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/create.rs +0 -0
  211. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/insert.rs +0 -0
  212. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/mod.rs +0 -0
  213. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/select.rs +0 -0
  214. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pragma.rs +0 -0
  215. {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/tokenizer.rs +0 -0
  216. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/.gitignore +0 -0
  217. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/components.json +0 -0
  218. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/adding-vector-search-with-hnsw.mdx +0 -0
  219. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/how-sqlrite-stores-rows-on-disk.mdx +0 -0
  220. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/shipping-sqlrite-tauri-mcp-sdks.mdx +0 -0
  221. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/sqlrite-vs-sqlite-benchmarks.mdx +0 -0
  222. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/why-im-building-sqlrite.mdx +0 -0
  223. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/eslint.config.mjs +0 -0
  224. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/next.config.ts +0 -0
  225. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/postcss.config.mjs +0 -0
  226. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/opengraph-image.tsx +0 -0
  227. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/page.tsx +0 -0
  228. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/twitter-image.tsx +0 -0
  229. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/page.tsx +0 -0
  230. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/rss.xml/route.ts +0 -0
  231. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/tags/[tag]/page.tsx +0 -0
  232. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/opengraph-image.tsx +0 -0
  233. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/twitter-image.tsx +0 -0
  234. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/globals.css +0 -0
  235. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/opengraph-image.tsx +0 -0
  236. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/robots.ts +0 -0
  237. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/twitter-image.tsx +0 -0
  238. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/architecture.tsx +0 -0
  239. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/blog-mdx.tsx +0 -0
  240. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/blog.tsx +0 -0
  241. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/cta-strip.tsx +0 -0
  242. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/desktop.tsx +0 -0
  243. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/footer.tsx +0 -0
  244. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/icons.tsx +0 -0
  245. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/install-bar.tsx +0 -0
  246. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sdk-showcase-client.tsx +0 -0
  247. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sdk-showcase.tsx +0 -0
  248. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sql-ref.tsx +0 -0
  249. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/terminal.tsx +0 -0
  250. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/benchmarks.ts +0 -0
  251. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/blog.ts +0 -0
  252. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/highlight.ts +0 -0
  253. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/og.tsx +0 -0
  254. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/utils.ts +0 -0
  255. {sqlrite-0.10.0 → sqlrite-0.10.1}/web/tsconfig.json +0 -0
@@ -299,6 +299,15 @@ jobs:
299
299
  wasm-build:
300
300
  name: wasm-build
301
301
  runs-on: ubuntu-latest
302
+ # Pinned binaryen version — see docs/release-plan.md
303
+ # ("Pinned binaryen / wasm-opt") for the bump procedure. Older
304
+ # binaryen rejects rustc's multi-table WASM output with
305
+ # "Only 1 table definition allowed in MVP", which the runner
306
+ # image's cache state used to surface non-deterministically
307
+ # (SQLR-58). Pinning keeps wasm-opt out of "whatever's cached"
308
+ # territory.
309
+ env:
310
+ BINARYEN_VERSION: version_122
302
311
  steps:
303
312
  - uses: actions/checkout@v4
304
313
 
@@ -313,12 +322,29 @@ jobs:
313
322
  workspaces: sdk/wasm
314
323
  shared-key: wasm-build
315
324
 
325
+ - name: Install pinned binaryen (wasm-opt)
326
+ # MUST run before wasm-pack: wasm-pack picks up wasm-opt from
327
+ # PATH if present, otherwise downloads whatever binaryen its
328
+ # own internal cache happens to have. Pinning + prepending
329
+ # to PATH forces a deterministic version across runner images.
330
+ run: |
331
+ set -euo pipefail
332
+ curl -fsSL "https://github.com/WebAssembly/binaryen/releases/download/${BINARYEN_VERSION}/binaryen-${BINARYEN_VERSION}-x86_64-linux.tar.gz" \
333
+ -o "$RUNNER_TEMP/binaryen.tar.gz"
334
+ tar -xzf "$RUNNER_TEMP/binaryen.tar.gz" -C "$RUNNER_TEMP"
335
+ echo "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin" >> "$GITHUB_PATH"
336
+ "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin/wasm-opt" --version
337
+
316
338
  - name: Install wasm-pack
317
339
  uses: jetli/wasm-pack-action@v0.4.0
318
340
 
319
341
  - name: wasm-pack build --target web --release
320
342
  working-directory: sdk/wasm
321
- run: wasm-pack build --target web --release
343
+ run: |
344
+ # Sanity-check that the pinned wasm-opt is what wasm-pack sees.
345
+ which wasm-opt
346
+ wasm-opt --version
347
+ wasm-pack build --target web --release
322
348
 
323
349
  - name: Report .wasm size
324
350
  # Surfaces size regressions in PR logs. Not a hard limit yet;
@@ -1189,6 +1189,14 @@ jobs:
1189
1189
  if: needs.detect.outputs.should_release == 'true'
1190
1190
  runs-on: ubuntu-latest
1191
1191
  environment: release
1192
+ # Pinned binaryen version — see docs/release-plan.md
1193
+ # ("Pinned binaryen / wasm-opt") for the bump procedure. Older
1194
+ # binaryen rejects rustc's multi-table WASM output with
1195
+ # "Only 1 table definition allowed in MVP" (SQLR-58). The
1196
+ # release pipeline can't tolerate that flake — a failed
1197
+ # publish-wasm leaves the rest of the release wave inconsistent.
1198
+ env:
1199
+ BINARYEN_VERSION: version_122
1192
1200
  permissions:
1193
1201
  # OIDC: required for npm trusted-publisher token exchange.
1194
1202
  # Same flow proven in publish-nodejs after the v0.1.5–0.1.7
@@ -1207,6 +1215,20 @@ jobs:
1207
1215
  shared-key: publish-wasm
1208
1216
  workspaces: 'sdk/wasm -> target'
1209
1217
 
1218
+ - name: Install pinned binaryen (wasm-opt)
1219
+ # MUST run before wasm-pack: wasm-pack picks up wasm-opt
1220
+ # from PATH if present, otherwise downloads whatever
1221
+ # binaryen its own internal cache happens to have. Pinning
1222
+ # + prepending to PATH forces a deterministic version
1223
+ # across runner images.
1224
+ run: |
1225
+ set -euo pipefail
1226
+ curl -fsSL "https://github.com/WebAssembly/binaryen/releases/download/${BINARYEN_VERSION}/binaryen-${BINARYEN_VERSION}-x86_64-linux.tar.gz" \
1227
+ -o "$RUNNER_TEMP/binaryen.tar.gz"
1228
+ tar -xzf "$RUNNER_TEMP/binaryen.tar.gz" -C "$RUNNER_TEMP"
1229
+ echo "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin" >> "$GITHUB_PATH"
1230
+ "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin/wasm-opt" --version
1231
+
1210
1232
  # Install wasm-pack — the canonical tool for building +
1211
1233
  # packaging Rust crates as npm-publishable WASM modules.
1212
1234
  # `cargo binstall` would be faster than `cargo install`
@@ -1239,6 +1261,9 @@ jobs:
1239
1261
  - name: Build WASM package
1240
1262
  working-directory: sdk/wasm
1241
1263
  run: |
1264
+ # Sanity-check that the pinned wasm-opt is on PATH (SQLR-58).
1265
+ which wasm-opt
1266
+ wasm-opt --version
1242
1267
  wasm-pack build --release --target bundler --scope joaoh82
1243
1268
  echo "--- generated pkg/ contents ---"
1244
1269
  ls -la pkg/
@@ -44,3 +44,12 @@ examples/wasm/pkg
44
44
 
45
45
  # macOS
46
46
  .DS_Store
47
+
48
+ # Local agent / Claude Code worktrees. These shouldn't ever get
49
+ # committed — but `git add -A` from main while a worktree is live
50
+ # under .claude/worktrees/<name>/ will capture it as a gitlink
51
+ # (mode 160000) because the worktree dir looks like a submodule to
52
+ # the parent index. Ignoring the whole tree prevents that whole
53
+ # class of accident. (The release commit 937f8b4 hit exactly this
54
+ # bug; the next commit untracks the leftover gitlinks.)
55
+ .claude/worktrees/
@@ -4799,7 +4799,7 @@ dependencies = [
4799
4799
 
4800
4800
  [[package]]
4801
4801
  name = "sqlrite-ask"
4802
- version = "0.10.0"
4802
+ version = "0.10.1"
4803
4803
  dependencies = [
4804
4804
  "serde",
4805
4805
  "serde_json",
@@ -4827,7 +4827,7 @@ dependencies = [
4827
4827
 
4828
4828
  [[package]]
4829
4829
  name = "sqlrite-desktop"
4830
- version = "0.10.0"
4830
+ version = "0.10.1"
4831
4831
  dependencies = [
4832
4832
  "serde",
4833
4833
  "serde_json",
@@ -4839,7 +4839,7 @@ dependencies = [
4839
4839
 
4840
4840
  [[package]]
4841
4841
  name = "sqlrite-engine"
4842
- version = "0.10.0"
4842
+ version = "0.10.1"
4843
4843
  dependencies = [
4844
4844
  "clap",
4845
4845
  "env_logger",
@@ -4856,7 +4856,7 @@ dependencies = [
4856
4856
 
4857
4857
  [[package]]
4858
4858
  name = "sqlrite-ffi"
4859
- version = "0.10.0"
4859
+ version = "0.10.1"
4860
4860
  dependencies = [
4861
4861
  "cbindgen",
4862
4862
  "serde",
@@ -4866,7 +4866,7 @@ dependencies = [
4866
4866
 
4867
4867
  [[package]]
4868
4868
  name = "sqlrite-mcp"
4869
- version = "0.10.0"
4869
+ version = "0.10.1"
4870
4870
  dependencies = [
4871
4871
  "clap",
4872
4872
  "libc",
@@ -4877,7 +4877,7 @@ dependencies = [
4877
4877
 
4878
4878
  [[package]]
4879
4879
  name = "sqlrite-nodejs"
4880
- version = "0.10.0"
4880
+ version = "0.10.1"
4881
4881
  dependencies = [
4882
4882
  "napi",
4883
4883
  "napi-build",
@@ -4887,7 +4887,7 @@ dependencies = [
4887
4887
 
4888
4888
  [[package]]
4889
4889
  name = "sqlrite-python"
4890
- version = "0.10.0"
4890
+ version = "0.10.1"
4891
4891
  dependencies = [
4892
4892
  "pyo3",
4893
4893
  "sqlrite-engine",
@@ -27,7 +27,7 @@ resolver = "3"
27
27
  # `package =` key so the import name stays `sqlrite` internally:
28
28
  # sqlrite = { package = "sqlrite-engine", path = "…" }
29
29
  name = "sqlrite-engine"
30
- version = "0.10.0"
30
+ version = "0.10.1"
31
31
  authors = ["Joao Henrique Machado Silva <joaoh82@gmail.com>"]
32
32
  edition = "2024"
33
33
  rust-version = "1.85"
@@ -150,4 +150,4 @@ fs2 = { version = "0.4", optional = true }
150
150
  # crate publishes to crates.io, and a path-only dep without a
151
151
  # version field fails the manifest verification step. See PR #58
152
152
  # retrospective in docs/roadmap.md.
153
- sqlrite-ask = { version = "0.10.0", path = "sqlrite-ask", optional = true }
153
+ sqlrite-ask = { version = "0.10.1", path = "sqlrite-ask", optional = true }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlrite
3
- Version: 0.10.0
3
+ Version: 0.10.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -108,6 +108,15 @@ Wire it into Claude Code (`~/.claude.json`):
108
108
 
109
109
  `--read-only` opens the DB with a shared lock and hides the `execute` tool. Full docs + the other six tools' references in [`docs/mcp.md`](docs/mcp.md).
110
110
 
111
+ ### End-to-end example apps
112
+
113
+ Beyond the per-language quickstarts in [`examples/`](examples/), the SQLR-38 umbrella tracks longer, opinionated example apps that exercise SQLRite in real-world shapes:
114
+
115
+ | App | SDK | What it shows |
116
+ |---|---|---|
117
+ | [Python LLM agent with persistent memory](examples/python-agent/) | Python | Vector + lexical recall, fact extraction, summaries — all in one `.sqlrite` file |
118
+ | [Chat-with-your-notes via Claude Desktop MCP](examples/nodejs-notes/) | Node.js | Markdown → hybrid HNSW + BM25 index → `sqlrite-mcp --read-only` → Claude Desktop |
119
+
111
120
  ### Developer guide
112
121
 
113
122
  In-depth documentation lives under [`docs/`](docs/). Start at [`docs/_index.md`](docs/_index.md) — it navigates to:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sqlrite-desktop-frontend",
3
3
  "private": true,
4
- "version": "0.10.0",
4
+ "version": "0.10.1",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -247,7 +247,10 @@ The "publish" half. Auto-fires on the release commit.
247
247
  GitHub Release `sqlrite-node-vX.Y.Z`.
248
248
  - **publish-wasm** — `wasm-pack build --target bundler --release`,
249
249
  then `wasm-pack publish` via OIDC. Creates
250
- `sqlrite-wasm-vX.Y.Z` GitHub Release.
250
+ `sqlrite-wasm-vX.Y.Z` GitHub Release. Installs a
251
+ [pinned binaryen / wasm-opt](#pinned-binaryen--wasm-opt) before
252
+ invoking `wasm-pack`, so the published bundle is byte-stable
253
+ across runner image cache states.
251
254
  - **publish-go** — nothing to build on the Go side. Verifies
252
255
  `sdk/go/vX.Y.Z` was pushed correctly by `tag-all`. Pulls the
253
256
  per-platform `libsqlrite_c` tarballs produced by
@@ -285,6 +288,64 @@ The "publish" half. Auto-fires on the release commit.
285
288
  exist (because the real release happened weeks ago). Workflow
286
289
  aborts with a clear "tag already exists" error. No damage.
287
290
 
291
+ ## Pinned binaryen / wasm-opt
292
+
293
+ The WASM build paths in `ci.yml` (`wasm-build`) and `release.yml`
294
+ (`publish-wasm`) both install a **pinned version of binaryen**
295
+ (which provides `wasm-opt`) before invoking `wasm-pack`. The pin
296
+ lives in a `BINARYEN_VERSION` job-level `env:` in each workflow.
297
+
298
+ **Current pin: `version_122`** (released Feb 2025).
299
+
300
+ ### Why this exists (SQLR-58)
301
+
302
+ `wasm-pack` invokes `wasm-opt` to size-optimize the published
303
+ bundle. If `wasm-opt` is already on `PATH`, `wasm-pack` uses that
304
+ one; otherwise it downloads its own copy into a per-runner cache.
305
+ That cache is keyed on the runner image and survives across
306
+ images opaquely — which means CI was getting whatever binaryen
307
+ the cache happened to hold. When the cached copy was old enough
308
+ to predate multi-table WASM support, `wasm-opt` would reject
309
+ recent rustc output with:
310
+
311
+ > `[parse exception: Only 1 table definition allowed in MVP]`
312
+ > `Fatal: error in parsing input`
313
+ > `Error: failed to execute wasm-opt: exited with exit code: 1`
314
+
315
+ The failure was non-deterministic (re-runs frequently passed,
316
+ because the new image had a different cache state), but it broke
317
+ the release pipeline at least once before [PR #135](https://github.com/joaoh82/rust_sqlite/pull/135).
318
+ Pinning binaryen + prepending it to `PATH` forces `wasm-pack`
319
+ to always see the same `wasm-opt`, regardless of runner state.
320
+
321
+ ### Bump procedure
322
+
323
+ 1. Look at the [binaryen releases page](https://github.com/WebAssembly/binaryen/releases)
324
+ and pick a recent stable version (avoid release candidates).
325
+ 2. Locally, download that release's `x86_64-linux` tarball and
326
+ run `wasm-opt --version` to confirm it builds. Optional but
327
+ nice: also run `wasm-pack build --target web --release` in
328
+ `sdk/wasm` with the new `wasm-opt` on `PATH` and confirm the
329
+ `.wasm` artifact size is in the same ballpark as before
330
+ (regressions > 10% are worth investigating).
331
+ 3. Update `BINARYEN_VERSION` in both `.github/workflows/ci.yml`
332
+ (job `wasm-build`) and `.github/workflows/release.yml` (job
333
+ `publish-wasm`). Keep the two in lockstep — a divergence
334
+ means CI and release produce subtly different artifacts.
335
+ 4. Update the "Current pin" line above to match.
336
+ 5. PR + merge. CI will exercise the new version on the WASM
337
+ build job before the release pipeline ever sees it.
338
+
339
+ ### Why a tarball, not apt-get
340
+
341
+ Ubuntu's apt-packaged `binaryen` is reliably 1–2 years behind
342
+ upstream and pinning it requires the matching apt index, which is
343
+ itself unstable across runner image refreshes. The official
344
+ WebAssembly/binaryen GitHub release tarballs are stable URLs and
345
+ sha-pinnable (we don't currently verify the sha256 — a follow-up
346
+ if supply-chain integrity becomes a concern; the tarball is
347
+ short-lived and contained to the runner).
348
+
288
349
  ## Secrets / one-time setup
289
350
 
290
351
  With lockstep + OIDC-based trusted publishing, the only long-lived
@@ -133,7 +133,7 @@ Two specialized shortcuts in [`src/sql/executor.rs`](../src/sql/executor.rs) rec
133
133
  ORDER BY vec_distance_l2(<col>, <bracket-array literal>) ASC LIMIT k
134
134
  ```
135
135
 
136
- Returns top-k from the HNSW graph in `O(log N)` per probe. Mirrored shapes for `vec_distance_cosine` and `vec_distance_dot`.
136
+ Returns top-k from the HNSW graph in `O(log N)` per probe. Mirrored shapes for `vec_distance_cosine` and `vec_distance_dot`. INSERT maintains HNSW incrementally. DELETE / UPDATE mark the graph dirty; the next INSERT on the indexed vector column rebuilds the in-memory graph from surviving rows before adding the new node, and save/COMMIT still rebuilds dirty graphs before serializing.
137
137
 
138
138
  `try_fts_probe` (Phase 8b) — BM25 keyword:
139
139
 
@@ -16,6 +16,15 @@ Phase 5 lands these incrementally — each sub-phase fills in one language. The
16
16
 
17
17
  See [docs/roadmap.md](../docs/roadmap.md) for what each sub-phase delivers.
18
18
 
19
+ ## End-to-end example apps
20
+
21
+ Beyond the per-SDK quick-start tours above, the [SQLR-38 umbrella](../docs/roadmap.md) tracks longer, opinionated example apps that exercise SQLRite end-to-end in real-world shapes:
22
+
23
+ | App | Language / SDK | What it shows | Directory |
24
+ |---|---|---|---|
25
+ | LLM agent with persistent memory | Python | Vector + lexical recall, fact extraction, summaries — all in one `.sqlrite` file | [`python-agent/`](python-agent/) |
26
+ | Chat with your notes (MCP) | Node.js | Markdown → SQLRite hybrid retrieval, served to Claude Desktop via `sqlrite-mcp --read-only` | [`nodejs-notes/`](nodejs-notes/) |
27
+
19
28
  ## Running the Rust quickstart
20
29
 
21
30
  ```bash
@@ -63,6 +72,27 @@ python examples/python/hello.py
63
72
 
64
73
  Mirrors the Rust quickstart shape via the DB-API: `sqlrite.connect(":memory:")` → `cursor.execute` → iterate tuples, plus a BEGIN/ROLLBACK block. See [`python/hello.py`](python/hello.py) and [`sdk/python/README.md`](../sdk/python/README.md) for the full API tour.
65
74
 
75
+ ## Running the Python LLM agent (SQLR-39)
76
+
77
+ ```bash
78
+ cd examples/python-agent
79
+ python3 -m venv .venv && source .venv/bin/activate
80
+ pip install -e .
81
+ python -m sqlrite_agent # works offline; no API key required
82
+ ```
83
+
84
+ A full CLI chat agent whose long-term memory is one `.sqlrite` file. Embeds each turn, hybrid-searches over past messages and a structured `facts` table on every recall, and survives process restarts. Read [`python-agent/README.md`](python-agent/README.md) for the demo script and architecture diagram.
85
+
86
+ ## Running the Node.js notes assistant (SQLR-40)
87
+
88
+ ```bash
89
+ cd examples/nodejs-notes
90
+ npm install
91
+ node bin/sqlrite-notes.mjs init ~/Documents/notes
92
+ ```
93
+
94
+ Ingests a folder of markdown notes into a `notes.sqlrite` file with HNSW + BM25 indexes, then `sqlrite-notes serve` wraps `sqlrite-mcp --read-only` so **Claude Desktop / any MCP client** can `bm25_search` / `vector_search` / `query` / `ask` your local notes directly — no cloud sync, no third-party indexer. Default embedder is fully offline (deterministic hash bag-of-words); flip to `--embedder openai` with `OPENAI_API_KEY` set for real semantic recall. Read [`nodejs-notes/README.md`](nodejs-notes/README.md) for the Claude Desktop config snippet and the hybrid-retrieval SQL walkthrough.
95
+
66
96
  ## Running the Node.js sample
67
97
 
68
98
  ```bash
@@ -0,0 +1,6 @@
1
+ node_modules/
2
+ *.sqlrite
3
+ *.sqlrite-journal
4
+ .env
5
+ .env.local
6
+ test-fixtures-tmp/