What Shipped | May 10-31, 2026
Three-week catch-up. Kiwi shipped multiple major features, Snipe got a shared database layer, the inference stack got a GGUF vision backend, and we published our public AI positions.
Shipped
Kiwi
- Purple Carrot scraper: Weekly recipe corpus harvest via the Wayback Machine, with a hardened ingest pipeline and shared logging. Runs on cron. Recipes land in the corpus DB without manual intervention.
- ActivityPub federation + Mastodon OAuth (kiwi#113): Kiwi can now federate recipe activity over ActivityPub and authenticate via Mastodon. Community-first feature for the self-hosting audience.
- Ask tab: Natural-language recipe search with session history. Type a question, get recipes — no structured query needed.
- Recipe dedup and variation clustering (kiwi#119): Submitted recipes are checked for similarity before storing. Variations cluster together rather than creating duplicate entries.
- SSE streaming for cold-start progress: Long-running recipe scan and LLM operations now stream progress events to the UI instead of blocking.
Snipe
- Postgres shared backend: Major architecture piece. SharedTableProtocol, SnipeSharedStore, and Store.clone() give Snipe a dual-backend model (SQLite local, Postgres shared) for sellers, market comps, and reported sellers. Groundwork for multi-user and fleet deployments.
- cf-orch task routing: Trust photo analysis and query translation now route through the inference layer's task endpoint for cloud users, falling back to local LLM for Free tier.
Peregrine
- cf-orch task-routed backends live: LLM calls route by task type through the inference layer rather than hardcoded model names.
Inference infrastructure
- GGUF vision backend: Qwen2.5-VL running via llama.cpp on both Heimdall and Sif nodes. Multiple hardening commits: multi-GPU tensor_split to avoid VRAM OOM during clip warmup, image resize to 1288px max, n_ctx bumped to 8192 for multimodal, port moved to avoid Docker conflicts. Health endpoint returns 503 on model load failure so the coordinator can evict cleanly.
- Task-based routing complete: Models selected by capability type across the cluster. Kiwi recipe scan and OCR, Snipe photo analysis, and Peregrine LLM calls all route this way now.
- Muninn WireGuard watchdog: Automatic reconnect for the Muninn node when the VPN tunnel drops.
circuitforge-core (MIT)
- v0.21.0: Task-based cf-orch allocation in LLMRouter. Products call
router.complete(task="recipe_scan")and the router handles node selection, VRAM allocation, and fallback. - cf-video module: Marlin-2B FastAPI service with mock backend and test suite.
- Community module: Recipe dedup support — similarity FK, search_similar_posts, migration 006.
Website
- Published Our AI Positions — stated position on LLM use, training data provenance, labor, energy/compute, and human oversight. Team-reviewed.
- Privacy Policy hardened: government compelled disclosure carve-out, California-statute breach notification language, specific 30-day timeframes replacing vague language.
- Terms of Service: "reasonable notice" for tier changes replaced with specific 30-day notice language.
- Legal pages now load content on first visit with a proper grid table of contents.
- Roadmap updated: Linnet promoted to beta, Turnstone and Pagepiper confirmed beta, Robin added as concept.
- Product renames applied across the org: falcon→harrier, harrier→rufous, merlin→raven, egret→plover.
All active READMEs: LLM development disclosure added — built with LLM assistance, now stated explicitly.
Ideas in Progress
- Kiwi: flavor molecule pairing — matching ingredients by shared flavor compound profile (FlavorDB, ~35,000 molecules). Substitution and pairing suggestions based on molecular kinship rather than category. Filed as kiwi#146.
- Kiwi: cooking rescue assistant — rules engine for dishes gone wrong (too salty, too sour, curdled). Deterministic chemistry layer handles the known fixes; LLM handles dose calibration and honest "give up and pivot" guidance. Filed as kiwi#147.
- Waxwing: Gardening assistant placeholder repo built out with companion planting, light mapping, Home Assistant and Orbit B-hyve irrigation control, LoRa/MQTT/RF sensor integration, fertilization scheduling, soil composition suggestions, and repotting assessment.
Next
- Beta tester calls for Peregrine, Kiwi, and Snipe
- Kiwi recipe engine: corpus hot-reload (kiwi#144), LLM tier gating (kiwi#140)
- cf-orch task routing stabilization
CircuitForge builds privacy-first, accessibility-first tools for the tasks the system made hard on purpose. Everything runs locally by default. circuitforge.tech