UAT: agents lsp remove rich output panel missing Languages: field — spec requires it #2129

Open
opened 2026-04-03 04:19:09 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: fix/lsp-remove-panel-missing-languages-field
  • Commit Message: fix(cli): add Languages field to lsp remove confirmation panel
  • Milestone: v3.7.0
  • Parent Epic: #824

Background and Context

During UAT testing of the LSP integration feature, a cosmetic deviation from the specification was found in the agents lsp remove command's rich output panel.

The specification (docs/specification.md, section "agents lsp remove") explicitly shows that the removal confirmation panel must display two fields: Name: and Languages:. The current implementation only renders the Name: field, omitting Languages: entirely.

The relevant code is in src/cleveragents/cli/commands/lsp.py, remove() function, approximately at the console.print(Panel(...)) call:

console.print(
    Panel(f"[bold]Name:[/bold] {name}", title="LSP Server Removed", expand=False)
)

The panel only includes Name: but the spec shows it should also include Languages:.

Current Behavior

╭─ LSP Server Removed ─╮
│ Name: local/pyright  │
╰──────────────────────╯

Expected Behavior (from spec)

╭─ LSP Server Removed ─────────────────────╮
│ Name: local/pyright                       │
│ Languages: python                        │
╰──────────────────────────────────────────╯

Steps to Reproduce

  1. Register an LSP server: agents lsp add --config pyright.yaml
  2. Remove it: agents lsp remove local/pyright --yes
  3. Observe the output panel — Languages: field is missing

Acceptance Criteria

  • The agents lsp remove confirmation panel displays both Name: and Languages: fields, matching the spec exactly.
  • The Languages: value is populated from the removed server's registered language list (comma-separated if multiple).
  • The fix applies to both the interactive (prompt) and --yes (non-interactive) code paths.
  • All output format variants (rich, plain, json, yaml) correctly include the languages information.

Supporting Information

  • Spec reference: docs/specification.md, section "agents lsp remove", example output
  • Code location: src/cleveragents/cli/commands/lsp.py, remove() function, console.print(Panel(...)) call
  • Severity: Low — cosmetic output deviation from spec; the removal functionality itself is correct

Subtasks

  • Retrieve the removed server's languages field from the registry before deletion (or capture it before the delete call)
  • Update the Panel(...) call in remove() to include [bold]Languages:[/bold] {languages} in the panel body
  • Verify the fix works for both --yes and interactive confirmation paths
  • Update plain/JSON/YAML output paths to also include the languages field in the removal response
  • Tests (Behave): Add/update BDD scenario for agents lsp remove verifying Languages: appears in the output panel
  • Tests (Robot): Add/update integration test for agents lsp remove output format
  • Verify coverage ≥97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • The agents lsp remove rich output panel matches the spec exactly, showing both Name: and Languages: fields.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (fix(cli): add Languages field to lsp remove confirmation panel), followed by a blank line, then additional lines providing relevant implementation details.
  • The commit is pushed to the remote on the branch fix/lsp-remove-panel-missing-languages-field.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage ≥ 97%.

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

## Metadata - **Branch**: `fix/lsp-remove-panel-missing-languages-field` - **Commit Message**: `fix(cli): add Languages field to lsp remove confirmation panel` - **Milestone**: v3.7.0 - **Parent Epic**: #824 ## Background and Context During UAT testing of the LSP integration feature, a cosmetic deviation from the specification was found in the `agents lsp remove` command's rich output panel. The specification (`docs/specification.md`, section "agents lsp remove") explicitly shows that the removal confirmation panel must display **two** fields: `Name:` and `Languages:`. The current implementation only renders the `Name:` field, omitting `Languages:` entirely. The relevant code is in `src/cleveragents/cli/commands/lsp.py`, `remove()` function, approximately at the `console.print(Panel(...))` call: ```python console.print( Panel(f"[bold]Name:[/bold] {name}", title="LSP Server Removed", expand=False) ) ``` The panel only includes `Name:` but the spec shows it should also include `Languages:`. ## Current Behavior ``` ╭─ LSP Server Removed ─╮ │ Name: local/pyright │ ╰──────────────────────╯ ``` ## Expected Behavior (from spec) ``` ╭─ LSP Server Removed ─────────────────────╮ │ Name: local/pyright │ │ Languages: python │ ╰──────────────────────────────────────────╯ ``` ## Steps to Reproduce 1. Register an LSP server: `agents lsp add --config pyright.yaml` 2. Remove it: `agents lsp remove local/pyright --yes` 3. Observe the output panel — `Languages:` field is missing ## Acceptance Criteria - [ ] The `agents lsp remove` confirmation panel displays both `Name:` and `Languages:` fields, matching the spec exactly. - [ ] The `Languages:` value is populated from the removed server's registered language list (comma-separated if multiple). - [ ] The fix applies to both the interactive (prompt) and `--yes` (non-interactive) code paths. - [ ] All output format variants (`rich`, `plain`, `json`, `yaml`) correctly include the languages information. ## Supporting Information - **Spec reference**: `docs/specification.md`, section "agents lsp remove", example output - **Code location**: `src/cleveragents/cli/commands/lsp.py`, `remove()` function, `console.print(Panel(...))` call - **Severity**: Low — cosmetic output deviation from spec; the removal functionality itself is correct ## Subtasks - [ ] Retrieve the removed server's `languages` field from the registry before deletion (or capture it before the delete call) - [ ] Update the `Panel(...)` call in `remove()` to include `[bold]Languages:[/bold] {languages}` in the panel body - [ ] Verify the fix works for both `--yes` and interactive confirmation paths - [ ] Update plain/JSON/YAML output paths to also include the `languages` field in the removal response - [ ] Tests (Behave): Add/update BDD scenario for `agents lsp remove` verifying `Languages:` appears in the output panel - [ ] Tests (Robot): Add/update integration test for `agents lsp remove` output format - [ ] Verify coverage ≥97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - The `agents lsp remove` rich output panel matches the spec exactly, showing both `Name:` and `Languages:` fields. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`fix(cli): add Languages field to lsp remove confirmation panel`), followed by a blank line, then additional lines providing relevant implementation details. - The commit is pushed to the remote on the branch `fix/lsp-remove-panel-missing-languages-field`. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - 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-03 04:19:12 +00:00
freemo self-assigned this 2026-04-03 16:58:03 +00:00
Author
Owner

MoSCoW classification: Could Have

Rationale: This is a low-priority or backlog item. Desirable but not necessary for the milestone. Include only if time permits.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

MoSCoW classification: **Could Have** Rationale: This is a low-priority or backlog item. Desirable but not necessary for the milestone. Include only if time permits. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
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
#824 Epic: LSP Functional Runtime
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#2129
No description provided.