What Shipped | May 10-31, 2026

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

  1. Beta tester calls for Peregrine, Kiwi, and Snipe
  2. Kiwi recipe engine: corpus hot-reload (kiwi#144), LLM tier gating (kiwi#140)
  3. 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