UAT: agents project show displays resource ULIDs instead of names in linked resources list #5493

Open
opened 2026-04-09 07:03:45 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: projects-resources
Severity: High — spec output format deviation
Milestone: v3.0.0+

What Was Tested

agents project show <project> output format for linked resources.

Expected Behavior (from spec)

Per docs/specification.md lines 3197–3202, the Linked Resources table should show:

  • Resource name (e.g., local/api-repo)
  • Type (e.g., git-checkout)
  • Sandbox strategy (e.g., git_worktree)
  • Read-Only flag
╭─ Linked Resources ──────────────────────────────────────────────────────╮
│ Resource          Type            Sandbox              Read-Only        │
│ ────────────────  ──────────────  ────────────────────  ─────────       │
│ local/api-repo   git-checkout    git_worktree         no                │
│ local/staging-db local/database  transaction_rollback yes               │
╰─────────────────────────────────────────────────────────────────────────╯

The JSON output (spec lines 3297–3300) should include name, type, sandbox, and read_only fields per linked resource.

Actual Behavior (from code analysis)

In src/cleveragents/cli/commands/project.py lines 903–912, the implementation shows only the raw resource_id (ULID):

if proj.linked_resources:
    lines.append(
        f"\n[bold]Linked Resources ({len(proj.linked_resources)}):[/bold]"
    )
    for lr in proj.linked_resources:
        ro_marker = " [dim](read-only)[/dim]" if lr.project_read_only else ""
        alias_marker = f" alias={lr.alias}" if lr.alias else ""
        lines.append(f"  - {lr.resource_id}{ro_marker}{alias_marker}")

This displays the ULID (e.g., 01HXR1A1B2C3D4E5F6G7H8J9K0) instead of the resource name (local/api-repo). The resource type and sandbox strategy are not shown at all.

Additionally, the _project_spec_dict helper (lines 137–168) only includes resource_id, read_only, alias, and linked_at — missing name, type, and sandbox fields required by the JSON output spec.

Code Location

  • src/cleveragents/cli/commands/project.py, lines 903–912 (rich display)
  • src/cleveragents/cli/commands/project.py, lines 137–168 (_project_spec_dict)

Fix Required

The project show command needs to look up each linked resource from the Resource Registry to get its name, type, and sandbox strategy:

registry = _get_resource_registry_service()
for lr in proj.linked_resources:
    try:
        res = registry.show_resource(lr.resource_id)
        name = res.name or lr.resource_id
        type_name = res.resource_type_name
        # ... display name, type, sandbox, read_only
    except NotFoundError:
        name = f"(missing: {lr.resource_id})"

The _project_spec_dict helper should also be updated to include name, type, and sandbox fields.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area**: projects-resources **Severity**: High — spec output format deviation **Milestone**: v3.0.0+ ### What Was Tested `agents project show <project>` output format for linked resources. ### Expected Behavior (from spec) Per `docs/specification.md` lines 3197–3202, the Linked Resources table should show: - **Resource name** (e.g., `local/api-repo`) - **Type** (e.g., `git-checkout`) - **Sandbox** strategy (e.g., `git_worktree`) - **Read-Only** flag ``` ╭─ Linked Resources ──────────────────────────────────────────────────────╮ │ Resource Type Sandbox Read-Only │ │ ──────────────── ────────────── ──────────────────── ───────── │ │ local/api-repo git-checkout git_worktree no │ │ local/staging-db local/database transaction_rollback yes │ ╰─────────────────────────────────────────────────────────────────────────╯ ``` The JSON output (spec lines 3297–3300) should include `name`, `type`, `sandbox`, and `read_only` fields per linked resource. ### Actual Behavior (from code analysis) In `src/cleveragents/cli/commands/project.py` lines 903–912, the implementation shows only the raw `resource_id` (ULID): ```python if proj.linked_resources: lines.append( f"\n[bold]Linked Resources ({len(proj.linked_resources)}):[/bold]" ) for lr in proj.linked_resources: ro_marker = " [dim](read-only)[/dim]" if lr.project_read_only else "" alias_marker = f" alias={lr.alias}" if lr.alias else "" lines.append(f" - {lr.resource_id}{ro_marker}{alias_marker}") ``` This displays the ULID (e.g., `01HXR1A1B2C3D4E5F6G7H8J9K0`) instead of the resource name (`local/api-repo`). The resource type and sandbox strategy are not shown at all. Additionally, the `_project_spec_dict` helper (lines 137–168) only includes `resource_id`, `read_only`, `alias`, and `linked_at` — missing `name`, `type`, and `sandbox` fields required by the JSON output spec. ### Code Location - `src/cleveragents/cli/commands/project.py`, lines 903–912 (rich display) - `src/cleveragents/cli/commands/project.py`, lines 137–168 (`_project_spec_dict`) ### Fix Required The `project show` command needs to look up each linked resource from the Resource Registry to get its name, type, and sandbox strategy: ```python registry = _get_resource_registry_service() for lr in proj.linked_resources: try: res = registry.show_resource(lr.resource_id) name = res.name or lr.resource_id type_name = res.resource_type_name # ... display name, type, sandbox, read_only except NotFoundError: name = f"(missing: {lr.resource_id})" ``` The `_project_spec_dict` helper should also be updated to include `name`, `type`, and `sandbox` fields. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 07:12:12 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
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.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#5493
No description provided.