Open the app and see what your agents did — and gate the actions that matter.
New in the app
- Today — the new default landing view: the last 24 h of agent activity as human-readable
headlines (deployed to prod, published a package, cut a release, blocked by a gate) with
routine actions rolled up, the approvals that need you, and the day's posture — receipt-chain
state, coverage, spend — in one strip. The Audit log gains a severity lens (Headline ·
Notable · Denied · per-class chips, per-hour rollups); the classic full ledger stays the
default. One shared receipt drawer everywhere: claim, signature verdict, live chain
re-check, full payload, raw signed-line export. - Action gates — seven high-stakes action classes, each behind one dial (Allow / Receipt-only
/ Approve / Deny): deploys · destructive git · publishes (+dependency installs, receipted and
aggregated) · production DB · infra · outbound sends · agent self-modification (Deny by
default — the prompt-injection vector). Enforced pre-execution in the Claude Code hook
lane as a tighten-only escalation over your rules; every decision is a signed
kriya.gate.<class>.{evaluated,held,approved,denied}receipt, chain-linked to the blocked
attempt's own action receipt. - Policy packs — Developer / Analyst / Planner: named, versioned presets over the gates,
applied to the device in one click — and the application itself is a signed
kriya.policy.pack.*receipt. Duplicate-then-edit for custom packs.
Honest scope, as always
- Gates enforce only where the pre-execution hook runs (the Claude Code lane today); receipts
from other lanes are classified and displayed — the UI says "observed lanes", never "blocked". - "Blocked"/"Held" wording appears only on explicit runtime deny/hold receipts; a plain
failed action reads "did not complete" — a policy deny and a runtime failure are
indistinguishable on that receipt alone. - Dependency installs are counted, never judged — no "unknown package" claim ships until a
first-seen ledger exists. - One policy file per device: a pack applies to the device; per-identity assignments are
bookkeeping for the launcher/fleet, and the UI labels them that way. - The payments gate card is a disabled preview — payment governance is the next release's
headline, not this one's.
Dogfood: this DMG was cut under its own governance — the build, codesign, notarization, and
publish appear as release-class headlines in the Today feed of the bundled demo dataset.
Signed with our Apple Developer ID, notarized + stapled by Apple (spctl reports
"Notarized Developer ID"). Universal binary (Apple Silicon + Intel). Verify with the .sha256
asset. The bundled kriya-hook was artifact-checked post-notarization: a .claude/settings.json
edit under a gates policy exits 2 and signs kriya.gate.self-mod.denied on the chain.
Full details: CHANGELOG · FEATURE-PROOF