·
60 commits
to main
since this release
Pi-harness foundation release — the in-process agentic runner spine, the authority layer that makes autonomous multi-agent execution safe, and the first walking-skeleton of the self-improvement loop. All new runtime behaviour ships default-OFF behind explicit flags; the released CLI is behaviourally identical to v2026.6.12 until those flags are set. 28 PRs (#995–#1019), 120 commits, all CI-green through the PR gate.
Added
- Pi 0.78.1 in-process runner body (the keystone).
@earendil-works/pi-*@0.78.1is embedded as the in-processSkillExecutorrunner body via aPiAgentAdapter— Pi's agent loop runs in-process with ZERO authority (it is a client of the daemon, never the DB writer/session issuer/LLM broker). Lands as three sealed stages: S1 a deny-firstToolGuard+ typed exit-trap containment surface (pi-execution-env/pi-errors), S2 the adapter body + streaming through the model-runner chokepoint, and S3CleoSessionStoragepersisting overcleo.dbthrough the DB-writer lease. Default-OFF. (T11761 / T11897 / T11898 / T11899; #1005–#1007) - Per-op output-schema enforcement — closes DHQ-057. A Cleo-native Zod output-schema registry in
@cleocode/contractsplus a genericderiveOutputContractbackfill gives every operation a validated output contract (419-op catalog; 411 previously lacked one). This is the constrained-output guarantee GenKit would have provided — shipped natively, so--field <jsonpointer>resolves against a known shape. (T11762 / T11900 / T11903; #1008/#1009) - DB-writer lease (sole-writer authority) + live T5158 heal. A supervisor-arbitrated
DbWriterLeasemakes the daemon the solecleo.dbwriter (ends multi-agent write contention — the T5158 data-loss vector — and heals it live with the daemon off), with supervisor-IPC v1.1 (accept-loop router +LeaseAcquirehandler + TS lease-ipc-client). (T11627 / T11894 / T11626; #998/#1000/#1003) - Daemon-issued identity + session manifest.
session_manifesttable in globalcleo.db(+parentSessionId), daemon connection-scoped session registry (getActiveSessiondemoted to an@internalfallback), and supervisor session-stamp/ChildRegistry— the daemon now issues WHO an agent is. (T11638 / T11639 / T11640 / T11629; #995/#996/#1001) - Sealed-credential handle (E10) + single LLM resolver chokepoint (E9) + vault foundation. Credentials decrypt only at the wire — resolvers return a
SealedCredential{fetch()}so agents never see keys; oneresolveLLMForSystemchokepoint with aSystemOfUsecontract +BUILTIN_SYSTEMS_OF_USEregistry;accountstable (hermesPooledCredentialsurface) + global-salt KDF incrypto/credentials.ts. (T11746/T11752/T11753/T11754, T11745/T11747/T11748/T11750/T11751, T11709/T11710; #1010–#1012) - Agent tool registry + 18 guarded tools + closed dispatch loop. An
AgentToolRegistryextends the core tools engine with an agent-facing registry; 18 guarded tools land across terminal/file/search/git and web-search/extract/browser; the core tool-dispatch loop is extended with agent tool handlers — Pi-callable end-to-end. (T1739/T1740/T1741/T1742; #1013–#1016) - Gondolin micro-VM execution environment (optional-dep sandbox).
@earendil-works/gondolinwired as an optional dependency with an availability probe (mirroring the Playwright-optional pattern) — the sandboxedExecutionEnvfor untrusted code execution, kept out of the default install surface. (T11888 / T11908; #1018) - Self-improvement DHQ loop — walking skeleton.
cleo selfimprove run: a leased dual-scopeselfimprove_dhqtable (+ byte-identical migration + Gate-3 accessor) feeding an engine run-loop with a DHQ adapter (writer-lease-gated), draft-PR-only egress, and budget + circuit-breaker governors. Default-OFF, draft-PR-only — the first dogfooding skeleton, not yet autonomous. (T11889 / T11911 / T11913; #1017/#1019)
Changed
- 4→1 state-machine collapse — the cantbook is THE machine. The four competing execution state machines collapse to one:
cleo goautopilot now routes toexecutePlaybook(default ON),IvtrHandleris redirected onto the playbook runtime, and the deprecated machines (Tessera/WarpChain + theivtr-loopdead code) are deleted. (T11764 / T11896 / T11805 / T11807; #1002/#1004) - GenKit demoted to the optional layer above Pi. With Pi as the runner body, GenKit/Dotprompt is no longer the substrate — it is reframed as the optional output-schema/eval layer above the loop (and the output-schema half is already shipped natively via the Zod registry above). (decision D11133)