AOI-4: dashboard surfaces inheritance invariants #733

Closed
opened 2026-05-02 11:01:46 +00:00 by claude-desktop · 0 comments
Collaborator

As an operator using the dashboard to manage instance-scope overrides, I want the UI to reflect that inherited entries cannot be disabled — only their env tweaked or new entries added — so that I do not look for a "disable" button that does not exist and so that the contract is visible at the surface.

Acceptance criteria

MCP tab (per-instance view)

  • Inherited MCP rows render with an origin badge (e.g. from agent_type:dev) and two actions: "Tune env" (opens env-merge editor surfacing AOI-2 behavior) and (if applicable) override on per-key fields. NO disable toggle on inherited rows.
  • "+ Add MCP" button still present for net-new instance-scope MCP.
  • Tooltip on inherited row: "Type owns this. Edit at agent_type/global scope to remove."

Plugins tab (per-instance view)

  • Inherited plugin rows render with origin badge. NO disable toggle.
  • "+ Add plugin" still present for net-new entries.

Skills tab (per-instance view)

  • Inherited skills show "Override body" button. No delete.
  • "+ Add skill" still present.

Type-scope view (/agents/:type or equivalent)

  • Disable toggle for plugins / MCP REMAINS available at agent_type and global scopes. This is the operator escape hatch; instance is the only scope where the toggle disappears.

Tests

  • Component test: inherited row at instance scope renders without disable toggle.
  • Component test: net-new instance row renders with full controls.
  • Component test: disable toggle still present at agent_type scope.

Out of scope

  • Bulk operator tools (e.g. "copy overrides from dev-1 to dev-2").
  • Diff view between instance and parent.
  • "Reset to inherited" button on overridden env.

References

  • Existing dashboard routes: apps/web/src/routes/agents/... (or current path).
  • Depends on AOI-1 (validation rejects disable-at-instance) and AOI-2 (env merge resolver).
As an operator using the dashboard to manage instance-scope overrides, I want the UI to reflect that inherited entries cannot be disabled — only their env tweaked or new entries added — so that I do not look for a "disable" button that does not exist and so that the contract is visible at the surface. ## Acceptance criteria ### MCP tab (per-instance view) - [ ] Inherited MCP rows render with an origin badge (e.g. `from agent_type:dev`) and two actions: "Tune env" (opens env-merge editor surfacing AOI-2 behavior) and (if applicable) override on per-key fields. NO disable toggle on inherited rows. - [ ] "+ Add MCP" button still present for net-new instance-scope MCP. - [ ] Tooltip on inherited row: `"Type owns this. Edit at agent_type/global scope to remove."` ### Plugins tab (per-instance view) - [ ] Inherited plugin rows render with origin badge. NO disable toggle. - [ ] "+ Add plugin" still present for net-new entries. ### Skills tab (per-instance view) - [ ] Inherited skills show "Override body" button. No delete. - [ ] "+ Add skill" still present. ### Type-scope view (`/agents/:type` or equivalent) - [ ] Disable toggle for plugins / MCP REMAINS available at `agent_type` and `global` scopes. This is the operator escape hatch; instance is the only scope where the toggle disappears. ### Tests - [ ] Component test: inherited row at instance scope renders without disable toggle. - [ ] Component test: net-new instance row renders with full controls. - [ ] Component test: disable toggle still present at `agent_type` scope. ## Out of scope - Bulk operator tools (e.g. "copy overrides from `dev-1` to `dev-2`"). - Diff view between instance and parent. - "Reset to inherited" button on overridden env. ## References - Existing dashboard routes: `apps/web/src/routes/agents/...` (or current path). - Depends on AOI-1 (validation rejects disable-at-instance) and AOI-2 (env merge resolver).
Sign in to join this conversation.
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
charles/claude-hooks#733
No description provided.