build: remove sqlite-rembed and the Rust toolchain dependency#5616
Conversation
proxy_sqlite3_rembed_init was declared unconditionally as NULL
with a TODO comment ("Fix sqlite-rembed header inclusion and assign
the function pointer properly") and never reassigned anywhere in
the tree. The sole caller in Admin_Bootstrap::__bootstrap was
null-guarded, so the sqlite-rembed auto-extension was never
registered at runtime in any build tier, stable or GENAI.
This commit removes the pointer, its extern declaration, and the
null-guarded call. No runtime behavior changes; subsequent commits
remove the build-system wiring and the Rust toolchain dependency
that existed solely to produce libsqlite_rembed.a.
libsqlite_rembed.a is no longer linked into any ProxySQL binary or test as of the preceding commits, so the build rule, the Rust toolchain detection block, the SQLITE3_* environment exports, the sqlite-rembed phony target, and the rembed clean lines can go. The sqlite-vec extension stays (it is C, not Rust). After this commit, PROXYSQLGENAI=1 builds no longer require rustc or cargo on PATH.
- GENAI.md: Remove two rembed-related links from Related Documentation section - SQLite3-Server.md: Delete Embedding Generation section (was lines 72-103) - SQLite3-Server.md: Remove rembed-dependent use cases (embedding generation, AI pipelines)
The AI/MCP tier (PROXYSQLGENAI=1) no longer requires rustc/cargo after the sqlite-rembed removal. Follow-up to the preceding cleanup commits to keep the user-facing tier documentation honest.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis change removes the Rust-based sqlite-rembed extension and its build/registration artifacts (build rules, link inputs, symbol declarations), deletes related documentation and demos, and updates build/test Makefiles and metadata while preserving sqlite-vec registration and functionality. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md (1)
86-91: Consider adding language specifiers to fenced code blocks.Several code blocks showing command output lack language specifiers. While not functionally impacting the plan, adding
textorconsoleas the language improves readability in some renderers.📝 Example fix for line 87
-``` +```text lib/proxy_sqlite3_symbols.cpp:61:int (*proxy_sqlite3_rembed_init)(sqlite3*, char**, const sqlite3_api_routines*) = NULL;Also applies to: 102-106, 651-655
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md` around lines 86 - 91, Add language specifiers (e.g., ```text or ```console) to the fenced code blocks that show command output so they render consistently; update the three example blocks that contain lines referencing lib/proxy_sqlite3_symbols.cpp and lib/Admin_Bootstrap.cpp — specifically the lines containing the symbols proxy_sqlite3_rembed_init and proxy_sqlite3_auto_extension — and apply the same change to the other reported blocks around lines 102-106 and 651-655 to mark them as plain text/console output.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md`:
- Around line 86-91: Add language specifiers (e.g., ```text or ```console) to
the fenced code blocks that show command output so they render consistently;
update the three example blocks that contain lines referencing
lib/proxy_sqlite3_symbols.cpp and lib/Admin_Bootstrap.cpp — specifically the
lines containing the symbols proxy_sqlite3_rembed_init and
proxy_sqlite3_auto_extension — and apply the same change to the other reported
blocks around lines 102-106 and 651-655 to mark them as plain text/console
output.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: def501fd-8ac3-47fb-94df-d28aea726a9e
⛔ Files ignored due to path filters (1)
deps/sqlite3/sqlite-rembed-0.0.1-alpha.9.tar.gzis excluded by!**/*.gz
📒 Files selected for processing (23)
.gitignoreCLAUDE.mdMakefiledeps/Makefiledoc/GENAI.mddoc/MCP/Vector_Embeddings_Implementation_Plan.mddoc/SQLITE-REMBED-TEST-README.mddoc/SQLite3-Server.mddoc/posts-embeddings-setup.mddoc/sqlite-rembed-demo.shdoc/sqlite-rembed-examples.shdoc/sqlite-rembed-examples.sqldoc/sqlite-rembed-integration.mddoc/sqlite-rembed-test.shdocs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.mdlib/Admin_Bootstrap.cpplib/Makefilelib/proxy_sqlite3_symbols.cppscripts/process_posts_embeddings.pysrc/Makefiletest/rag/Makefiletest/tap/tests/Makefiletest/tap/tests/unit/Makefile
💤 Files with no reviewable changes (13)
- Makefile
- lib/Makefile
- doc/GENAI.md
- doc/sqlite-rembed-integration.md
- lib/Admin_Bootstrap.cpp
- doc/posts-embeddings-setup.md
- doc/MCP/Vector_Embeddings_Implementation_Plan.md
- doc/SQLITE-REMBED-TEST-README.md
- doc/sqlite-rembed-examples.sh
- doc/sqlite-rembed-demo.sh
- doc/sqlite-rembed-test.sh
- doc/sqlite-rembed-examples.sql
- scripts/process_posts_embeddings.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{h,hpp,cpp}
📄 CodeRabbit inference engine (CLAUDE.md)
Use PascalCase for class names with protocol prefixes (MySQL_, PgSQL_, ProxySQL_)
Use snake_case for member variables
Use UPPER_SNAKE_CASE for constants and macros
C++17 is required; use C++17 features in codebase
Use conditional compilation via
#ifdefPROXYSQLGENAI,#ifdefPROXYSQL31, and related feature flagsUse RAII for resource management in C++ code
Use jemalloc for memory allocation
Use pthread mutexes for synchronization and std::atomic<> for counters
Files:
lib/proxy_sqlite3_symbols.cpp
lib/**/*.cpp
📄 CodeRabbit inference engine (CLAUDE.md)
Follow one class per file structure in lib/ directory
Files:
lib/proxy_sqlite3_symbols.cpp
🧠 Learnings (11)
📓 Common learnings
Learnt from: CR
URL:
File: CLAUDE.md:undefined-undefined
Timestamp: 2026-04-11T18:22:12.191Z
Learning: Consider implications of changes to hot paths and performance-critical code
Learnt from: CR
URL:
File: CLAUDE.md:undefined-undefined
Timestamp: 2026-04-11T18:22:12.191Z
Learning: Follow the three-stage GNU Make build pipeline: deps → lib → src
Learnt from: CR
URL:
File: CLAUDE.md:undefined-undefined
Timestamp: 2026-04-11T18:22:12.191Z
Learning: Feature tiers are controlled via flags: PROXYSQL31 for v3.1.x features, PROXYSQLGENAI for v4.0.x features (which implies PROXYSQL31)
📚 Learning: 2026-04-11T05:43:20.598Z
Learnt from: CR
Repo: sysown/proxysql PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-11T05:43:20.598Z
Learning: Applies to lib/**/*.{cpp,h,hpp} : Use conditional compilation via `#ifdef PROXYSQLGENAI`, `#ifdef PROXYSQL31`, and similar feature flags for feature tiers
Applied to files:
CLAUDE.md.gitignoretest/tap/tests/unit/Makefilelib/proxy_sqlite3_symbols.cppsrc/Makefiletest/tap/tests/Makefiledeps/Makefiledocs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md
📚 Learning: 2026-04-11T05:43:20.598Z
Learnt from: CR
Repo: sysown/proxysql PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-11T05:43:20.598Z
Learning: See `doc/agents/project-conventions.md` for ProxySQL-specific rules including directories, build, test harness, and git workflow
Applied to files:
CLAUDE.mddeps/Makefile
📚 Learning: 2026-04-01T21:27:03.216Z
Learnt from: wazir-ahmed
Repo: sysown/proxysql PR: 5557
File: test/tap/tests/unit/gtid_set_unit-t.cpp:14-17
Timestamp: 2026-04-01T21:27:03.216Z
Learning: In ProxySQL's unit test directory (test/tap/tests/unit/), test_globals.h and test_init.h are only required for tests that depend on the ProxySQL runtime globals/initialization (i.e., tests that exercise components linked against libproxysql.a). Pure data-structure or utility tests (e.g., ezoption_parser_unit-t.cpp, gtid_set_unit-t.cpp, gtid_trxid_interval_unit-t.cpp) only need tap.h and the relevant project header — omitting test_globals.h and test_init.h is correct and intentional in these cases.
Applied to files:
CLAUDE.mdtest/tap/tests/unit/Makefiletest/tap/tests/Makefiledeps/Makefile
📚 Learning: 2026-04-11T13:17:55.508Z
Learnt from: renecannao
Repo: sysown/proxysql PR: 5607
File: doc/GH-Actions/README.md:13-18
Timestamp: 2026-04-11T13:17:55.508Z
Learning: When using GitHub-flavored Markdown headings, be aware that an em-dash surrounded by spaces (written as ` — `) affects the generated anchor/slug: GitHub replaces spaces with hyphens and removes non-alphanumeric punctuation, which can produce double hyphens (e.g., `## Foo — bar` → anchor `#foo--bar`, not `#foo-bar`). If you reference these anchors (e.g., internal links), ensure the expected slug matches this behavior.
Applied to files:
CLAUDE.mddoc/SQLite3-Server.mddocs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md
📚 Learning: 2026-04-11T13:17:55.509Z
Learnt from: renecannao
Repo: sysown/proxysql PR: 5607
File: doc/GH-Actions/README.md:13-18
Timestamp: 2026-04-11T13:17:55.509Z
Learning: When reviewing GitHub-flavored Markdown links/anchors, remember that heading-to-anchor slug generation treats spaces as hyphens and removes punctuation. If a heading contains an em-dash surrounded by spaces (e.g. ` — `), the slugs can legitimately include a double hyphen where the two surrounding space-runs become `-` on either side of the removed em-dash (e.g. `...vocabulary--read...`). Do not flag double-hyphens in anchor links for em-dash-containing headings as errors; they reflect GitHub’s correct slug behavior.
Applied to files:
CLAUDE.mddoc/SQLite3-Server.mddocs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md
📚 Learning: 2026-03-26T16:38:58.553Z
Learnt from: yuji-hatakeyama
Repo: sysown/proxysql PR: 5548
File: lib/mysql_connection.cpp:1837-1843
Timestamp: 2026-03-26T16:38:58.553Z
Learning: In `lib/mysql_connection.cpp`, when reviewing `SHOW WARNINGS` handling, treat the digest source as an intentional design choice: both `update_warning_count_from_connection()` and the `add_eof()` call under `ASYNC_USE_RESULT_CONT` detect warnings using `myds->sess->CurrentQuery.QueryParserArgs.digest_text` (comment-stripped digest text). This is expected to fail/behave differently when `mysql-query_digests_keep_comment=1` (digest_text includes comments) or when `mysql-query_digests=0` (digest_text unavailable). Do not require a change unless the regression test coverage is expanded (noting `reg_test_5306-show_warnings_with_comment-t` explicitly excludes these configurations as an accepted limitation).
Applied to files:
.gitignore
📚 Learning: 2026-04-11T05:43:20.598Z
Learnt from: CR
Repo: sysown/proxysql PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-11T05:43:20.598Z
Learning: Applies to test/tap/tests/unit/**/*.cpp : Unit tests in `test/tap/tests/unit/` must link against `libproxysql.a` and use `test_globals.h` and `test_init.h`
Applied to files:
test/tap/tests/unit/Makefiletest/tap/tests/Makefile
📚 Learning: 2026-04-11T05:43:20.598Z
Learnt from: CR
Repo: sysown/proxysql PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-11T05:43:20.598Z
Learning: Applies to test/tap/**/*.cpp : Use TAP (Test Anything Protocol) for tests with Docker-based backend infrastructure
Applied to files:
test/tap/tests/Makefile
📚 Learning: 2026-04-11T05:43:20.598Z
Learnt from: CR
Repo: sysown/proxysql PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-11T05:43:20.598Z
Learning: Applies to test/tap/tests/**/*(test_*.cpp|*-t.cpp) : Test files follow the naming pattern `test_*.cpp` or `*-t.cpp`
Applied to files:
test/tap/tests/Makefile
📚 Learning: 2026-04-11T13:16:05.854Z
Learnt from: renecannao
Repo: sysown/proxysql PR: 5607
File: doc/GH-Actions/README.md:13-18
Timestamp: 2026-04-11T13:16:05.854Z
Learning: When validating GitHub-rendered Markdown in this repository (e.g., links that use heading anchors), account for GitHub slug behavior for headings containing an em-dash (—) surrounded by spaces: GitHub strips the em-dash and converts each surrounding space into a hyphen independently, which can produce a double hyphen (--) in the generated anchor. Therefore, do NOT flag as broken links any anchors whose expected slug contains a double hyphen specifically attributable to an em-dash surrounded by spaces in the source heading. (Example: `...vocabulary — read...` -> `...vocabulary--read...`.)
Applied to files:
doc/SQLite3-Server.md
🪛 LanguageTool
doc/SQLite3-Server.md
[grammar] ~90-~90: Ensure spelling is correct
Context: ... Test SQLite features with MySQL clients 4. Prototyping: Quick data storage and retrieval 5. ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md
[style] ~992-~992: Consider replacing this word to strengthen your wording.
Context: .... Plan #2 is a much larger undertaking and will be written as its own plan documen...
(AND_THAT)
🪛 markdownlint-cli2 (0.22.0)
docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md
[warning] 87-87: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 103-103: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 378-378: Spaces inside code span elements
(MD038, no-space-in-code)
[warning] 652-652: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 714-714: Spaces inside code span elements
(MD038, no-space-in-code)
[warning] 795-795: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4
(MD001, heading-increment)
[warning] 804-804: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (17)
test/rag/Makefile (1)
4-4:test_rag_schemalink update looks correct.Dropping
libsqlite_rembed.ahere is consistent with the PR scope and keeps the test target aligned with the remaining SQLite linkage.CLAUDE.md (1)
43-43: Feature-tier documentation update is aligned with the code changes.Removing the Rust-toolchain note from the AI/MCP tier is consistent with the build-system cleanup in this PR.
.gitignore (1)
4-6: Good ignore rule addition for local worktree metadata.Adding
.worktrees/is a safe cleanup improvement and does not conflict with this PR’s dependency removals.test/tap/tests/unit/Makefile (1)
115-117:PROXYSQLGENAIunit-test link inputs are updated correctly.Keeping
vec.oand removing rembed fromSTATIC_LIBSmatches the intended GenAI path after this removal PR.src/Makefile (1)
177-179:srclinkage change is correct for GenAI builds.This keeps sqlite-vec support while removing the obsolete rembed artifact from
LIBPROXYSQLAR.doc/SQLite3-Server.md (1)
90-92: Use-case list renumbering is clean and consistent.The edited sequence reads correctly after removing embedding-generation/rembed-specific items.
test/tap/tests/Makefile (3)
82-84:STATIC_LIBSupdate underPROXYSQLGENAIis correct.This properly retains sqlite-vec linkage while removing rembed from the test link path.
183-183:anomaly_detection-tGenAI link command remains coherent after cleanup.The command now reflects the vec-only model and stays aligned with the rest of this PR.
211-211: GenAI test targets were consistently migrated to vec-only linkage.The updated target commands remove rembed references in all touched spots and keep link inputs consistent.
Also applies to: 230-230, 240-240, 250-250
lib/proxy_sqlite3_symbols.cpp (1)
53-59:proxy_sqlite3_vec_initgating remains correctly structured.The updated section keeps GenAI-specific sqlite-vec initialization explicit and avoids reintroducing removed rembed hooks.
deps/Makefile (2)
52-54: LGTM!The
sqlite-rembedtarget is correctly removed from thePROXYSQLGENAI=1targets list while preservingsqlite-vec. This aligns with the PR objective to remove the Rust-based extension while keeping the C-based vector extension.
280-284: LGTM!The
sqlite3target dependency graph is correctly updated to removesqlite3/libsqlite_rembed.awhile preservingsqlite3/sqlite3/vec.ofor the GENAI build. The conditional structure maintains the three-stage build pipeline integrity. Based on learnings: "Follow the three-stage GNU Make build pipeline: deps → lib → src".docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md (5)
1-29: LGTM!The plan header clearly establishes the goal (remove sqlite-rembed and Rust dependency), explains the architecture rationale (dead-code deletion based on permanently-NULL
proxy_sqlite3_rembed_init), and documents the staged approach ensuring buildability at each commit. The prerequisites and out-of-scope sections properly bound the work.
31-70: LGTM!The file structure tables comprehensively document what files to modify, delete, and leave untouched. The responsibilities column clearly specifies the exact changes needed for each file, and the "Files NOT touched" section correctly identifies
sqlite-vecand related files that should be preserved.
72-135: LGTM!Task 1 correctly establishes the baseline by verifying the dead-code claim through grep patterns that confirm
proxy_sqlite3_rembed_init = NULLand the null-guarded call site. The verification steps are concrete with expected outputs, making it easy to confirm pass/fail conditions.
458-624: LGTM!Task 5 is the pivotal task where the Rust dependency is removed. The step-by-step removal of the toolchain check, SQLITE3_* exports, build rule, and phony target is well-ordered. The verification in Step 8 correctly checks for absence of cargo/rustc output during build, which definitively proves the Rust dependency is gone.
855-947: LGTM!Task 9 provides thorough end-to-end verification. The PATH filtering technique (Step 3) to explicitly hide
rustc/cargofrom the build environment is an excellent way to definitively prove the Rust dependency is removed. The smoke tests for the binary (version check, minimal startup) confirm no runtime regressions.
There was a problem hiding this comment.
Code Review
This pull request removes the sqlite-rembed extension and the associated Rust toolchain dependency from ProxySQL. The changes include deleting the vendored Rust crate, removing build rules and environment variables from the Makefiles, and cleaning up source-level hooks and documentation. One improvement opportunity was identified in the test Makefile to simplify a redundant conditional block created by these removals.
| ifeq ($(PROXYSQLGENAI),1) | ||
| $(CXX) -DEXCLUDE_TRACKING_VARIABLES $< ../tap/SQLite3_Server.cpp -I$(CLICKHOUSE_CPP_IDIR) $(IDIRS) $(LDIRS) -L$(CLICKHOUSE_CPP_LDIR) -L$(LZ4_LDIR) $(OPT) $(OBJ) $(MYLIBSJEMALLOC) $(MYLIBS) $(STATIC_LIBS) $(CLICKHOUSE_CPP_LDIR)/libclickhouse-cpp-lib.a $(CLICKHOUSE_CPP_PATH)/contrib/zstd/zstd/libzstdstatic.a $(LZ4_LDIR)/liblz4.a $(SQLITE3_LDIR)/../libsqlite_rembed.a -lscram -lusual -Wl,--allow-multiple-definition -o $@ | ||
| $(CXX) -DEXCLUDE_TRACKING_VARIABLES $< ../tap/SQLite3_Server.cpp -I$(CLICKHOUSE_CPP_IDIR) $(IDIRS) $(LDIRS) -L$(CLICKHOUSE_CPP_LDIR) -L$(LZ4_LDIR) $(OPT) $(OBJ) $(MYLIBSJEMALLOC) $(MYLIBS) $(STATIC_LIBS) $(CLICKHOUSE_CPP_LDIR)/libclickhouse-cpp-lib.a $(CLICKHOUSE_CPP_PATH)/contrib/zstd/zstd/libzstdstatic.a $(LZ4_LDIR)/liblz4.a -lscram -lusual -Wl,--allow-multiple-definition -o $@ | ||
| else | ||
| $(CXX) -DEXCLUDE_TRACKING_VARIABLES $< ../tap/SQLite3_Server.cpp -I$(CLICKHOUSE_CPP_IDIR) $(IDIRS) $(LDIRS) -L$(CLICKHOUSE_CPP_LDIR) -L$(LZ4_LDIR) $(OPT) $(OBJ) $(MYLIBSJEMALLOC) $(MYLIBS) $(STATIC_LIBS) $(CLICKHOUSE_CPP_LDIR)/libclickhouse-cpp-lib.a $(CLICKHOUSE_CPP_PATH)/contrib/zstd/zstd/libzstdstatic.a $(LZ4_LDIR)/liblz4.a -lscram -lusual -Wl,--allow-multiple-definition -o $@ | ||
| endif |
There was a problem hiding this comment.
The ifeq ($(PROXYSQLGENAI),1) block for the anomaly_detection-t target is now redundant. Since libsqlite_rembed.a has been removed and the conditional inclusion of vec.o is already handled within the STATIC_LIBS variable (at lines 82-84), the compilation commands in both branches are identical. You can simplify this by removing the conditional block and keeping a single command.
anomaly_detection-t: anomaly_detection-t.cpp $(TAP_LDIR)/libtap.so
$(CXX) -DEXCLUDE_TRACKING_VARIABLES $< ../tap/SQLite3_Server.cpp -I$(CLICKHOUSE_CPP_IDIR) $(IDIRS) $(LDIRS) -L$(CLICKHOUSE_CPP_LDIR) -L$(LZ4_LDIR) $(OPT) $(OBJ) $(MYLIBSJEMALLOC) $(MYLIBS) $(STATIC_LIBS) $(CLICKHOUSE_CPP_LDIR)/libclickhouse-cpp-lib.a $(CLICKHOUSE_CPP_PATH)/contrib/zstd/zstd/libzstdstatic.a $(LZ4_LDIR)/liblz4.a -lscram -lusual -Wl,--allow-multiple-definition -o $@
- Remove stale comment reference to rembed in AI_Features_Manager.cpp - Remove redundant ifeq/else/endif in anomaly_detection-t target (both branches identical after libsqlite_rembed.a removal)
|



Summary
proxy_sqlite3_rembed_initwas permanentlyNULLinlib/proxy_sqlite3_symbols.cppwith aTODOcomment admitting the author couldn't get header inclusion working. Thesqlite-rembedsqlite extension was compiled, vendored, and linked intolibproxysql.a+ test binaries, but its sole caller inlib/Admin_Bootstrap.cpp:619was null-guarded — so the extension was never registered at runtime in any tier, stable or GENAI. This PR removes the dead source code, the vendoredsqlite-rembed-0.0.1-alpha.9.tar.gz, thelibsqlite_rembed.abuild rule, and everylibsqlite_rembed.areference fromdeps/,src/,lib/, and test Makefiles.sqlite-rembedwas the only consumer ofrustc/cargoin the tree. With it gone, the Rust toolchain detection block indeps/Makefileand theSQLITE3_*env exports that existed solely for the cargo build also go.PROXYSQLGENAI=1builds no longer require Rust.CLAUDE.mdand the top-levelMakefiledocumentation are updated to drop the "(requires Rust toolchain)" claim.`sqlite-vec` (a C extension, no Rust involvement) is preserved unchanged. Full implementation plan committed at `docs/superpowers/plans/2026-04-11-remove-sqlite-rembed-and-rust.md`.
Test plan
Commits
9 commits on top of `v3.0`, each self-contained so every commit leaves the tree buildable:
Pre-existing issues noticed but NOT addressed in this PR
Flagging for separate triage so they don't get lost:
Summary by CodeRabbit
Chores
Documentation