From faf1999485623be0130a443a65317fd0ba99ee87 Mon Sep 17 00:00:00 2001 From: CleverThis Date: Sun, 12 Apr 2026 06:50:41 +0000 Subject: [PATCH 1/2] docs(spec): align project delete JSON/YAML output with implementation The implementation (PR #6639, merged 2026-04-10) produces a simpler output for agents project delete than what the spec described: {"deleted": "local/docs", "success": true, "deleted_at": "..."} The spec previously showed a rich deletion_summary/index_cleanup/backups structure that does not match the actual implementation. Updated to reflect the actual output including the deleted_at timestamp field. Closes #7872 --- docs/specification.md | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/docs/specification.md b/docs/specification.md index dbe7bd381..b2150e2c1 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -3495,21 +3495,9 @@ Delete a project and unlink all associated resources. The resources themselves r "status": "ok", "exit_code": 0, "data": { - "deletion_summary": { - "project": "local/docs", - "resources_unlinked": 1, - "data_dir": "/repos/docs/.cleveragents" - }, - "index_cleanup": { - "text_index": "cleared", - "vectors": "240 removed", - "graph_triples": "none", - "storage_freed_mb": 12 - }, - "backups": { - "snapshot": "/backups/local-docs-2026-02-08.tgz", - "retention_days": 7 - } + "deleted": "local/docs", + "success": true, + "deleted_at": "2026-04-10T19:45:43.123456+00:00" }, "timing": { "duration_ms": 530 }, "messages": [{ "level": "ok", "text": "Project deleted" }] @@ -3523,18 +3511,9 @@ Delete a project and unlink all associated resources. The resources themselves r status: ok exit_code: 0 data: - deletion_summary: - project: local/docs - resources_unlinked: 1 - data_dir: /repos/docs/.cleveragents - index_cleanup: - text_index: cleared - vectors: 240 removed - graph_triples: none - storage_freed_mb: 12 - backups: - snapshot: /backups/local-docs-2026-02-08.tgz - retention_days: 7 + deleted: local/docs + success: true + deleted_at: "2026-04-10T19:45:43.123456+00:00" timing: duration_ms: 530 messages: -- 2.52.0 From cc12e9916cd986e2b848736fa7cc30511cfa6265 Mon Sep 17 00:00:00 2001 From: CleverThis Date: Sun, 12 Apr 2026 07:32:23 +0000 Subject: [PATCH 2/2] docs(spec): update plan tree to show full 26-char ULIDs for child plans PR #6571 (merged) updated agents plan tree to display full 26-character ULIDs for all child plan IDs instead of truncated 8-char prefixes. This enables copy-paste usability for plan correct and plan tree commands. Updated the spec to: - Show full 26-char ULIDs in tree body for subplan_spawn entries - Show full 26-char ULIDs in Child Plans table - Show full 26-char ULIDs in JSON/YAML output plan_id fields - Add a note documenting the full ULID display behavior and per-type ordinal labels in the Decision IDs panel Closes #7898 --- docs/specification.md | 48 +++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/docs/specification.md b/docs/specification.md index b2150e2c1..7710a85c0 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -14308,6 +14308,10 @@ Render the decision tree for a plan. - ``: Plan ID (required). - `--show-superseded`: Include superseded decisions. +!!! note "Full ULID Display" + + All decision IDs and child plan IDs are displayed as full 26-character ULIDs (not truncated). This ensures IDs can be copy-pasted directly into `agents plan correct ` or `agents plan tree ` without modification. The "Decision IDs (for correction)" panel uses per-type ordinal labels (e.g., "Invariant 1", "Invariant 2", "Strategy", "Parallel 1", "Spawn 1") for human-readable identification. + **Examples** === "Rich" @@ -14322,8 +14326,8 @@ Render the decision tree for a plan. │ ├─ [invariant_enforced] "All API calls over TCP must be mocked" │ │ ├─ [strategy_choice] "Prioritize auth and payments" (confidence: 0.82) │ │ ├─ [subplan_parallel_spawn] "Implement auth and payment modules, in parallel" │ - │ │ ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A │ - │ │ └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B │ + │ │ ├─ [subplan_spawn] "Write auth tests" → Plan: 01HXM9F1A2B3C4D5E6F7G8H9J0 │ + │ │ └─ [subplan_spawn] "Write payment tests" → Plan: 01HXM9F2B3C4D5E6F7G8H9J0K1 │ │ └─ [subplan_parallel_spawn] "Write tests for remaining modules" │ │ └─ ... │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ @@ -14336,12 +14340,12 @@ Render the decision tree for a plan. │ Superseded: 0 (hidden) │ ╰────────────────────────────╯ - ╭─ Child Plans ──────────────────────────────────────╮ - │ ID Phase State │ - │ ────────── ─────── ───────── │ - │ 01HXM9F1A execute processing │ - │ 01HXM9F2B execute queued │ - ╰────────────────────────────────────────────────────╯ + ╭─ Child Plans ──────────────────────────────────────────────────────╮ + │ ID Phase State │ + │ ──────────────────────────── ─────── ───────── │ + │ 01HXM9F1A2B3C4D5E6F7G8H9J0 execute processing │ + │ 01HXM9F2B3C4D5E6F7G8H9J0K1 execute queued │ + ╰────────────────────────────────────────────────────────────────────╯ ╭─ Decision IDs (for correction) ──────────────────╮ │ Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8 │ @@ -14369,8 +14373,8 @@ Render the decision tree for a plan. +-- [invariant_enforced] "All API calls over TCP must be mocked" +-- [strategy_choice] "Prioritize auth and payments" (confidence: 0.82) +-- [subplan_parallel_spawn] "Implement auth and payment modules, in parallel" - | +-- [subplan_spawn] "Write auth tests" -> Plan: 01HXM9F1A - | +-- [subplan_spawn] "Write payment tests" -> Plan: 01HXM9F2B + | +-- [subplan_spawn] "Write auth tests" -> Plan: 01HXM9F1A2B3C4D5E6F7G8H9J0 + | +-- [subplan_spawn] "Write payment tests" -> Plan: 01HXM9F2B3C4D5E6F7G8H9J0K1 +-- [subplan_parallel_spawn] "Write tests for remaining modules" +-- ... @@ -14382,10 +14386,10 @@ Render the decision tree for a plan. Superseded: 0 (hidden) Child Plans - ID Phase State - ---------- ------- --------- - 01HXM9F1A execute processing - 01HXM9F2B execute queued + ID Phase State + ---------------------------- ------- --------- + 01HXM9F1A2B3C4D5E6F7G8H9J0 execute processing + 01HXM9F2B3C4D5E6F7G8H9J0K1 execute queued Decision IDs (for correction) Root: 01HXM9A0B1Q2W3R5G8Z0P4Q1X8 @@ -14420,8 +14424,8 @@ Render the decision tree for a plan. "type": "subplan_parallel_spawn", "description": "Implement auth and payment modules, in parallel", "children": [ - { "type": "subplan_spawn", "description": "Write auth tests", "plan_id": "01HXM9F1A" }, - { "type": "subplan_spawn", "description": "Write payment tests", "plan_id": "01HXM9F2B" } + { "type": "subplan_spawn", "description": "Write auth tests", "plan_id": "01HXM9F1A2B3C4D5E6F7G8H9J0" }, + { "type": "subplan_spawn", "description": "Write payment tests", "plan_id": "01HXM9F2B3C4D5E6F7G8H9J0K1" } ] }, { @@ -14439,8 +14443,8 @@ Render the decision tree for a plan. "superseded": 0 }, "child_plans": [ - { "id": "01HXM9F1A", "phase": "execute", "state": "processing" }, - { "id": "01HXM9F2B", "phase": "execute", "state": "queued" } + { "id": "01HXM9F1A2B3C4D5E6F7G8H9J0", "phase": "execute", "state": "processing" }, + { "id": "01HXM9F2B3C4D5E6F7G8H9J0K1", "phase": "execute", "state": "queued" } ], "decision_ids": { "root": "01HXM9A0B1Q2W3R5G8Z0P4Q1X8", @@ -14485,10 +14489,10 @@ Render the decision tree for a plan. children: - type: subplan_spawn description: "Write auth tests" - plan_id: "01HXM9F1A" + plan_id: "01HXM9F1A2B3C4D5E6F7G8H9J0" - type: subplan_spawn description: "Write payment tests" - plan_id: "01HXM9F2B" + plan_id: "01HXM9F2B3C4D5E6F7G8H9J0K1" - type: subplan_parallel_spawn description: "Write tests for remaining modules" children: @@ -14500,10 +14504,10 @@ Render the decision tree for a plan. invariants: 2 superseded: 0 child_plans: - - id: "01HXM9F1A" + - id: "01HXM9F1A2B3C4D5E6F7G8H9J0" phase: execute state: processing - - id: "01HXM9F2B" + - id: "01HXM9F2B3C4D5E6F7G8H9J0K1" phase: execute state: queued decision_ids: -- 2.52.0