Releases: Dicklesworthstone/franken_snowflake
Release list
v0.0.3
franken_snowflake v0.0.3
A working, clean-room Snowflake SQL API connector for Rust and coding agents: real reads and writes against live Snowflake accounts over the SQL API — no ODBC, no JDBC, no Tokio.
What v0.0.3 delivers
This release closes the gap where the v0.0.2 binaries shipped without the live/MCP feature set. Every v0.0.3 archive is built with --features live,mcp and reports live=true, mcp=true:
- Live reads.
fsnow query runsubmits a single read statement, polls the statement handle, fetches result partitions in a concurrent window (in-order assembly, early stop at--limit), and emits a deterministic JSON envelope withdata_source: "live". - Safe live writes.
fsnow query writeexecutes INSERT / MERGE / UPDATE / DELETE / COPY INTO / PUT once a profile setsWRITE_ENABLED;--dry-runpreviews and binds a confirmation token to (profile, SQL);WRITE_REQUIRE_CONFIRMre-arms that ceremony; DDL needs a second opt-in. - MCP server.
fsnow mcp serve --stdio|--httpexposes every read verb as an MCP tool backed by the same handlers and envelope contract as the CLI. - Catalog discovery + datasets.
catalog scanpersists a content-addressed snapshot;catalog graphrenders lineage (Mermaid/SVG); dataset mode plans pushed-down SQL with typed positional bindings offline, then executes live. - Receipts. Every successful live execution writes a BLAKE3 content-addressed receipt plus partition evidence and an append-only audit event;
receipt show <hash>reads it back. --require-liveonquery run/catalog scanhard-refuses (FSNOW-3003) unless the envelope is backed by the live transport.- Deterministic race coverage. The DPOR suite now races a canceller task against an in-flight exchange, proving on every interleaving that an abandoned statement still fires its remote cancel (obligation-leak oracles included).
- Opt-in TUI.
fsnow tui(featuretui) browses the catalog snapshot, plans through the shared planner, and — withlivecompiled — executes planned queries; non-TTY invocations refuse typed.
Verification
- Built by
dsron real hosts, natively: Linux x64+arm64 (trj), macOS x64+arm64 (mmini), Windows x64+arm64 (wlap, native MSVC) — one clean run at a recorded git sha, no--allow-dirty. - Every executed artifact reports
capabilities→0.0.3, live=true, mcp=true,selftest7/7,doctorok, and a typedFSNOW-2003refusal without credentials: verified on Linux natively (arm64 under qemu), on the Mac (arm64 native, x64 under Rosetta), and on the Windows host. - Pre-tag: full workspace tests, every feature lane, 18-lane clippy
-D warnings, dependency-admissibility scans (no Tokio/reqwest/hyper/axum/tower/sqlx/diesel/sea-orm in any production graph), golden CRLF checks. - Installer smoke-tested in a clean environment and in containers.
aarch64-pc-windows-msvc is linked but not executed (no ARM Windows machine available). Full run record: docs/RELEASE.md.
Install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/franken_snowflake/main/install.sh | bashWindows: install.ps1 (same release assets). First run: fsnow onboard --json orients an agent in one call; fsnow capabilities --json is the machine-readable command registry.
Credentials stay runtime-gated: set FRANKEN_SNOWFLAKE_<PROFILE>_* env handles per profile — nothing secret ever lands in config, logs, or envelopes.
franken-snowflake v0.0.2
13 commits since v0.0.1 (2026-06-30). Patch bump: standalone buildability, one connector fix, repository hygiene, dependency currency. No API changes.
Crates remain publish = false by design — this ships as a GitHub Release only, never to crates.io.
Highlights
- FrankenSuite dependencies resolve from crates.io instead of local paths, so the workspace builds outside the development fleet; the build preflight is no longer needed.
- Snowflake connector accepts typed query options.
- Planning docs,
RELEASE.md, and scratch artifacts reorganised; agent-identity leaks dropped.
Dependencies — two pinned families held uniform on purpose
A bare cargo update floats both off-pin:
asupersyncis pinned=0.3.5butasupersync-macrosdrifts to 0.3.10 — held at 0.3.5.- the
fsqlitefamily moved 0.1.13 to 0.1.16 whilefsqlite-errordrifts to 0.1.19 — held at 0.1.16 so all 20 members share one version.
Both were corrected with cargo update -p <crate> --precise <version> rather than by relaxing a pin.
Gate
cargo clippy --workspace --all-targets -- -D warnings: cleancargo test --workspace: 420 passed, 0 failed across 32 targets
Artifacts
Each archive contains both franken-snowflake and the short alias fsnow.
| asset | arch | glibc |
|---|---|---|
| aarch64-apple-darwin | Mach-O arm64 | - |
| x86_64-apple-darwin | Mach-O x86_64 | - |
| aarch64-unknown-linux-gnu | ELF aarch64 | 2.28 floor |
| x86_64-unknown-linux-gnu | ELF x86-64 | 2.28 floor |
Both Linux binaries are pinned to a glibc 2.28 floor rather than inheriting the build hosts glibc (2.42), so they run on older distributions.
Every archive was extracted and checked before upload for architecture (file), glibc floor (objdump -T), presence of both binaries, and — because a stale checkout can otherwise ship old code under a new tag — the version the binary itself reports.
Not included
No Windows assets this release. install.sh resolves only linux and darwin triples, so the documented install path is unaffected.