v2.0
What's Changed
- Lfm tool arg fixes by @justinl66 in #596
- Gemma4 multimodal multi-turn fixes by @ncylich in #598
- LFM NPU Fallback + Tokenizer Fixes by @ParkiratS in #605
- Fix converter logic for models not on cactus huggingface by @cattermelon1234 in #608
- Graph remaining ops by @cattermelon1234 in #578
- Karen/v2 tq by @kar-m in #615
- Add fused dense INT4 MLP op for Gemma-4 E2B decode by @ncylich in #617
- inner 1 fast path by @cattermelon1234 in #618
- Hybrid INT8/FP16 decode kernel: 2× faster + sliding-window fast path by @ncylich in #625
- axis reductions fast path -> v2 by @cattermelon1234 in #629
- Pytorch capture -> cactus v2 by @cattermelon1234 in #622
- Karen/tq v2 debugging by @kar-m in #630
- added cactus download cq flag by @kar-m in #631
- align c++ official Needle inference by @jakmro in #637
- Fix CQ decode fast path for mmap weights by @ncylich in #633
- Cactus Quant Speedup by @justinl66 in #641
- Transpiler complete by @ParkiratS in #640
- fix: add missing include for Linux ARM64 builds by @ramanishka in #647
- Update Cpp pipeline with transpiler, Add Android/IOS Bindings, Fix CLI by @justinl66 in #649
- Transpiler complete by @ParkiratS in #652
- Refactor quantization parameters in CLI and publish workflow by @jakmro in #651
- Bindings by @jakmro in #653
- Cleanup V2 (Cpp Native + CLI Update) by @justinl66 in #650
- KV Cache Bugfix (reset cache, think token data shift, underflow guard) by @justinl66 in #658
- bug fixes, cleanups, docs & blog by @jakmro in #657
- Karen/v2 transcribe by @kar-m in #660
- Build system, bindings, CI cleanup, pypi & brew by @jakmro in #661
- Add native chunked prefill for transpiled LLM bundles by @ncylich in #659
- Optimize orthogonal CQ4 LM head layout by @ncylich in #663
- Make Android scheduling load-aware by @ncylich in #666
- V2 NPU Support by @justinl66 in #664
- Add v2 local HTTP server by @ncylich in #669
- Multiple model fixes by @jakmro in #673
- Jax Transpiler path by @Ayan9074 in #671
- Propagate test executable failures by @psymon-ai in #683
- Wire text/image/audio embeddings on the v2 transpiler; add /v1/embeddings by @ncylich in #676
- Full implmentation into Gemma4 by @ParkiratS in #668
- Jaxtranspilerpath by @Ayan9074 in #681
- V2 by @HenryNdubuaku in #689
- Merge cleanup by @jakmro in #692
- Long-context: rolling KeyDiff KV-cache compaction + chunked prefill by @ncylich in #686
- Correct docs to match current code by @ncylich in #696
- Karen/needle v2 by @kar-m in #690
- Karen/gemmma multiturn template by @kar-m in #711
- fixed needle rope bug, moved repeated rope table instantiations from … by @kar-m in #713
- added language model embed component by @kar-m in #714
- engine+graph: thread-safe last_error + JSON option-parse hardening by @ncylich in #702
- Fix Gemma 4 NPU vision encoder on non-square images by @jakmro in #718
- rag interface fix for lm embeddings by @kar-m in #719
- bindings: JNI & React-Native FFI memory-safety by @ncylich in #708
- convert/CLI: conversion & tokenizer robustness by @ncylich in #707
- transpiler: op routing, fusion & JAX-capture correctness by @ncylich in #706
- transpiler: JAX attention causality + reduction precision, attention-output layout guard by @ncylich in #705
- telemetry: JSON-escape records + bound the offline event cache by @ncylich in #704
- cactus-engine: runtime correctness & memory-safety by @ncylich in #703
- Fuse dispatch for GEMV by @ncylich in #717
- Pad the chunked-prefill tail for sliding-window models by @ncylich in #716
- Fix multi-turn chat and tool-call defects across model families by @ncylich in #721
- Fix onboarding quickstart bugs and guard destructive
cactus cleanby @rshemet in #722 - convert: fold gemma4 audio projection scaling into the weight reparam by @ncylich in #723
- Parakeet-TDT NPU acceleration on the Apple Neural Engine by @ncylich in #729
- fixed lfm and qwen vl handling and run.cpp multiturn behavior by @kar-m in #728
- Simplify CLI: one bundle-resolution ladder + CQ level in list by @rshemet in #715
- gemma4: fix 16x audio soft-token magnitude on NPU via single-source scaling by @ncylich in #726
- readme: add Parakeet decode tps numbers by @ncylich in #732
- Centralize build flags into cactus_flags; shrink libs by @jakmro in #735
- Stt streaming by @jakmro in #730
- Karen/parakeet probe by @kar-m in #739
- parakeet: honor should_stop during TDT transcription by @rshemet in #738
- squash convert &transpile, and align cli commands by @jakmro in #740
- M3 pro numbers by @ParkiratS in #742
- fix(graph): apply SIGMOID/TANH activations in MoE layer by @yus100 in #736
- gemma4: run the audio encoder correctly and fast on the Apple Neural Engine by @ncylich in #734
- Removed unnecessary null pointer checks by @wasup-yash in #724
- MOE by @ParkiratS in #727
- added cq4 optimizations to cq2 and cq3 by @kar-m in #744
- Cactus code by @jakmro in #745
- Fix C++ test build: expose vendored libs include (picojson) by @rshemet in #748
- Trie-based grammar constraints for Gemma force_tools by @rshemet in #747
- Metal Support by @jakmro in #750
- Benchmarks by @jakmro in #752
New Contributors
- @ramanishka made their first contribution in #647
- @psymon-ai made their first contribution in #683
- @yus100 made their first contribution in #736
- @wasup-yash made their first contribution in #724
Full Changelog: v1.14...v2.0