Skip to content

Releases: Dicklesworthstone/franken_snowflake

v0.0.3

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 04 Sep 19:16

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.

franken-snowflake v0.0.2

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 25 Aug 01:03

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:

  • asupersync is pinned =0.3.5 but asupersync-macros drifts to 0.3.10 — held at 0.3.5.
  • the fsqlite family moved 0.1.13 to 0.1.16 while fsqlite-error drifts 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: clean
  • cargo 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.

v0.0.1

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 30 Jun 04:53

Changes since v0.0.0

fae8bed Release v0.0.1
7f38629 Refresh lockfile for release builds
c5b11c1 Refresh lockfile for release path patches
c8333c4 Fix toon patch path for release builds
006ba35 installer+docs: install.ps1 standalone-clone preflight + honest external-build README