Delegation Wired End-to-End, MCP Connectors & the Software-Factory Loop
Acting-for delegation landed across the kernel, the MCP surface grew real connectors, and we built an autonomous sprint loop — human-gated by design.
🔑 Delegation, canonicalized (#1088, #1114)
resolveActingDid became the one canonical precedence helper for "who is this action for" — wired through chat, connections, pay, notify, registry, and profile. Every delegated write now records the actor and the principal separately: the agent acts, the human owns, and the signed record says so honestly.
🔌 MCP connectors — one door, scoped by config (#1166, #1170, #1204)
- OAuth 2.1 authorization server + an extensible
/mcpsurface — one endpoint, connectors surface as projection surfaces behind it. - RFC 7591 Dynamic Client Registration so real MCP clients (Claude Desktop) can connect without hand-provisioning.
- Media read + write tools with DID-scoped authorization — the agent can create and update content, always owner-pinned.
- Userspace documents as the control plane (#1204→#1219): scopes live as editable documents — grant-by-edit, revoke-by-delete — not hardcoded constants. First live production use: a sovereign GitHub connector path.
- Claude promoted to a first-class actor DID (#1171) — a machine identity that acts under consent, with its OAuth refresh-token chain revocable on app-authorization revoke.
🛡 Security surface hardened (#1247, #967, #966)
Route-aware frame-ancestors CSP + baseline security headers. Served /.well-known/security.txt (RFC 9116), /.well-known/fair-policy.json, and an A2A Agent Card at /.well-known/agent.json. Partial refunds for multi-ticket orders (#949). Media API hardening — timing-safe auth, DB-backed search, dynamic tool bootstrap (#351).
🖥 Local inference — the 5090 came online
The inference node moved to an RTX 5090 (32GB). A working deck of local models — a coding model, an agentic coding model, two reasoners, a fast router/summarizer, and embeddings — hot-swapped one at a time. Free, private, on-network. Serving-stack verdict: the daily driver for model management + on-demand load; a batched-throughput specialist held in reserve for firehose workloads.
🔁 The software-factory loop (Epic #1327)
An autonomous sprint loop over a tenant repo: a Product Owner agent proposes features, coder agents build the picks, CI runs the checks, and a human gate approves merge and deploy. The load-bearing invariant: green CI ≠ good feature — the loop can reach "PRs that pass every mechanical check," but the judgment "is this the right thing, built right" stays human until we have evidence to trust it. Every step is a signed event attributable to a specific identity — our dev process becomes an honest record of who did what. Graded against the public RSI ladder, it's a Level-0 delegation loop by design, and the deliberate ceiling is a feature.
🧯 Infrastructure made visible (#1322, #1323)
Hunted down a class of failure where processes ran outside process-manager control and config files had drifted from what was actually deployed — orphaned servers squatting ports while the real service crash-looped invisibly. Fixed with restart guardrails, an orphan-reaper wired into deploy, and a healthcheck cron. Reconciled both dev and prod process manifests to reality. The whole incident class is now visible instead of silent. Also: idempotent-migration fixes and a numbering-collision guard.