Skip to content

Releases: aktonay/snapdec

0.6.0 — imajev family as fourth local backend

Choose a tag to compare

@aktonay aktonay released this 08 Oct 03:19

Added

  • imajev family as managed local backend imajev (port 8904) — imajev-2b/4b/9b (Apache-2.0, Qwen3.5 bases, pinned SHAs). snapdec runs upstream's own pinned server with --rotations 1 — no shim authored (ADR-0011). Flat /v1/models and missing /health are handled snapdec-side; 422/500 backend errors convert to fail-closed review envelopes (NFR-4).
  • Dual download per model — base snapshot via upstream's download_model.py + PEFT adapter snapshot at a stable path (relaunches never re-download).
  • Live download progress — uv wheel progress and tqdm bars (bytes + speed) now render live during provision; slow 2–5 GB links no longer look hung.
  • Catalog entries with JevBench board 2026-09 standings as a third stat scale, never cross-compared with kev breadth-v1 or the vllm-sr card. No star anywhere (unbenched in snapdec at release); RAM floors 12/24/48 GB x86 (FP32) and 8/16/32 GB Apple (real MLX fast path).

Fixed

  • Placeholder-bundle trap — upstream tarball ships a placeholder artifacts/model.json that passed a plain .exists() gate and skipped the ~4.6 GB base download; the bundle is now json-parsed and the snapshot dir verified (fail-closed, re-verified after download).
  • Resurrect window — daemon restart declared slow-loading backends dead after a flat 120 s; ensure_running now waits kind-aware (600 s for kev/decision2/imajev) with a 10 s heartbeat and a log-path note on failure.
  • Pid-reuse guard — stop_daemon only terminates pids whose process name matches python/snapdec, so a recycled Windows PID can never kill an unrelated process.
  • (paid) label now shown only for hosted routers.

Benchmarks

First snapdec bench on imajev-2b (this PC, i5-13420H, 16 GB, CPU FP32, mini-v1 n=12): p50 14.8 s / p95 35.1 s direct-to-backend, serialized inference (upstream request lock) — docs/benchmarks/2026-10-08-imajev-2b.md. Accuracy at n=12 is wire-path regression coverage, not a model-quality claim. 4b/9b and Apple MLX stay "bench pending".

Full changelog: https://github.com/aktonay/snapdec/blob/main/CHANGELOG.md

🤖 Generated with Claude Code

0.5.1: Decision 2.0 selectable on Apple Silicon (CPU path)

Choose a tag to compare

@aktonay aktonay released this 07 Oct 02:58

Changed

  • Decision 2.0 family is now selectable on Apple Silicon via the plain torch CPU path (was runs_on_apple=False in 0.5.0). Unified-memory floors: Kai/Eos 8 GB, Sol/Nox 32 GB.
  • No MLX build exists for the family, so the new mlx_on_apple catalog flag stays False on d2 and the wizard keeps showing [slow on CPU] on Apple — Kev 0.8B (MLX) remains the recommended fast local pick there.
  • Apple latency strings say "bench pending" until a Mac snapdec bench lands (ADR-0010 §4 amendment). MPS backend still unvalidated.

Upgrade: snapdec update (or uv tool upgrade snapdec), then pick a Decision 2.0 model from snapdec init / snapdec models.

🤖 Generated with Claude Code

snapdec 0.5.0 — Decision 2.0 local backend

Choose a tag to compare

@aktonay aktonay released this 07 Oct 02:31

What's new

Decision 2.0 family as a third managed local backend (decision2, port 8903) — the vllm-sr Apache-2.0 decision models (Kai 0.6B / Eos 0.8B / Sol 2B / Nox 4B), each pinned to an exact commit SHA. The repos ship a modeling file but no server, so snapdec authors the serve shim (d2serve): loopback-only, fail-closed, wire-compatible with the existing System One contract — no daemon or protocol changes.

Highlights

  • snapdec init --backend local --model vllm-sr/Decision-2.0-Eos-0.8B provisions and serves Eos on this-machine hardware; the wizard lists what actually fits (16 GB RAM gets Kai/Eos/Sol, hides Nox).
  • Measured on i5-13420H / 16 GB / Intel UHD: Kai p50 5.8 s, Eos p50 7.4 s per item (bench runs committed under docs/benchmarks/) — honest slow on CPU marking on every variant.
  • Timeout fix: local backends now default to a 60 s request timeout (was 5 s hardcoded) — the 8-way CLI fan-out no longer produces failure envelopes against CPU-served models.
  • Windows fix: worked around an upstream vllm-sr fingerprint bug that made every Windows full-checkpoint load fail identity verification, without weakening per-file SHA-256 checks (ADR-0010 §8).

Full changelog: CHANGELOG.md. Design record: ADR-0010.

🤖 Generated with Claude Code

v0.4.2 — Official Banner Showcase & PyPI Metadata

Choose a tag to compare

@aktonay aktonay released this 04 Oct 04:50

Changes in 0.4.2

  • Showcase Artwork: Embedded official banner image across GitHub and PyPI documentation.
  • PyPI Project URLs: Added dedicated sidebar links to GitHub repository, documentation, issue tracker, and changelog.
  • 81 tests green.

v0.4.1 — CLI status footer + documentation overhaul

Choose a tag to compare

@aktonay aktonay released this 04 Oct 04:40

Changes in 0.4.1

  • Shared status footer: Added status footer to CLI mirrors matching the MCP server format (latency, model, auto decision ratio, offloaded token estimate).
  • README & SEO Overhaul: Complete documentation rewrite with visual shields, hardware-gated catalog table, ASCII sequence flow, full 9-agent integration matrix, and search engine optimization.
  • 81 tests green.

v0.4.0 — updates + status footer

Choose a tag to compare

@aktonay aktonay released this 04 Oct 04:05

Added

  • snapdec update — checks PyPI and upgrades (uv tool → pip → pipx). init and doctor print a one-line notice when a newer version exists (cached 24 h; public metadata only, no user data). Nothing auto-installs silently — upgrade is always an explicit command.
  • Status footer on every answer — after each classify/check/score/rank the agent sees one quiet line:
    · snapdec 0.4.0 · model · 38 ms · 7/12 auto · ~210 tok offloaded
  • Documented the always-on behavior: the MCP shim lazy-starts the daemon on first tool call; dead managed backends resurrect on their own. No background services.

🤖 Generated with Claude Code

v0.3.1 — macOS daemon fixes

Choose a tag to compare

@aktonay aktonay released this 04 Oct 03:50

Fixed

  • Daemon unreachable on macOS when the UDS socket path exceeded the 104-byte sun_path limit: the daemon fell back to loopback TCP, but the state file still advertised the never-bound UDS path — clients pinged a socket that didn't exist. State now records the actual transport.
  • TCP bind no longer calls socket.getfqdn (reverse DNS could hang minutes on hosts whose resolver never answers, stalling the daemon before it served anything).
  • CI green on all 3 OS × 3 Pythons.

🤖 Generated with Claude Code

v0.3.0 — Kev 1.0

Choose a tag to compare

@aktonay aktonay released this 04 Oct 03:19

What's new

Kev 1.0 support — kev-9b (DI 41.0) and kev-27b (DI 52.3, near-Jev) join the hardware-gated catalog. Pin bumped to the 1.0 tree; install uses kev[serve].

Mac story fixed — Kev 0.8B is validated on all Apple Silicon via MLX and is now the recommended local option there (DI 23.3 vs Laya ~0 zero-shot). 4B/9B on 32 GB+ Macs, 27B on 96–128 GB.

OpenRouter fix (production bug) — kev model ids were delisted upstream; the default chain is now the only live id, typesafe/jev-router.

New commands

  • snapdec bench — accuracy/Brier/latency mini-suite against your active or mock backend
  • snapdec models — the hardware-gated catalog with honest stats

Trust

  • uvx guard: uvx snapdec init now persists a real uv tool install and re-execs, so agent registrations never point into an ephemeral cache
  • Skill v2: ask tool documented, full failure-reason list, examples with payloads + sample outputs
  • MCP Registry: server.json (test-locked to the shipped version) + OIDC publish workflow

Full changelog: https://github.com/aktonay/snapdec/blob/main/CHANGELOG.md

🤖 Generated with Claude Code

snapdec v0.2.0 — snap decisions for coding agents

Choose a tag to compare

@aktonay aktonay released this 03 Oct 11:02

First usable release.

What you get

  • One-prompt wizard: PC spec + every backend your hardware can run, with honest zero-shot stats (Decision Index, OOD accuracy, latency, setup size) — pick freely within your spec
  • Local = fully automatic: Laya (PyPI) or Kev (pinned git) — venv, weights, server on 127.0.0.1, zero manual steps
  • Hosted = paste key: provider auto-detected, model auto-picked (free-first), live canary validation
  • Every detected coding agent wired up (Claude Code, Codex, Cursor, OpenCode, Antigravity, Windsurf, VS Code, Cline + cross-agent skill), exactly reversible via snapdec uninstall
  • 5 MCP tools: project_facts (deterministic) + classify/check/score/rank (calibrated, auto|review abstention)

Verified on

Windows 11 · i5-13420H · 16 GB · Intel UHD — real end-to-end: provision → daemon → live classify through local Laya.

uv tool install snapdec && snapdec init

🤖 Generated with Claude Code