Repository navigation
v2026.7.1
·
3966 commits
to main
since this release
Added
ResourceGovernor— Never-OOM class-based admission core: a priority-class admission API (interactive-cli→agent-session→llm-call→test-run/scoped-build→full-build→db-heavy→background-autonomous) whose per-class slot budgets are computed at acquire time from host RAM + memory-pressure (PSI). Denials return a structured, retryableE_RESOURCE_DEFERRED(never a silent drop). Three daemon-off-capable modes (supervisor/local/off, defaultlocal) (gh#1110) (provenance: T11999)cleo orchestrate ready/wavesnow carry an additiveadmissionblock (agentBudget·admitted[]·deferred[]) so an orchestrator sizes its parallel fan-out to host capacity and retries the deferred remainder on a later pull instead of spawning a swarm that OOMs the box (gh#1113) (provenance: T12000)cleo-supervisorgains theresource_admit/resource_releaselease-ipc verbs (protocol v1.1 → v1.2) — a central per-class heavy-op concurrency arbiter that bounds builds/tests/exodus machine-wide whenCLEO_RESOURCES_MODE=supervisor; degrades to the local slot engine when the supervisor is absent (gh#1115) (provenance: T12001)
Changed
cleo orchestrate spawnacquires anagent-sessiongrant BEFORE any worktree or process is provisioned; under memory pressure it returns a retryableE_RESOURCE_DEFERREDwith no partial artifacts left behind, instead of adding to an OOM (gh#1113) (provenance: T12000)- The sentient tick and the exodus-on-open auto-migration now defer cleanly under memory pressure via the governor's
db-heavyclass (skip-not-block, recorded skip reason, no user-visible error); evidence tool-slots scale down under pressure and recover, and thefull-buildclass stays pinned to one machine-wide slot (gh#1110, gh#1111, gh#1114) (provenance: T12001)
Fixed
- Flaky
no such table: agent_registry_skills—ensureGlobalAgentRegistryDbresolved the globalcleo.dbpath twice (its own resolution +openDualScopeDb('global')'s), so under per-test module-mock churn the consolidated migration could land at a divergent path; it now routes throughopenDualScopeDbAtPath('global', dbPath)so the resolved path is the single source of truth (gh#1112) (provenance: T12019) - BRAIN observations could silently drop
sourceSessionId(and other cross-db references) —getDbreturned a cached but closed shared consolidated-cleo.dbhandle (it lacked the liveness guardgetBrainDbalready had), so the next query threwdatabase is not open, whichobserveBrain's cross-db write-guard swallowed and mistook for "session absent";getDbnow re-derives a closed handle from the live connection cache (gh#1117) (provenance: T12020)