2026.7.11
KarvyLoop 2026.7.11
The bring-your-own-runtime release: pull an external AI runtime into your driver's seat as a channel citizen — while you stay the one who decides.
🔌 Cross-runtime collaboration (headline)
Bring any external headless-CLI AI runtime into KarvyLoop as a channel citizen — federate capability, not trust, not memory.
- Attach via claim-code handshake — click Add → a pending shell + one-time secret + a copy-paste command; run it in your runtime, it connects back and claims the shell (GitHub-runner-style reverse attach). Pick the runtime type + agent so multiple installed runtimes are disambiguated.
- Recipe-driven — connect a new runtime by writing a recipe (config, not code); three built-in output shapes.
- Roundtable & workflow guest seat (M2) — an external citizen joins a domain roundtable as a contributor, never a decision seat; its output is always untrusted data that never auto-enters memory — it crosses your provenance boundary only through an H2A adoption card.
- Graded-trust membership — T0 guest / T1 scoped member (deny-by-default, reads domain-public only, reversible supply), rug-pull use-time hash re-verify, and graceful scoped detach.
- Security is the floor — per-domain egress allowlist (fail-closed on all three sandbox backends), credentials never enter the subprocess env, stdout treated as possibly-secret and scrubbed, external spend metered under its own
ext:ledger source. - Management panel — 🔌-badged citizen list, liveness, delete, direct-chat, and on-demand onboarding (install from the runtime's own official source — we never bundle it).
💬 Direct-chat any role
Click a role in the roster to chat with it directly — no need to first add it to a business domain (l0/personal scope, no domain governance).
🏷️ Tag system for roles / atoms / skills
Roles, atoms, and skills now carry tags (bilingual, no vectors — keyword + overlap + LLM-tag matching). Each panel has a tag filter, so wiring an atom into a new role no longer means scrolling a wall.
🏢 Business-domain onboarding
The domains panel now splits empty vs. non-empty states: with no domains you're guided to create your first (templates as the creation path); with domains, you see the list and templates tuck into "New" — no more misleading "open" framing.
🧾 Expense / receipt handling
A resident expense clerk that recognizes receipts via OCR and reconciles them with a deterministic arithmetic solver (the receipt's own math redundancy catches model slips) — wired as role → skill → tool, plus deterministic pre-OCR image preprocessing (upscale / deskew / contrast) to rescue low-res, skewed, or faded photos.
⌨️ Karvy slash commands + CLI management
/status /doctor /url /reboot /version /help — deterministic ops with zero LLM (0 requests), intercepted only on an exact command with no trailing text or attachments. Plus a noun-verb karvyloop management surface (roles / domains / schedules / skills / tokens: list, show, create, remove).
Local-first · MIT · cross-platform (Linux / macOS / Windows). The moat is your data and crystallized skills, not the code.