Skip to content

v0.0.3

Latest

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 04 Sep 19:16
· 28 commits to main since this release

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 run submits 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 with data_source: "live".
  • Safe live writes. fsnow query write executes INSERT / MERGE / UPDATE / DELETE / COPY INTO / PUT once a profile sets WRITE_ENABLED; --dry-run previews and binds a confirmation token to (profile, SQL); WRITE_REQUIRE_CONFIRM re-arms that ceremony; DDL needs a second opt-in.
  • MCP server. fsnow mcp serve --stdio|--http exposes every read verb as an MCP tool backed by the same handlers and envelope contract as the CLI.
  • Catalog discovery + datasets. catalog scan persists a content-addressed snapshot; catalog graph renders 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-live on query run / catalog scan hard-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 (feature tui) browses the catalog snapshot, plans through the shared planner, and — with live compiled — executes planned queries; non-TTY invocations refuse typed.

Verification

  • Built by dsr on 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 capabilities0.0.3, live=true, mcp=true, selftest 7/7, doctor ok, and a typed FSNOW-2003 refusal 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 | bash

Windows: 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.