Skip to content

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 09 Jul 15:30
ebf4a37

0.1.1 (2026-07-09)

Features

  • #77 Part B Path 1 � qwen3_5_moe gate, aliases, single-stage docs (e01faf4)
  • api: add /v1/completions (OpenAI legacy completions) (#19) (d194c94)
  • api: add /v1/completions (OpenAI legacy completions) (#19) (8989b4e)
  • api: expose render_chat_prompt for standalone callers (63b5477)
  • api: non-stream chat emits tool_calls + tool_calls finish_reason (#44) (e41306f)
  • api: Ollama dialect + tool-call plumbing (9fe99ed)
  • api: OpenAI sampling params + finish_reason + streaming usage (#14) (58143e6)
  • api: OpenAI sampling params, finish_reason, streaming usage (#14) (21c15f2)
  • api: OpenAI tool calling (function calling) [cascadia-enterprise#44] (780cbf4)
  • api: parse_tool_calls for Llama + Qwen tool output (#44) (79ad3bc)
  • api: render chat_template from tokenizer_config.json (Jinja2) (339091a)
  • api: renderer forwards tools + message tool fields (#44) (150748e)
  • api: SSE streaming, logprobs, cancellation, introspection, tracing (d1e858a)
  • api: streaming emits single indexed tool_calls delta (#44) (ee140c0)
  • api: tool-calling request/response schema types (#44) (963c5c2)
  • cascadia-api: expose render_chat_prompt for in-process embedders (0382ec3)
  • cascadia-api: expose render_chat_prompt for in-process embedders (db2a3a0)
  • chunk-level n_tokens for accurate tok/s with spec-decode (7c02e55)
  • cli: add --version flag (4dd173e)
  • cli: add doctor, run, discover, and completions subcommands (acce033)
  • cli: plumb OpenVINO performance properties through all engines (525757f), closes #13
  • cli: plumb OpenVINO performance properties through the CLI (#13) (f10cf40)
  • cli: profile-devices subcommand � per-device tok/s for #41 step 1 (#45) (8a20154)
  • cli: type OV mode flags as ValueEnum; warn on ignored perf flags (db171f1)
  • cluster: mDNS discovery + master election + automatic placement (70cd54b)
  • dashboard: chat playground with streaming SSE + decode stat bar (ab266f1)
  • dashboard: cluster web UI + chat playground (tahoma-dashboard crate) (73444fd)
  • dashboard: ClusterStrip on the chat surface (191f5e7)
  • dashboard: live request/token stats + per-node system specs (2994caf)
  • dashboard: node cards + latency matrix on the Cluster page (88fcec7)
  • dashboard: scaffold tahoma-dashboard crate with /api/topology + /api/stats (560a83f)
  • dashboard: scaffold Vite + React + Tailwind SPA with cascadia design tokens (17534a5)
  • dashboard: serve dashboard alongside API in tahoma worker --api (660e13e)
  • dashboard: TCP latency probe loop populates the matrix (871c09e)
  • dashboard: use the Cascadia brand logo + favicon (70335e6)
  • dist_spec: per-round streaming (was buffering all output to one chunk) (bf0d68e)
  • download: HuggingFace model registry + pull endpoints (00f6019)
  • engine,transport,runner: pipeline-link reliability & dead-peer recovery (d10e44a)
  • engine: Engine::step returns EngineResult so failures are visible (826a01b)
  • engine: Gemma 4 runtime (--engine gemma4) � single + multi-stage pipeline-parallel (3ff7809)
  • engine: implement engine-side cancel() propagation (#15) (4634c74)
  • engine: implement engine-side cancel() propagation (#15) (e6a5ce2)
  • engine: KV cache via forward_layers_cached (ccec98c)
  • engine: real cancel on ov-runtime + mock; document trait contract (cc430ea)
  • engines: add ov-genai single-stage LLMPipeline engine (6a22922)
  • engines: add ov-genai single-stage LLMPipeline engine (0c95e1a)
  • engine: single-stage OpenVINO Runtime engine via optimum-intel (8d7551c)
  • engines: plumb OV plugin properties through ov-runtime + ov-dist-spec (ccd2aa8)
  • export: --free-source-shards for in-place re-quantization (371fbfc)
  • export: MiniMax-M2 exporter to OV-IR sparse-MoE layout (bb1f222)
  • export: NF4 (distribution-matched 4-bit) expert quant (e70f656)
  • export: per-component precision flags (--shell-quant / --head-quant) (dfda2c1)
  • export: streaming per-layer full-model export for MiniMax-M2 (8046c2f)
  • gemma4: forward cross-stage shared KV for multi-stage E2B/E4B (c4969d8)
  • gemma4: IR-surgery tool � text-only shards from OpenVINO VLM IR (899d354)
  • M3' decode prototype � 64/64 greedy parity over 2-stage chain (59a4e1f)
  • MiniMax-M2 support (single-stage OV-IR sparse-MoE) (e94ca21)
  • MVP runtime � OpenVINOEngine, Runner, OpenAI API, CLI (dbbc252)
  • ov-dist-spec: distributed speculative decoding engine (bb8f3eb)
  • ov-dist-spec: v5 shards with mask-based KV rewind (fbc19c9)
  • ov-optimum: speculative decoding via assistant_model (826485d)
  • ov-spec: manual mask-based-rewind speculative decoding (cd53c53)
  • ov-spec: per-token streaming via generator + incremental decode (2594860)
  • ov: auto-export OV IR from HuggingFace model id (9122992)
  • ov: multi-stage OV Runtime engine with stateful KV cache (0076ba9)
  • ov: per-token streaming chunks via TextIteratorStreamer (4b342d8)
  • parallel: pytorch-tp engine � column/row split + ring all-reduce (dbb5a69)
  • parallel: tensor-parallel foundation � ring all-reduce + ShardSpec (e97c741)
  • placement: cascadia run-placement � launch the heterogeneous pipeline (#41) (41662b2)
  • placement: exact memory-capped ILP solver + cascadia place (#41) (6f207cb)
  • placement: model the shared UMA pool as a global memory gate (#41) (156e73c)
  • placement: three-tier {iGPU, NPU, CPU} ILP placement (#41) (1799217)
  • profile: fingerprint-keyed profile cache � reuse a matching profile, skip re-measure (#41) (d75225f)
  • profile: per-stage per-device cost profiler � cascadia profile-stages (#41) (ce82afe)
  • qwen36 full-attention layer cut bit-exact (M2' brick 3 complete) (ecb9cad)
  • qwen36 IR-surgery probes � one-expert slice parity proven (e9a2f45)
  • qwen36 MoE semantic parity proven (M2' brick 2) (e703c82)
  • qwen36 shard exporter working � 2-stage chain validated (M2') (070a5a1)
  • qwen36 shell extraction proven bit-exact (M2' brick 3) (6f081f0)
  • qwen36-moe staged engine (M3' v1) (ad6f998)
  • run cascadia shards on the Intel NPU � single + pipeline-parallel multi-stage (#37) (74c59ab)
  • runner: concurrent generate() � share engine via lock + per-task buffers (db054e6)
  • runtime: pipeline-parallel static-KV decode across NPU stages (#37) (4681931)
  • runtime: stateless static-KV decode path for NPU shards (#37) (5bddf71)
  • rust: hard rewrite � Rust workspace replaces Python tree, all engines validated (09e732b)
  • rust: ov-runtime distributed e2e validated on v3 shards (alpha+charlie) (f2735a2)
  • rust: port ov-runtime + ov-dist-spec engines + extend OV FFI shim (b82149b)
  • rust: scaffold Rust port � workspace + foundation crates + ov-genai engine (7f259f0)
  • rust: tahoma-discovery (mDNS) + tahoma-download (registry+HF) + STATUS (a0ec75f)
  • scaffold engine plugin layer (c0754ce)
  • shard: broaden exporter architecture support � Phi-3, Gemma-2, .bin loading, MoE rejection (#58/#59/#60/#61) (62d8b48)
  • shard: broaden exporter architecture support � Phi-3, Gemma-2, .bin, MoE-reject (0faa2e7)
  • shard: dispatch gemma-4 OpenVINO-IR input to the text-surgery exporter (70e021b)
  • shard: forward NPU static-export flags through cascadia shard (14bce43)
  • shard: Gemma 4 exporter (dedicated export_gemma4.py) + dispatch (1170893)
  • shard: Gemma 4 exporter (port from rainier prototype) (a306e4b)
  • shard: NPU static-export flags + gemma-4 IR-surgery (text-only shards) (6dbbe5b)
  • shard: NPU-targeted stateless + static-shape export mode (toward #37) (f7e104f)
  • shard: partial rotary support + config-first arch rejection (reconcile #47) (014221a)
  • shard: R1-Distill alias registry + docs/architectures/r1-distill.md (22ecef5)
  • shard: R1-Distill alias registry + per-family deep-dive doc (ac4c071)
  • shard: standalone model-sharding via 'tahoma shard' (b36c9dc)
  • shard: standalone model-sharding via 'tahoma shard' (0b29362)
  • shard: support partial rotary + reject Gemma 3/4, gpt-oss, Mamba config-first (fa64a5d)
  • shard: support Qwen3 (q_norm/k_norm + decoupled head_dim) (87a0e03)
  • shim: expose input rank/shape/dtype getters on Runtime (85d2bfa)
  • sparse-moe: asymmetric M2 layer split + int4_bin->ov_ir expert converter (9f7626d)
  • sparse-moe: iGPU router-split for MiniMax-M2 shells (028a11b)
  • sparse-moe: Kimi K2.6 Rust engine � sparse top-8 dispatch + Rust shells + int4 GEMM (#7) (aedee33)
  • sparse-moe: layer-0 KV cache + pre-alloc KV + dispatch lift + multi-stage sampling (#10) (208104e)
  • sparse-moe: OV-IR shell backend for MiniMax-M2 (fd84a34)
  • sparse-moe: pipeline-parallel inference + Rust shells (#9) (8874c93)
  • sparse-moe: pipeline-parallel MiniMax-M2 across ranks (9f70298)
  • sparse-moe: pipeline-parallel MiniMax-M2 across ranks (592a5d9)
  • sparse-moe: repetition-penalty sampling + int4_bin expert backend (832d6a8)
  • sparse-moe: run MiniMax-M2 on Intel iGPUs via router-split (8431e59)
  • sparse-moe: static prompt KV-prefix cache (single-stage, opt-in) (8777680)
  • stable public API exports + drop unused import (7e3669d)
  • tool-calling: parse Qwen3 <function=&><parameter=&> XML tool-call dialect (7266dc1)
  • transport: config-settable activation recv timeout (09ac95c)
  • transport: env-configurable activation recv timeout (45f210e)
  • transport: env-configurable activation recv timeout (3ead587)
  • transport: frame-start idle ceiling for black-holed peers (62134da)
  • transport: loud, periodic feedback while waiting for a peer (d8039f4)
  • VLMPipeline support in shim + ov-genai engine (#77 Path 1) (04729ac)

Bug Fixes

  • api,topology,discovery,cli: address review � counters, specs, discovery (d200b6e)
  • api: bare-JSON tool-call requires args/params (M3 partial) (ab1ae13)
  • api: brace-balanced tool_call JSON scan (M2) (8399d1a)
  • api: build_choice requires tools_present to parse (#44) (a374e30)
  • api: legacy chat template renders only the latest user turn (01c42dd)
  • api: load chat_template.jinja sibling + enable minijinja macros (90b3c79)
  • api: per-token SSE flush � three layers were batching (ecfeec9)
  • api: reject empty chat_template.jinja + parse template once at startup (2f9d477)
  • api: reject empty prompt with 400 instead of an empty 200 (e91d12f)
  • api: render tool_call arguments as object for HF chat templates (89b0b44)
  • build: actionable error when INTEL_OPENVINO_DIR is missing or wrong (47fa446)
  • cargo fmt + accurate TargetSendHandle drop-semantics doc (3a9393d)
  • cascadia-api: render chat prompts via ChatPromptRenderer (16bbd96)
  • cli: gate NPU-only OV properties to the ov-genai engine (3bc8f5d)
  • cli: SIGTERM/SIGINT-graceful worker shutdown (2bb047b)
  • dashboard: bind a probe listener so mock-engine workers are reachable (76985a1)
  • dashboard: every worker advertises via mDNS, not just rank 0 (654e0fe)
  • dashboard: live indicator now fires � self-heartbeat + 60 s freshness window (d94f79c)
  • dashboard: mDNS presence is the liveness signal, not last_seen (ce10488)
  • dashboard: ModelPicker always renders a select (c32dd6c)
  • dashboard: SPA routing + chat error handling + UI cleanup (8b567d4)
  • dashboard: use the circle mark as the favicon (daac2fc)
  • deploy: move systemd StartLimit* to [Unit] so the restart cap applies (eb1f85b)
  • dist_spec: apply multi-EOS + post-loop truncate to spec-decode (875c181)
  • engine-mock: Ok-wrap the engine_error sentinel return (c86cd0d)
  • engine-openvino: migrate Qwen36Engine::step to EngineResult (2f6b213)
  • engine-openvino: qwen36 step propagates relay Err + parity test compiles (469da4c)
  • engine,runner: route step() Err to the failed task's stream (c8048ed)
  • engine: 1-token prompt prefill keeps the strict reply deadline (e9d4cc7)
  • engine: back off on step error; saturate prefill timeout multiply (ae458b1)
  • engine: drop cancel() dupes main's #15 already provides (3a72f5d)
  • engine: finish EngineResult migration against main's newer code (e26fab4)
  • engine: handle 3D-padded token return from wire format (7769e5a)
  • engine: is_connection_fatal covers EngineError::Io; dist-spec delegates (89a3f32)
  • export: correct partial-rotary derivation + resumable full export (5f5186f)
  • gemma4-export: asymmetric global KV heads + k_eq_v for 31B (1593d94)
  • gemma4-export: asymmetric global KV heads + k_eq_v for Gemma-4-31B (abd0808)
  • gemma4-export: guard present-but-None/0 global KV-head field (91ff356)
  • gemma4-export: init-bearing stateful KV so reset_state yields a batch-1 {1,h,0,d} state (CPU plugin + runtime) (6ce8cfa)
  • gemma4: actually remove the _grafted temp dir on Windows (5cb7ef6)
  • gemma4: emit rainier-v3 stage layout so ov-runtime loads the N>1 slices (be24567)
  • gemma4: fail on missing tokenizer.json, warn loudly on absent chat template (04be8a3)
  • gemma4: make pipeline_config.json a true completion marker (4bccd1f)
  • gemma4: mid-stage mask seq-dim from hidden_states + ship chat_template (c94c594)
  • gemma4: neutralize token_type_ids + coerce transformers-5 tokenizer_config (f0be765)
  • gemma4: only tolerate missing deps in the tokenizer-BOS regen (954dc42)
  • gemma4: relay hidden_states as f32, not f16 (07ba3e5)
  • gemma4: restore cross-KV frame-count guard + review nits (72725dc)
  • gemma4: revert KV-sink hard-fail � broke 26B heterogeneous KV (b9d34ce)
  • gemma4: review fixes � half-open layer_end, KV-sink hard-fail, guards (3c95664)
  • gemma4: slice sink-ownership by global-layer scope + shape-aware KV rewire (59936e8)
  • gemma4: surface silently-dropped sinks and the --stage safety-net bypass (a136ecc)
  • gemma4: tokenizer/ subdir + hidden_states f16 inter-stage input for ov-runtime (7e3b6a4)
  • loader: pass position_embeddings in forward_layers_cached (b826126)
  • openvino: don't close warn streak on idle first-stage Ok (f2fcd1d)
  • openvino: rate-limit gemma4 step() WARN via shared limiter (#30) (c24d83a)
  • openvino: rate-limit per-call WARN on failing step() (6d53e91)
  • openvino: rate-limit per-call WARN on failing step() (0bc9616)
  • ov-genai: populate /v1/chat/completions usage token counts (#55) (693c4fd)
  • ov-genai: populate /v1/chat/completions usage token counts (#55) (b4a58bc)
  • ov-optimum: graceful fallback when transformers spec decode incompatible (ad2ee5c)
  • ov-runtime: use HF cache only; tolerate stale bundled tokenizer (675124b)
  • placement: ignore non-finite latencies; lock tie-break/single-device/NaN with tests (fd19133)
  • placement: kill spawned workers if the launcher errors (no orphans); scope --relay-host to local (18b19d9)
  • placement: prefer slice::contains in the per-stage profiler (clippy) (5898f4e)
  • placement: profiler falls back on an unreadable device mem budget; validate --mem-headroom/--pool-gb (0026465)
  • placement: warn on memory-exhausting placements (#67 was not corruption) (e88eff5)
  • placement: warn when a placement's footprint will exhaust RAM and swap (#67) (e440333)
  • qwen36: f32 inference precision for the MoE router (96e7888)
  • qwen36: fail loud on handshake NAK instead of silent empty 200 (2d3b7da)
  • qwen36: fail loud on mid-generation backend errors (375b0f3)
  • qwen36: harden pipeline driver � empty-prompt, reply timeout, queue cap (6c4ba86)
  • release: bundle the OpenVINO redistribution notices from docs/licensing (7eda0b6)
  • release: keep dev/debug SDK files out of the runtime bundles (e48959f)
  • release: make the Linux bundle rpath cover transitive OpenVINO deps (60d313d)
  • runner,cli: relay loop exits on dead peer link instead of spinning (fe049f6)
  • runner,engine: throttle relay loop on persistently-failing step() (9582067)
  • runner: bound ChunkStream cross-task spin on repeated SAME task, not any foreign error (355fb8e)
  • runner: bound cross-task error continue in ChunkStream (925c941)
  • runner: surface engine step failures to clients as final error chunks (73d008e)
  • runtime: stop on any of the model's eos_token_ids (not just the first) (1bb10d7)
  • rust: build.rs uses lib/intel64/Release on Windows; add Linux fallback (81b747d)
  • rust: dist-spec hidden_states must be f16; expose port aliases; +7 tests (16d7c97)
  • shard: assert static NPU shapes post-compression + guard fp32 (review #2) (2482502)
  • shard: check gemma-4 IR guards before importing the surgery module (fde7171)
  • shard: fail loudly when an OV VLM IR dir has an unreadable config.json (75754f6)
  • shard: load exported shards on the OpenVINO CPU plugin via init-bearing stateful KV (2f8ac64), closes #57
  • shard: load exported shards on the OpenVINO CPU plugin via init-bearing stateful KV (#57) (ac9616f)
  • shard: pin static NPU output/hidden shapes + guard static-seq (#37) (706f3cd)
  • shard: read rope_theta from rope_parameters dict (transformers 5.x) (11b77dc)
  • shard: reject --target npu / --layer-split on gemma-4 IR path + forward --stage (de830c6)
  • shard: review hardening � gemma class selection, MoE/.bin/rotary robustness (2906820)
  • shard: say that --quantization is inherited on the gemma-4 IR dispatch (91af142)
  • shim: pass explicit monostate streamer to VLMPipeline::generate (0499ad1)
  • shim: pass integer NPU LLM properties as int64, not string (a44c74f)
  • shim: reject partial-integer NPU values; test the int64 coercion (3b535b5)
  • sparse-moe: clamp corrupt zero repetition_penalty on the wire (#14 review) (5a5155b)
  • sparse-moe: only set SNIPPETS_MODE on CPU (unblocks iGPU pipeline rank) (34c5fff)
  • sparse-moe: SNIPPETS_MODE=DISABLE � the real MiniMax-M2 coherence fix (2ecbd54)
  • sparse-moe: surface connection-fatal Err on latched worker disconnect (a64b597)
  • test: avoid clippy::approx_constant deny � replace 3.14 with 3.5 in dtype roundtrip test (a1beed7)
  • tool-calling: enable minijinja json feature for tojson filter (0abdb4c)
  • transport,engine: classify peer crash (RST) + mid-frame timeout as connection-fatal (5dd7ad0)
  • transport: deadline mid-task replies � idle-tolerance must not cover in-flight work (24ccd95)
  • transport: deadline mid-task replies to prevent chain-head wedge (9c12347)
  • transport: floor the idle ceiling at the activation recv timeout (f2ef4c8)
  • transport: idle wait for the next frame must not time out (cdb628d)
  • transport: idle-ceiling fire is connection-fatal (10d3adb)
  • transport: mid-frame recv stall is connection-fatal (71a098a)
  • transport: poison connection on failed reply; widen prefill reply budget (632683a)

Performance

  • AXPY-form sparse FFN down + on-disk transposed-weight cache (#43) (08fbd35)
  • dist-spec: async overlap target wire with draft compute (+24% throughput) (d7e5139)
  • dist-spec: async overlap target wire with draft compute (+9% long-gen, +19% K=1) (b12105b)
  • per-channel CHESS FFN sparsity thresholds (#38) (#44) (3aa7548)
  • PowerInfer port � bounded LRU + two-phase Gate-first FFN sparsity (#34) (cde70be)
  • rust: add ov-dist-spec warmup to pre-pay cold init; Rust now beats Python (260566e)
  • rust: drop f16 round-trip in worker step + document distributed perf gap (b396709)
  • rust: release-mode build is 1.75x faster on dist-spec; close 2.2x gap to 1.29x (655f6b8)
  • sparse-moe: A8 KV bf16 + C1 prefetch + SIMD multi-token int4 + spec-decode (+60% vs main) (72561f0)
  • sparse-moe: add --top-k-override + --routing-threshold flags (A3) (#29) (200ec2f)

Refactor

  • cli: compare ShardDtype with != instead of !matches! (5e04833)
  • cli: dedupe static-context default into a const + ShardDtype Eq (7eac4d1)
  • cli: engine registry + supervisor integration (8cbfdc4)
  • engines: shared HF hub helpers (262fe4d)
  • gemma4: drop dead fields inherited from the v5 clone (fea2bb1)
  • gemma4: source-id cross-KV pairing, position-on-wire, drop static path (429d88f)
  • runtime: harden + optimize the static-KV NPU path (review #2) (b01f4fa)
  • sparse-moe: layer-range CLI flag + split-path test (replace env hack) (6503fa0)

Documentation

  • add SECURITY.md with threat model and reporting policy (ff40b43)
  • add Tahoma logo to README header (ab64a2a)
  • arch: Mistral family deep-dive (mistral, NeMo, Mistral-Small 3.x) (c92ba71)
  • arch: Mistral family deep-dive (mistral, NeMo, Mistral-Small 3.x) (2a1a6bc)
  • arch: per-family support audit + architectures/ deep-dives (fbd81d5)
  • arch: per-family support audit + architectures/ deep-dives (3c8c610)
  • bump OpenVINO GenAI SDK examples to 2026.2.0.0 (2202524)
  • ci: fix pin-comment wording, expand go-public security checklist (ee13ecd)
  • clean up README.md and formatting improvements (99468e2)
  • clean up README.md and formatting improvements (88bfb25)
  • cli: document full OpenVINO --device string forms (#12) (c0c7bd7)
  • cli: document full OpenVINO --device string forms (#12) (5ac5b88)
  • correct NPU flag help + sparse-moe property-scope comment (8a8118e)
  • correct overclaims from the fix pass; rationalize docs layout (eb03f88)
  • dist-spec: correct relay-loop-exit comment (4b11927)
  • document MiniMax-M2 support, constraints, export/run (1ffc154)
  • document prebuilt release bundles and the release process (92fbca1)
  • drop H1, remove stale Phase 12 line, fix cluster section (544cbcd)
  • drop the remaining em-dashes from README (2f37d5a)
  • engine,runner: cancel contract as implementor obligation; relay-loop doc matches behavior (97c9a93)
  • engine,runner: step Err attribution, failure idiom, relay-loop throttle obligation (b9347a9)
  • exporter polish record (embeds-free mid stages, logit slice, 8/8 multi-token) (62c6ab0)
  • fix parallel-review findings � dangling private-commit/spec refs, engine list (f58631f)
  • fix post-scrub review findings (2f95d78)
  • fix scoped-review findings (9ad15c5)
  • fix two typos in the README cleanup (ef5f7dd)
  • gemma4: fix comment inaccuracies flagged in review (4eb7d65)
  • gemma4: record validated max_ops=64 rationale + base-vs-it source lesson (335f6d1)
  • gemma4: scrub internal node/prototype-script references from surgery tool (def60d5)
  • M3' prototype results � 64/64 parity, heterogeneous device map (2998d7b)
  • M3' robustness validated (streaming cadence, cancel, disconnect; E2E 5/5) (aa2a465)
  • M3' TTFT record � chunked batched prefill shipped, GPU split ruled out (b395c6f)
  • minimax-m2: correct root cause � SNIPPETS bug, not expert quant (fadc5fc)
  • minimax-m2: expert-backend perf comparison + output-quality findings (ff7c4eb)
  • minimax-m2: final perf � int4_bin+SNIPPETS-fix is fast AND coherent (b4d690f)
  • move CI badge under the Status heading (824299d)
  • onboarding overhaul � INSTALL/QUICKSTART/CONTRIBUTING, setup scripts, Docker (b01234e)
  • ov engines docstring summary (4 engines now) (9b68415)
  • ov-genai: record on-HW seed-reproducibility limitation (#14) (e525485)
  • perf: correct PERFORMANCE.md claims flagged in review (6d9c3f4)
  • placement: #41 design � measured hardware, regime analysis, ILP plan (2cac67c)
  • placement: correct overflow-tier wording + shim input-shape comment (026a70b)
  • placement: record three-regime benchmark + the UMA-spill finding (#41) (40bce33)
  • placement: update for implemented profile-stages/place/run-placement (#41) (6245212)
  • qwen3_5_moe alias comment + SHARDING.md row reflect staged-shard support (b895ac1)
  • Qwen3.6-35B-A3B sharded-support design spec (draft) (6c7eff8)
  • qwen3.6.md � CPU validation, device smoke matrix, OVMS 2026.2 install (1166782)
  • qwen3.6.md � hardware validation record (pawan-01, 2026-06-11) (92e5020)
  • qwen36 spec � M2'-0 PASSED, strategy C (all-CPU OV-IR experts) (3a82cdf)
  • qwen36 spec rev 2 � apply adversarial + feasibility review (78011f6)
  • qwen36 spec rev 5 � sparse-moe port now conditional on ISA/device probe (b593466)
  • qwen36 spec rev 6 � full rewrite from 4-angle review (incl. Codex) (fdcb1aa)
  • qwen36: drop dev-spike orphans, trim spec process-meta, add surgery README (b21052e)
  • r1-distill: pipeline-parallel verified on iGPU+iGPU AI PCs (50717e8)
  • README logo + accuracy pass (276d97b)
  • README quick start + per-engine + deploy guides (3c609d2)
  • readme: sync engines, crates, and tooling with current main (50dcfef)
  • remove ONBOARDING_RESEARCH.md (moved to rainier) (c66dc01), closes #52
  • replace fleet hostnames with neutral node labels (a3c81b5)
  • restructure README into standard OSS layout (1912bfb)
  • rust: record Phase 14 perf validation (28.75 tok/s, no regression) (c07f20c)
  • rust: STATUS.md updated with release-mode perf data + remaining-gap analysis (72eddfa)
  • scrub internal references for public release (7fc4f1a)
  • set code of conduct enforcement contact (9599719)
  • sharding: add NPU sharding guide (cc2d740)
  • sharding: add NPU sharding guide (static/stateless export + host KV ring) (6baae49)
  • status: refresh STATUS.md to current state (abcda69)
  • tool-calling validated on both serving paths (#77 Path-1 item) (8f10aee)
  • transport, engine: correct idle-wait and prefill-budget claims (1da7cd3)
  • transport: clarify frame-start wait is ceiling-bounded, not unbounded (44fe5fc)
  • transport: note recv_exact timeout is wall-clock, not idle (f58b1b0)

Testing

  • add 44 tests covering runner, api, registry, builders, cli, protocol (2c7ab02)
  • api: brace-balance parser stress (M2) (d6f61e4)
  • api: cover completions length + engine-error; note legacy logprobs shape (#19 review) (2432d14)
  • bless qwen36 parity golden (64 tokens, batched-prefill engine on pawan-01) (b68b4a6)
  • cli: pin the full NPU exporter argv as a golden vector (4d282c0)
  • e2e: address multi-node pipeline review nits (fe8ab43)
  • e2e: multi-node pipeline review follow-ups (145694c)
  • e2e: parameterize cross-node test by engine/model/device (7516544)
  • e2e: sharded multi-stage pipeline tests (loopback + cross-node via fleet) (0a2f2cd)
  • e2e: sharded multi-stage pipeline tests (loopback + cross-node via fleet) (e27dfb6)
  • export: --tiny-layers to size the synthetic M2 for pipeline tests (a98cd7f)
  • gemma4: hermetic load-guard test + clippy is_multiple_of (8ab4b11)
  • gemma4: pin dispatch fail-fasts and the surgery tool's pure seams (3663987)
  • minimax-m2: add --ov-experts probe mode (matches docs) (33cf599)
  • openvino: assert OV perf props reach the PluginConfig (bbe0985)
  • qwen36 greedy-parity regression gate (ignored; needs shards on node) (dc003cb)
  • rust: add tests-e2e integration crate + STATUS doc updates (405f3f9)
  • sparse-moe: real-model MiniMax-M2 generation smoke test (e03a601)
  • tp_group: hold ephemeral discovery sockets simultaneously (b191069)
  • transport: pin ActivationClient reply deadline and poison behavior (c3720c8)
  • transport: stress tests for idle-tolerant frame-start recv (459832f)

CI

  • add AI-PC tests workflow (OpenVINO tier on self-hosted runners) (818351a)
  • add AI-PC tests workflow (OpenVINO tier on self-hosted runners) (9c0c731)
  • add cargo-deny supply-chain gate (b614871)
  • ai-pc: run cascadia-ov-genai-shim openvino tests on the runner (1a43969)
  • build tahoma binary before test step (e2e tests exec it) (320035c)
  • Cargo.lock � minijinja json feature pulls serde_json (cf94415 follow-up) (b823acc)
  • github actions for ruff + pytest on py3.11/3.12 (35ded04)
  • harden workflows with least-privilege perms, SHA-pinned actions, timeouts (607b5c5)
  • release: automate versioning and releases with release-please (0da6c82)
  • release: build cascadia OpenVINO binary bundles for Linux + Windows (cba4b38)
  • release: cascadia binary bundles + release-please version automation (c515fe8)
  • scope security-workflow concurrency by event (921a780)
  • security hardening (perms, SHA-pinned actions, cargo-deny gate) (f46a495)

Miscellaneous

  • #77 Part A remainder � 2026.2 floor, dead deps, exporter pins (64992a4)
  • add community health files (280b5ce)
  • add OpenVINO GenAI 2026.2 support (30c8d29)
  • cargo fmt (a0d0a27)
  • deny: drop unused license allowances, fix policy comments (0151268)
  • deps: bump anyhow/memmap2 to patched releases, drop stale deny ignores (7954ac5)
  • deps: pin transformers <5.0 (c908233)
  • deps: update crossbeam-epoch to 0.9.20 (RUSTSEC-2026-0204) (f61b4de)
  • gitignore .claude/ (Claude Code local state + worktrees) (671bb27)
  • hoist rust/* to repo root (no more rust/ subdirectory) (c70fc18)
  • mark workspace crates publish = false, promote wildcard ban to deny (21b5efa)
  • openvino: demote step_first's inner failure WARN to debug (8a646cb)
  • openvino: hoist warn_limit import + correct module-doc scope (d9378f2)
  • ov-spec: default K=4 (sweet spot on Arc B390) (f2789e5)
  • public-release repo cleanup � license, docs scrub, community files (1927898)
  • remove agent instructions file; ignore local AI tool state (f9b62cc)
  • remove Python tree (Phase 12) � Rust port is the sole impl (60bfe91)
  • rename tahoma � cascadia (project rebrand) (#31) (a1962a9)
  • rust: production security hardening (Phase 14) (02b69e3)
  • scaffold project structure (a86d339)
  • scrub internal references from code comments and CI (a6b2062)
  • shard: catch r1-distill registry up to main (297bcd8)
  • shard: scrub internal codename from gemma-4 text exporter comments (50d8e77)
  • update readme image to cascadia (3314887)