UAT: agents actor add --update missing "Changes" panel in rich output #3486

Open
opened 2026-04-05 18:34:13 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/actor-add-update-changes-panel
  • Commit Message: fix(cli): display Changes panel in rich output for agents actor add --update
  • Milestone: (backlog — no milestone assigned)
  • Parent Epic: #392

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.

Background and Context

The spec defines that agents actor add --update should display a "Changes" panel showing what changed between the old and new actor configuration:

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

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

✓ OK Actor updated

Problem

The add command in src/cleveragents/cli/commands/actor.py calls _print_actor() with show_add_panels=(not update_existing). When update_existing=True, show_add_panels=False, which means only the basic panel (Name, Provider, Model, Default, Unsafe, Type) is shown — no "Changes" panel.

The implementation does not:

  1. Capture the old actor state before updating
  2. Compute a diff between old and new state
  3. Display a "Changes" panel with Skills, Model, and Graph change summaries

Steps to Reproduce

  1. Register an actor: agents actor add --config ./actors/my-actor.yaml
  2. Modify the actor config (e.g., add a skill reference)
  3. Update: agents actor add --config ./actors/my-actor.yaml --update
  4. Expected: Output includes "Actor Updated" panel + "Changes" panel showing what changed
  5. Actual: Output only shows basic "Actor updated" panel with Name, Provider, Model, Default, Unsafe, Type

Code Location

  • src/cleveragents/cli/commands/actor.py, add() function and _print_actor() function
  • The fix requires:
    1. Fetching the existing actor state before calling upsert
    2. Computing a diff (skills added/removed, model changed, graph changed)
    3. Adding a "Changes" panel to _print_actor() when show_add_panels=False but update_existing=True

Expected Behavior (from spec)

When --update is provided:

  • Show "Actor Updated" panel with Name, Type, Status
  • Show "Changes" panel with Skills, Model, Graph change summaries
  • Print ✓ OK Actor updated

Subtasks

  • Fetch the existing actor state from the registry before calling upsert in add()
  • Compute a diff object capturing: skills added/removed, model changed (old vs new), graph changed (bool)
  • Extend _print_actor() (or add a new helper) to accept and render a "Changes" panel when update_existing=True
  • Render "Actor Updated" panel (Name, Type, Status) instead of "Actor Added" panel when --update is used
  • Write Behave unit tests covering the Changes panel rendering for the update path
  • Write Robot Framework integration test verifying the full agents actor add --update rich output

Definition of Done

  • agents actor add --update displays an "Actor Updated" panel followed by a "Changes" panel in rich output format
  • Changes panel correctly shows skills added/removed, model change status, and graph change status
  • No regression on agents actor add (without --update) output
  • Behave unit tests written and passing for the new Changes panel rendering logic
  • Robot Framework integration test written and passing for the full update output
  • All nox stages pass
  • Coverage >= 97%

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

## Metadata - **Branch**: `fix/actor-add-update-changes-panel` - **Commit Message**: `fix(cli): display Changes panel in rich output for agents actor add --update` - **Milestone**: *(backlog — no milestone assigned)* - **Parent Epic**: #392 > **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. ## Background and Context The spec defines that `agents actor add --update` should display a "Changes" panel showing what changed between the old and new actor configuration: ``` ╭─ Actor Updated ─────────────────────╮ │ Name: local/reviewer │ │ Type: agent │ │ Status: updated │ ╰─────────────────────────────────────╯ ╭─ Changes ────────────────────────────╮ │ Skills: +1 (local/code-analysis) │ │ Model: unchanged │ │ Graph: updated │ ╰──────────────────────────────────────╯ ✓ OK Actor updated ``` ## Problem The `add` command in `src/cleveragents/cli/commands/actor.py` calls `_print_actor()` with `show_add_panels=(not update_existing)`. When `update_existing=True`, `show_add_panels=False`, which means only the basic panel (Name, Provider, Model, Default, Unsafe, Type) is shown — no "Changes" panel. The implementation does not: 1. Capture the old actor state before updating 2. Compute a diff between old and new state 3. Display a "Changes" panel with Skills, Model, and Graph change summaries ## Steps to Reproduce 1. Register an actor: `agents actor add --config ./actors/my-actor.yaml` 2. Modify the actor config (e.g., add a skill reference) 3. Update: `agents actor add --config ./actors/my-actor.yaml --update` 4. **Expected**: Output includes "Actor Updated" panel + "Changes" panel showing what changed 5. **Actual**: Output only shows basic "Actor updated" panel with Name, Provider, Model, Default, Unsafe, Type ## Code Location - `src/cleveragents/cli/commands/actor.py`, `add()` function and `_print_actor()` function - The fix requires: 1. Fetching the existing actor state before calling upsert 2. Computing a diff (skills added/removed, model changed, graph changed) 3. Adding a "Changes" panel to `_print_actor()` when `show_add_panels=False` but `update_existing=True` ## Expected Behavior (from spec) When `--update` is provided: - Show "Actor Updated" panel with Name, Type, Status - Show "Changes" panel with Skills, Model, Graph change summaries - Print `✓ OK Actor updated` ## Subtasks - [ ] Fetch the existing actor state from the registry before calling upsert in `add()` - [ ] Compute a diff object capturing: skills added/removed, model changed (old vs new), graph changed (bool) - [ ] Extend `_print_actor()` (or add a new helper) to accept and render a "Changes" panel when `update_existing=True` - [ ] Render "Actor Updated" panel (Name, Type, Status) instead of "Actor Added" panel when `--update` is used - [ ] Write Behave unit tests covering the Changes panel rendering for the update path - [ ] Write Robot Framework integration test verifying the full `agents actor add --update` rich output ## Definition of Done - [ ] `agents actor add --update` displays an "Actor Updated" panel followed by a "Changes" panel in rich output format - [ ] Changes panel correctly shows skills added/removed, model change status, and graph change status - [ ] No regression on `agents actor add` (without `--update`) output - [ ] Behave unit tests written and passing for the new Changes panel rendering logic - [ ] Robot Framework integration test written and passing for the full update output - [ ] All nox stages pass - [ ] Coverage >= 97% --- **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:42:48 +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#3486
No description provided.