Files
cleveragents-core/features
freemo a878ce779e
CI / build (pull_request) Successful in 49s
CI / lint (pull_request) Successful in 56s
CI / helm (pull_request) Successful in 41s
CI / push-validation (pull_request) Successful in 31s
CI / quality (pull_request) Successful in 1m15s
CI / typecheck (pull_request) Successful in 1m20s
CI / security (pull_request) Successful in 1m39s
CI / integration_tests (pull_request) Failing after 3m28s
CI / benchmark-publish (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 4m33s
CI / unit_tests (pull_request) Failing after 4m53s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 14m38s
CI / status-check (pull_request) Failing after 5s
CI / benchmark-regression (pull_request) Successful in 1h4m19s
fix(cli): render spec-required panels in agents plan apply rich output
Implemented a dedicated rendering path for the apply command to display all spec-required Rich panels in a cohesive, rich output experience.

What was implemented
- Added _print_apply_rich_output() in src/cleveragents/cli/commands/plan.py to render all five spec-required Rich panels (project_links, validation_summary, sandbox_refs, timestamps, error_details) using data from the Plan model.
- Updated lifecycle_apply_plan() (the @app.command("apply")) to invoke _print_apply_rich_output() instead of the generic _print_lifecycle_plan(), aligning the apply flow with the enriched plan output.
- Updated _lifecycle_apply_with_id() helper for consistency with the new rendering path.
- Added feature test features/plan_apply_rich_output_panels.feature with eight scenarios covering all panels and a robust step definitions file at features/steps/plan_apply_rich_output_panels_steps.py.

Key design decisions
- Created a dedicated _print_apply_rich_output() rather than modifying _print_lifecycle_plan() to keep concerns separated and minimize impact on existing lifecycle output paths.
- Panels draw from Plan model data: project_links, validation_summary, sandbox_refs, timestamps, and error_details, ensuring the rich output reflects the actual plan state.
- Duration formatting uses HH:MM:SS to match the specification.
- Implemented graceful fallbacks for missing data by displaying a dash-like placeholder for unavailable timestamps and other absent fields, ensuring stable, readable output.

ISSUES CLOSED: #2618
2026-04-24 21:56:28 +00:00
..