Skip to content

v2026.5.120

Choose a tag to compare

@github-actions github-actions released this 24 May 17:59
· 1227 commits to main since this release

Features

  • cleo tree --human: default footer legend (icons + counts) — JSON unchanged (T10114)
  • B1 typed render contracts — TreeResponse, TableResponse, ListResponse, RenderableEnvelope (T10126) (T10138) (T10139) (T10140) (T10141) (#531)
  • B2 typed icon enums — StatusIcon, KindIcon, BadgeIcon, RelationIcon with ASCII fallback (T10127) (#543)
  • B3 static UI primitives — Tree, Table, Section, Badge, Legend in @cleocode/animations/render (T10128) (T10142) (T10143) (T10144) (T10145) (T10146) (#549)
  • B5 renderEnvelopeForHuman() public API + (command, kind) → renderer registry + generic fallback (T10130) (#544)
  • B9 generic cleo tree — walks parent + groups edges to full depth, KindIcon + ⊂ relation prefix (T10134) (#563)
  • Extend attachments table with 7 docs-provenance columns + 2 indexes mirroring brain_decisions supersession pattern (T10158 / Saga T9855 / E12) (T10158)
  • core,docs: atomic ID-numbering utility — replaces fs-readdir slug allocation (T10159 / Saga T9855 / E12; absorbs T10153) (T10159)
  • doc body schema validation per DocKind (requiredSections[]) with --strict gate — absorbs T10154 (T10160)
  • cleo docs update — in-place update with version history (T10161 / Saga T9855 / E12.C4) (T10161)
  • cleo docs supersede — atomic SQLite transaction that flips lifecycle_status to 'superseded' on the old row and links both rows via the supersedes/superseded_by self-FK pointers (T10162 / Saga T9855 / E12) (T10162)
  • cleo docs find --similar — surface llmtxt rankBySimilarity over an existing seed doc (T10163)
  • backfill adr-index.jsonl into attachments + freeze JSONL writer (T10165 / Saga T9855) (T10165)
  • docs provenance graph contract — DocProvenanceResponse, ProvenanceNode discriminated union, edge relations (T10166 / Saga T9855 / E12) (T10166)
  • ct-documentor update vs supersede vs create decision tree (T10168)
  • CI gate: docs similarity lint blocks PRs adding near-duplicate docs (T10170)
  • cleo backup recover brain CLI verb + operator runbook (Saga T10281 SG-BRAIN-DB-RESILIENCE) (T10304)
  • db-inventory SSoT artifact + contracts type (T10305)
  • cleo doctor db-substrate — fleet/integrity/orphan walker (Saga T10281 / Epic T10282) (T10307)
  • Orphan project-root DB detection in cleo doctor db-substrate (Saga T10281 / E1) (T10308)
  • cleo doctor legacy-backups — retention walker + ADR-013 §9 policy (Saga T10281 / Epic T10282) (T10309)
  • doctor db-substrate: per-DB pragma drift detection (Saga T10281 / Epic T10283) (T10310)
  • cleo doctor db-substrate — per-DB Drizzle migration coverage cross-check (Saga T10281 / Epic T10283) (T10311)
  • Pin SQLite version + reference upstream bug-tracker in specs/sqlite-pragmas.json (T10313)
  • ratify .cleo/backups/sqlite/ as the canonical SQLite backup path (T10315)
  • vacuumIntoBackupAll covers every DB_INVENTORY entry (Saga T10281 / Epic T10284 / E3-BACKUP-RECOVERY) (T10317)
  • Generalise the brain.db recovery pipeline to cleo backup recover <role> for every DB in DB_INVENTORY (Saga T10281 / Epic T10284) (T10318)
  • cleo backup verify — per-DB freshness + integrity walker (T10319)
  • doctor db-substrate: cross-DB orphan-row report (5 invariants I1-I5) (T10323)
  • schema: @cross-db JSDoc tag + lint gate + ADR-068 charter rule (Saga T10281 / Epic T10285 E4-DB-CROSS-LINKS) (T10324)
  • extend TaskType union to include 'saga' per ADR-083 §2.5 (Saga T10326 W1.A) (T10328)
  • widen TASK_TYPES Drizzle enum + reversible saga migration (T10329)
  • retype assertSagaInvariantI3/I5/I7 against SagaTask with dual-shape window (T10330)
  • central invariants registry + ADR-073 I1-I8 registration (T10335)
  • enumerate ADR-070 ORC-### codes + register in central substrate (T10336)
  • R3 Zod schema for ADR-051 evidence atom grammar + GATE_EVIDENCE_REQUIREMENTS (Saga T10326) (T10337)
  • cleo doctor --audit-invariants walks central INVARIANTS_REGISTRY (Saga T10326 R6) (T10340)
  • R8 — auto-render docs/registry/INVARIANTS.md from INVARIANTS_REGISTRY + CI drift gate (T10342)
  • brain writer-locking: single-writer chokepoint via worker thread (Saga T10281 / Epic E5) (T10351)
  • cleo docs add strict flag validator (closes T10238) (T10359)
  • T10360 E3.2: cleo docs add --type adr auto-numbers via allocator (closes T10153) (T10360)
  • T10361 E3.3: docs add similarity warn (closes T10167) (T10361)
  • T10366 E2.1: DocKind Writer Registry foundation (T10366)
  • T10367 E2.2: cleo docs add --type changeset delegates to writeChangesetEntry (T10367)
  • feat(docs): wire slug allocator preflight into docs add CLI (T10386 recovery) (T10386)
  • T10388 E1.3: cleo changeset add wires allocator + E_SLUG_RESERVED parity (T10388)
  • T10392 E1.1: central slug allocator chokepoint (T10392)
  • spawn: wire lint-changesets gate into spawn prompt (T10448)
  • TemplateManifest contract types + Zod schemas (Saga T9855 / ADR-076) (T9875)
  • ConfigManifest types + 4 built-in entries with merge precedence (Saga T9855 / ADR-076) (T9876)
  • SSoT template registry over TemplateManifest (T9877)
  • feat(core): resolveCleoConfig + ConfigManifest registry with precedence chain (T9878 / Saga T9855) (T9878)
  • cleo templates {list,show,install,upgrade,diff,validate} CLI namespace (T9886 / Saga T9855 / E4) (T9886)
  • cleo config {show,get,set,validate,drift-check} CLI namespace wrapping the SSoT ConfigManifest registry (T9876+T9878). Adds --scope global|project|merged on read verbs and --type string|number|boolean|json on set. (T9887)
  • Deprecate cleo init --workflows; delegate to cleo templates install (T9888 / Saga T9855) (T9888)
  • feat(core,sentient): detectTemplateDrift Tier-2 detector for installed-template drift (T9895)
  • detectContextStaleness — Tier-2 sentient proposal when project-context.json is >30 days old (T9896)
  • feat(core,sentient): detectConfigDrift — Tier-2 proposal on cleo config validate violations (T9897 / Saga T9855 / E6) (T9897)
  • owner-approval execute-action for Tier-2 propose accept — closes Epic T9861 (T9898 / Saga T9855 / E6) (T9898)
  • Unified urgent surface across find/next/briefing/show (priority + severity dual-axis) (T9905)
  • OperationInputContract + ValidationResult + ValidationError contracts (Saga T9855 / E7) (T9914)
  • SSoT validateOperationInput over OperationInputContract via AJV (Saga T9855 / E7.2) (T9915)
  • collectMutateInput CLI transport adapter — params/file/stdin/positional precedence (T9916 / Saga T9855) (T9916)
  • cleo schema --input + --examples for agent introspection (T9918 / Saga T9855) (T9918)
  • feat(contracts,core): promote meta.suggestedNext to envelope-wide CliMeta field (T9920 / Saga T9855 / E8) (T9920)
  • Auto-populate meta.suggestedNext for tasks.{add,add-batch,update,complete,find} (Saga T9855 / E8.2) (T9921)
  • MVI projection by default for read ops; --verbose/--human/--full opts out (T9922 / Saga T9855 / E8) (T9922)
  • feat(contracts,core): rename meta._tokenEstimate -> meta.tokens (T9923 / Saga T9855 / E8) (T9923)
  • CI gate locking down process.stdout.write outside renderer SSoT (T9924 / Saga T9855 / E8) (T9924)
  • stdout=envelope-only discipline + Pino reroute to stderr (T9928 / Saga T9855 / E9) (T9928)
  • feat(cleo,core): --field flag for scalar extraction (T9929 / Saga T9855 / E9) (T9929)
  • feat(cleo): --output {envelope|id|table|count|silent} flag (T9930 / Saga T9855 / E9) (T9930)
  • core: minimal-by-default mutate envelopes — {count, ids[]} (T9931 / Saga T9855 / E9) (T9931)
  • Add --summary flag for cleo show + cleo list: render 1 line per record ( [] ) (T9932)
  • Add global --quiet flag with centralized stderr-suppression policy (logger silent, progress no-op) (T9933)
  • cleo release validate-changelog verb + workflow integration (Saga T9862) (T9937)

Fixes

  • Wire mutate:tasks.relates.remove in the operations registry so cleo relates remove succeeds (T10111)
  • auto-recover malformed brain.db via snapshot restore (T10303)
  • doctor db-substrate auto-quarantine on integrity_check failure (T10312)
  • vacuumIntoBackupAll brain backup gap — eager-open via openCleoDb chokepoint (Saga T10281 / E3-BACKUP-RECOVERY) (T10316)
  • openCleoDb brain misroute (T10397) + project_id consistency gate (Saga T10281 / Epic T10285) (T10322) (T10397)
  • validateTaskType accepts 'saga' (closes T10326 dogfood AC6 gap) (T10326)
  • cleo add/update: typed validation for --severity + --pipeline-stage at CLI dispatch (T10341)
  • retention discipline for brain_weight_history + brain_plasticity_events (T10348)
  • cleo tree --human emits canonical box-drawn tree in non-TTY (was empty) (T10352)
  • T10389 E1.4: cleo docs/changeset add worktree-aware routing (closes T10365) (T10389) (T10365)
  • HOTFIX: co-locate db-inventory.json in @cleocode/contracts to fix v2026.5.109 install regression (T10399) (T10305)
  • lifecycle hook walks task_relations.groups for saga auto-close (T10425)
  • bump CLEO-INJECTION.md size cap 400->450 to unblock main CI (T10465)
  • release.yml darwin-x64 prebuild non-blocking via continue-on-error (T10479)
  • release.yml — remove darwin-x64 from prebuild matrix (macos-13 runner pool fundamentally unavailable) (T10479)
  • bump spawn timeout 60s->180s + wire --orchestrator-defer flag (T9823) (T10430)
  • validateLabels: accept canonical uppercase task-ID labels (T9813) per ADR-073 (T9824)
  • IVTR Lead Validate-phase prompt auto-injects full per-package test guidance on infrastructure touches (T9814 precedent) (T9842)
  • lock in cleo docs add regression test (T9901 / gh-#98) (T9901)
  • cleo changeset add rejects invalid kind values + lint surfaces all violations (T9936)
  • build.mjs declares cant as a hard prereq of caamp via explicit PACKAGE_DEPS map (T9939) (T9939)
  • engine-result wrappers preserve CleoError LAFS codes across tasks domain (T9940)
  • Regression-lock cleo cancel <id> + cleo update --status cancelled on pending tasks with no verification gates (T9947)

Refactors

  • B4 migrate format-helpers (kvBlock, dataTable, truncated) from packages/cleo to packages/core/render (T10129) (#540)
  • B6 decompose system.ts (1302 LOC) into packages/core/src/render/{session,orchestration,brain} (T10131) (T10147) (T10148) (T10149) (#560)
  • B7 decompose nexus.ts (1055 LOC) into packages/core/src/render/nexus/{graph,contracts,audit} (T10132) (T10150) (T10151) (T10152) (#551)
  • B8 decompose tasks.ts (371 LOC) into packages/core/src/render/tasks (T10133) (#556)
  • Sweep production saga callsites from labels.includes('saga') to isSagaType / type==='saga' (Saga T10326 W2.B) (T10331)
  • release/invariants/registry.ts becomes consumer of central INVARIANTS_REGISTRY (T10339)
  • T10368 E2.3: audit + dedupe SSoT-only writers (T10368)
  • Rewire internal template/config resolver callers to SSoT registry (closes Epic T9857) (T9879)
  • Retrofit tasks.add, tasks.add-batch, and tasks.update to OperationInputContract (T9917 / closes Epic T9903 / Saga T9855) (T9917)

Documentation

  • B12 finalize ADR-077, update ct-cleo skill (Tier-0), add Human Render Contract to CLEO-INJECTION (T10137) (#561)
  • amend ADR-068 charter — 12-row inventory + nested-nexus flag (T10306)
  • ADR-085 — Cross-DB Invariants Catalogue (Saga T10281 / Epic T10285) (T10320) (T10285) (T10281)
  • ADR-086 — nested ~/.local/share/cleo/nexus/ disposition (BAN) + migration tool + runtime warning (Saga T10281 / Epic T10285) (T10321)
  • Amend ADR-073 §4 to retire 'Saga is NOT a TaskType' (forward-points at ADR-083 §2.5); add SG- display preservation snapshot tests (cleo renderers + core toTreeKind) proving both saga storage shapes render identically (Saga T10326 W3.B) (T10333)
  • T10353 E4.1: audit cleo docs/changeset CLI verb matrix (T10353)
  • T10354 E4.2: audit llmtxt SDK import-edge surface across CLEO (T10354)
  • T10355 E4.3: gap verdicts (CLEO vs SDK responsibility) (T10355)
  • T10356 E4.4: no upstream llmtxt issues filed (degraded path) (T10356)
  • T10357 E4.5: ADR-079 docs-SDK boundary contract (T10357)
  • T10358 E4.6: E4 closure handoff (T10358)
  • T10362 E3.4: docs add --help refresh + 5 ct-docs-* SKILL.md sync (T10362)
  • T10370 E2.5: ct-documentor + ct-docs-write reference WriterRegistry SSoT (T10370)
  • T10390 E1.5: global slug namespace decision + ADR-076 amendment AMD-001 (T10390)
  • GH #94 / T9900: document the canonical contract — cleo verify NEVER auto-completes (verify→complete is explicit) (T9900)
  • ADR-039 amendment for E8 envelope fields + LAFS conformance updates (closes Epic T9919 / Saga T9855) (T9925)
  • ADR-086 + ct-cleo + CLEO-INJECTION: CLI Output Contract (E9 closeout doc, Saga T9855) (T9934)

Tests

  • B11 renderEnvelopeForHuman perf contract — 100/1000/10000 rows + 100/1000 nodes (T10136) (#559)
  • integration regression — chokepoint auto-recovery on malformed brain.db (T10302)
  • Idempotency contract tests for brain/conduit/llmtxt/manifest DBs (Saga T10281 / Epic T10283) (T10314)
  • T10375 E5.5: verify T9976 docs->memory auto-emit payload shape (T10375)
  • Add real-registry tier-filter snapshot test locking cleo ops Tier 0/1/2 surface (T9845 closeout — T10061 already moved OPERATIONS+tier SSoT to contracts) (T9845)
  • integration tests for templates+config namespaces + cliCategory audit (closes Epic T9859 / Saga T9855 / E4) (T9889)

Chores

  • B10 CI gate 'Stdout Discipline Lint' — prevents render logic leaking back into packages/cleo (T10135) (#569)
  • T10294 spike: reproduce slug collision + RCA + decision (T10294)
  • CI gate scripts/lint-saga-label-anti-pattern.mjs blocks new labels.includes('saga')/hasSagaLabel/isSagaEpic/SAGA_LABEL sites; baseline pins 24 residuals (T10332)
  • T10338: CI gate scripts/lint-invariant-registry.mjs validates registry/ADR symmetry (Saga T10326 R4) (T10338)
  • T10363 E3.5: close absorbed tasks T10238 T10167 (T10153 pending T10360) (T10363)
  • T10369 E2.4: CI gate enforces one writer per DocKind (T10369)
  • T10371 E5.1: migrate T10179/T10203 manual-write workarounds into SSoT (round-trip parity test) (T10371)
  • T10372 E5.2: manual-write sweep audit script for canon.yml rawMdPaths (T10372)
  • T10373 E5.3: remediate sweep-identified orphan manual writes (5 files migrated into SSoT via cleo docs add with preserved slugs; round-trip parity tests added; ct-documentor SKILL.md updated) (T10373)
  • T10374 E5.4: close T9625 SG-CLEO-DOCS-CANON saga via reconcile (T10374)
  • T10376 E5.6: SG-DOCS-INTEGRITY saga closeout handoff (T10376)