D-5/D-6 are documentation-as-code for environment work the user owns
(custom SQLite build + vec0 fetch). Both scripts capture the full
outline — the curl, the SHA256 verify, the codesign — but require the
user to pin versions and hashes before running. Until those TODOs are
filled, both scripts exit 1 with a clear message rather than
half-running.
D-5 (build-sqlite-with-extensions.sh):
- Captures the clang flags needed for SQLITE_ENABLE_LOAD_EXTENSION=1 +
FTS5 + RTREE + threadsafe=2.
- TODOs: SQLite version, amalgamation URL, SHA256, codesign identity.
- Output: build/sqlite/libsqlite3.dylib (codesigned, ad-hoc by default).
D-6 (fetch-sqlite-vec.sh):
- Pulls the prebuilt vec0.dylib from a pinned sqlite-vec GitHub release
tag, SHA256-verifies, drops into App/Resources/vec0.dylib, codesigns.
- TODOs: release tag, SHA256, codesign identity.
- Asset naming follows sqlite-vec-${VERSION}-loadable-macos-aarch64.tar.gz;
adjust if upstream renames.
Both scripts are mode 755 and verified to fail loudly when run as-is
(stamped TODO message + exit 1). No actual fetches or builds happen
until the user fills in the pins.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>