UAT: agents actor add --update output missing "Changes" panel — spec requires Skills/Model/Graph diff on update #3594

Open
opened 2026-04-05 20:14:30 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/cli-actor-add-update-changes-panel
  • Commit Message: fix(cli): render Changes panel on actor add --update with Skills/Model/Graph diff
  • Milestone: Backlog
  • Parent Epic: #392

Background and Context

The specification defines that agents actor add --config <FILE> --update should produce a "Changes" panel showing what changed (Skills, Model, Graph) when updating an existing actor. This is documented in the spec's agents actor add section.

Current Behavior

In src/cleveragents/cli/commands/actor.py, the add command with --update flag calls _print_actor(actor, title="Actor updated", fmt=fmt, config_path=config, show_add_panels=(not update_existing)).

When update_existing=True, show_add_panels=False, which means the output only shows the basic actor panel (Name, Provider, Model, Default, Unsafe, Type) — no Changes panel is rendered.

The spec requires the following output for actor add --update:

╭─ Actor Updated ─────────────────────╮
│ Name: local/reviewer                │
│ Type: agent                         │
│ Status: updated                     │
╰─────────────────────────────────────╯

╭─ Changes ────────────────────────────╮
│ Skills: +1 (local/code-analysis)     │
│ Model: unchanged                     │
│ Graph: updated                       │
╰──────────────────────────────────────╯

✓ OK Actor updated

But the actual output is just:

╭─ Actor updated ──────╮
│ Name: local/reviewer │
│ Provider: openai     │
│ Model: gpt-4         │
│ Default: yes         │
│ Unsafe: no           │
│ Type: graph          │
╰──────────────────────╯

Expected Behavior

Per the specification, agents actor add --update should render:

  1. An "Actor Updated" panel with Name, Type, Status fields
  2. A "Changes" panel showing Skills diff, Model change status, and Graph change status

Code Location

  • src/cleveragents/cli/commands/actor.pyadd() function (~line 587–594): show_add_panels=(not update_existing) suppresses the Changes panel
  • src/cleveragents/cli/commands/actor.py_print_actor() function: does not implement a Changes panel for the update case

Subtasks

  • Capture the pre-update actor state (Skills, Model, Graph) before applying the YAML config in add()
  • Implement a _print_actor_changes() helper (or extend _print_actor()) that accepts old and new actor state and renders the "Changes" panel
  • Update the "Actor Updated" panel to display Name, Type, Status fields (not Provider/Model/Default/Unsafe)
  • Render the Changes panel showing Skills diff (+N/-N with names), Model change status (unchanged/updated), and Graph change status (unchanged/updated)
  • Update JSON/YAML structured output for actor add --update to include actor_updated and changes keys per spec
  • Write Behave unit tests (in features/) covering the Changes panel rendering for Skills diff, Model change, and Graph change scenarios
  • Write Robot Framework integration tests (in robot/) for the full actor add --update CLI output
  • Verify all nox sessions pass (nox -e lint, nox -e typecheck, nox -e unit_tests, nox -e integration_tests, nox -e coverage_report)

Definition of Done

  • agents actor add --update renders an "Actor Updated" panel with Name, Type, Status fields
  • agents actor add --update renders a "Changes" panel showing Skills diff, Model change status, and Graph change status
  • The Changes panel correctly compares the old actor state with the new actor state
  • JSON/YAML output for actor add --update includes actor_updated and changes keys per spec
  • Behave unit tests added in features/ covering all Changes panel scenarios
  • Robot Framework integration tests added in robot/ for the full CLI output
  • All nox stages pass
  • Coverage >= 97%

Backlog note: This issue was discovered during autonomous operation
on milestone v3.2.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `fix/cli-actor-add-update-changes-panel` - **Commit Message**: `fix(cli): render Changes panel on actor add --update with Skills/Model/Graph diff` - **Milestone**: Backlog - **Parent Epic**: #392 ## Background and Context The specification defines that `agents actor add --config <FILE> --update` should produce a "Changes" panel showing what changed (Skills, Model, Graph) when updating an existing actor. This is documented in the spec's `agents actor add` section. ## Current Behavior In `src/cleveragents/cli/commands/actor.py`, the `add` command with `--update` flag calls `_print_actor(actor, title="Actor updated", fmt=fmt, config_path=config, show_add_panels=(not update_existing))`. When `update_existing=True`, `show_add_panels=False`, which means the output only shows the basic actor panel (Name, Provider, Model, Default, Unsafe, Type) — **no Changes panel is rendered**. The spec requires the following output for `actor add --update`: ``` ╭─ Actor Updated ─────────────────────╮ │ Name: local/reviewer │ │ Type: agent │ │ Status: updated │ ╰─────────────────────────────────────╯ ╭─ Changes ────────────────────────────╮ │ Skills: +1 (local/code-analysis) │ │ Model: unchanged │ │ Graph: updated │ ╰──────────────────────────────────────╯ ✓ OK Actor updated ``` But the actual output is just: ``` ╭─ Actor updated ──────╮ │ Name: local/reviewer │ │ Provider: openai │ │ Model: gpt-4 │ │ Default: yes │ │ Unsafe: no │ │ Type: graph │ ╰──────────────────────╯ ``` ## Expected Behavior Per the specification, `agents actor add --update` should render: 1. An "Actor Updated" panel with Name, Type, Status fields 2. A "Changes" panel showing Skills diff, Model change status, and Graph change status ## Code Location - `src/cleveragents/cli/commands/actor.py` — `add()` function (~line 587–594): `show_add_panels=(not update_existing)` suppresses the Changes panel - `src/cleveragents/cli/commands/actor.py` — `_print_actor()` function: does not implement a Changes panel for the update case ## Subtasks - [ ] Capture the pre-update actor state (Skills, Model, Graph) before applying the YAML config in `add()` - [ ] Implement a `_print_actor_changes()` helper (or extend `_print_actor()`) that accepts old and new actor state and renders the "Changes" panel - [ ] Update the "Actor Updated" panel to display Name, Type, Status fields (not Provider/Model/Default/Unsafe) - [ ] Render the Changes panel showing Skills diff (+N/-N with names), Model change status (unchanged/updated), and Graph change status (unchanged/updated) - [ ] Update JSON/YAML structured output for `actor add --update` to include `actor_updated` and `changes` keys per spec - [ ] Write Behave unit tests (in `features/`) covering the Changes panel rendering for Skills diff, Model change, and Graph change scenarios - [ ] Write Robot Framework integration tests (in `robot/`) for the full `actor add --update` CLI output - [ ] Verify all nox sessions pass (`nox -e lint`, `nox -e typecheck`, `nox -e unit_tests`, `nox -e integration_tests`, `nox -e coverage_report`) ## Definition of Done - [ ] `agents actor add --update` renders an "Actor Updated" panel with Name, Type, Status fields - [ ] `agents actor add --update` renders a "Changes" panel showing Skills diff, Model change status, and Graph change status - [ ] The Changes panel correctly compares the old actor state with the new actor state - [ ] JSON/YAML output for `actor add --update` includes `actor_updated` and `changes` keys per spec - [ ] Behave unit tests added in `features/` covering all Changes panel scenarios - [ ] Robot Framework integration tests added in `robot/` for the full CLI output - [ ] All nox stages pass - [ ] Coverage >= 97% > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.2.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 20:23:32 +00:00
freemo removed this from the v3.7.0 milestone 2026-04-06 23:37:43 +00:00
Sign in to join this conversation.
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.

Blocks
#392 Epic: Actor YAML & Compiler
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#3594
No description provided.