settings/SU-3: restructure agent-config — rename Secrets, split tabs to side-nav #834

Closed
opened 2026-05-04 20:03:05 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As an operator, I want per-agent Secrets / History / Admin to live as separate side-nav items under Agents, and "Secrets" renamed so it doesn't collide with the AES kv store, so that the term "Secrets" has one meaning.

Context

Two surfaces both called "Secrets":

  • /settings/secrets — AES-256-GCM kv store referenced by ${SECRET:NAME} in artifact bodies (settings.secrets.tsx).
  • /settings/agent-config?tab=secrets — per-agent config secrets (features/agent-config/secrets-tab.tsx).

Plus /settings/agent-config uses a nested tab bar (Secrets / History / Admin), which conflicts with SU-1's single-side-nav rule.

Acceptance criteria

Routes

  • /settings/agent-config deprecated; replaced by three sibling routes:
    • /settings/agents/per-agent-secrets (was ?tab=secrets)
    • /settings/agents/config-history (was ?tab=history)
    • /settings/agents/admin (was ?tab=admin)
  • Old /settings/agent-config?tab=* URLs redirect to new routes preserving query params (e.g. q for History).
  • Side-nav entries under Agents group: Types, Per-agent secrets, Config history, Admin.

Naming

  • All UI strings: "Secrets" → "Per-agent secrets" within the agent-config surface.
  • /settings/secrets retains its name (it's the unambiguous one).
  • Search-palette index (SU-6) uses new strings.

Tests

  • Each new route renders the corresponding feature component.
  • Old URL with ?tab=history&q=foo redirects to /settings/agents/config-history?q=foo.

Out of scope

  • Side-nav layout itself — SU-1.
  • AES /settings/secrets page — unchanged.

References

  • apps/web/src/routes/settings.agent-config.tsx — current host.
  • apps/web/src/features/agent-config/{secrets-tab,history-tab}.tsx — feature components.
  • apps/web/src/routes/settings.secrets.tsx — the other Secrets.
## User story As an operator, I want per-agent Secrets / History / Admin to live as separate side-nav items under Agents, and "Secrets" renamed so it doesn't collide with the AES kv store, so that the term "Secrets" has one meaning. ## Context Two surfaces both called "Secrets": - `/settings/secrets` — AES-256-GCM kv store referenced by `${SECRET:NAME}` in artifact bodies (`settings.secrets.tsx`). - `/settings/agent-config?tab=secrets` — per-agent config secrets (`features/agent-config/secrets-tab.tsx`). Plus `/settings/agent-config` uses a nested tab bar (Secrets / History / Admin), which conflicts with SU-1's single-side-nav rule. ## Acceptance criteria ### Routes - [ ] `/settings/agent-config` deprecated; replaced by three sibling routes: - [ ] `/settings/agents/per-agent-secrets` (was `?tab=secrets`) - [ ] `/settings/agents/config-history` (was `?tab=history`) - [ ] `/settings/agents/admin` (was `?tab=admin`) - [ ] Old `/settings/agent-config?tab=*` URLs redirect to new routes preserving query params (e.g. `q` for History). - [ ] Side-nav entries under **Agents** group: Types, Per-agent secrets, Config history, Admin. ### Naming - [ ] All UI strings: "Secrets" → "Per-agent secrets" within the agent-config surface. - [ ] `/settings/secrets` retains its name (it's the unambiguous one). - [ ] Search-palette index (SU-6) uses new strings. ### Tests - [ ] Each new route renders the corresponding feature component. - [ ] Old URL with `?tab=history&q=foo` redirects to `/settings/agents/config-history?q=foo`. ## Out of scope - Side-nav layout itself — SU-1. - AES `/settings/secrets` page — unchanged. ## References - `apps/web/src/routes/settings.agent-config.tsx` — current host. - `apps/web/src/features/agent-config/{secrets-tab,history-tab}.tsx` — feature components. - `apps/web/src/routes/settings.secrets.tsx` — the *other* Secrets.
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#834
No description provided.