fix(cli): wrap plan status --format json output in spec-required JSON envelope #11083

Closed
HAL9000 wants to merge 1 commit from fix/plan-status-json-envelope-pr-11034 into master
Owner

Summary

Wraps agents plan status --format json output in a spec-required JSON envelope with command, status, exit_code, data, timing, and messages fields. This fixes issues #9450 and #9827.

Changes

  • Added _status_output_dict() function to build a complete JSON envelope for plan status output
  • Added _get_progress_status() helper to map processing state to progress statuses (queued/running/done/error)
  • Modified plan_status() command: JSON output bypasses format_output() to preserve the complete envelope; YAML/PLAIN formats delegate to format_output() with pre-built envelope fields extracted
  • Moved LifecyclePlan import from inline to module-level
  • Updated _empty_string(), _str_time_safe(), and _make_change_dict() helpers
  • Added BDD spec (features/plan_status_json_envelope.feature) with 29 scenarios covering envelope presence, data fields, timing, progress, and optional project/automation fields
  • Added step definitions (features/steps/plan_status_json_envelope_steps.py)

Regression Blocks

  • Block A: Timing started field is properly set from plan creation timestamp
  • Block B: Child plans string format uses "x/y complete" suffix pattern
  • Block C: ACTION phase progress steps all show "queued" status
## Summary Wraps `agents plan status --format json` output in a spec-required JSON envelope with command, status, exit_code, data, timing, and messages fields. This fixes issues #9450 and #9827. ## Changes - Added `_status_output_dict()` function to build a complete JSON envelope for plan status output - Added `_get_progress_status()` helper to map processing state to progress statuses (queued/running/done/error) - Modified `plan_status()` command: JSON output bypasses `format_output()` to preserve the complete envelope; YAML/PLAIN formats delegate to `format_output()` with pre-built envelope fields extracted - Moved `LifecyclePlan` import from inline to module-level - Updated `_empty_string()`, `_str_time_safe()`, and `_make_change_dict()` helpers - Added BDD spec (`features/plan_status_json_envelope.feature`) with 29 scenarios covering envelope presence, data fields, timing, progress, and optional project/automation fields - Added step definitions (`features/steps/plan_status_json_envelope_steps.py`) ## Regression Blocks - **Block A**: Timing started field is properly set from plan creation timestamp - **Block B**: Child plans string format uses `"x/y complete"` suffix pattern - **Block C**: ACTION phase progress steps all show "queued" status
fix(cli): wrap plan status --format json output in spec-required JSON envelope
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 44s
CI / benchmark-regression (pull_request) Failing after 1m1s
CI / typecheck (pull_request) Failing after 1m16s
CI / quality (pull_request) Successful in 1m1s
CI / helm (pull_request) Successful in 34s
CI / build (pull_request) Successful in 39s
CI / security (pull_request) Successful in 2m10s
CI / push-validation (pull_request) Successful in 21s
CI / unit_tests (pull_request) Failing after 3m31s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 3m58s
CI / e2e_tests (pull_request) Failing after 4m38s
CI / status-check (pull_request) Failing after 3s
88b50b4c46
HAL9000 closed this pull request 2026-05-09 09:58:09 +00:00
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 44s
Required
Details
CI / benchmark-regression (pull_request) Failing after 1m1s
CI / typecheck (pull_request) Failing after 1m16s
Required
Details
CI / quality (pull_request) Successful in 1m1s
Required
Details
CI / helm (pull_request) Successful in 34s
CI / build (pull_request) Successful in 39s
Required
Details
CI / security (pull_request) Successful in 2m10s
Required
Details
CI / push-validation (pull_request) Successful in 21s
CI / unit_tests (pull_request) Failing after 3m31s
Required
Details
CI / coverage (pull_request) Has been skipped
Required
Details
CI / docker (pull_request) Has been skipped
Required
Details
CI / integration_tests (pull_request) Failing after 3m58s
Required
Details
CI / e2e_tests (pull_request) Failing after 4m38s
CI / status-check (pull_request) Failing after 3s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!11083
No description provided.