Repository navigation
Releases: aktonay/snapdec
Release list
0.6.0 — imajev family as fourth local backend
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/modelsand missing/healthare handled snapdec-side; 422/500 backend errors convert to fail-closedreviewenvelopes (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.jsonthat 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_runningnow 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_daemononly 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)
Changed
- Decision 2.0 family is now selectable on Apple Silicon via the plain torch CPU path (was
runs_on_apple=Falsein 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_applecatalog 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 benchlands (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
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.8Bprovisions 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 CPUmarking 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
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
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
Added
snapdec update— checks PyPI and upgrades (uv tool → pip → pipx).initanddoctorprint 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
Fixed
- Daemon unreachable on macOS when the UDS socket path exceeded the 104-byte
sun_pathlimit: 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
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 backendsnapdec models— the hardware-gated catalog with honest stats
Trust
- uvx guard:
uvx snapdec initnow persists a realuv tool installand re-execs, so agent registrations never point into an ephemeral cache - Skill v2:
asktool 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
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