Skip to content

Provider permissions: UI — tier management flows #172

Description

@jeonghun-jj-lee

Important

Decision Surface

Problem: Users need to create custom tiers, rename them, reorder them, delete them, and add directory rules beyond the defaults.

Approach: Add tier CRUD operations to the Permissions tab: "Create tier" button, inline rename, drag-to-reorder, delete (with confirmation), and "Add rule" for new directory glob patterns.

Scope: Tier lifecycle management + directory rule CRUD. Requires the Permissions tab (slice #7).


Acceptance Criteria

  • "Create tier" button at the bottom creates a new tier with a user-provided name and "ask" defaults for all actions
  • Tier labels are inline-editable (click to rename)
  • Tiers can be reordered via drag handle (order persists to config)
  • Tiers can be deleted (with confirmation dialog) — models assigned to a deleted tier move to "Unassigned"
  • The "Unassigned" tier cannot be renamed, reordered, or deleted (UI disables these affordances)
  • "Add rule" on a tier card opens a path input with autocomplete from workspace directories
  • Directory rules can be removed (x button on the rule row)
  • New directory rules default to "ask" for all action groups
  • All changes persist to config immediately
  • Glob patterns are validated on input (invalid patterns show an error)

Key Decisions

# Decision Rationale
1 Models from deleted tiers go to Unassigned (not deleted) Never silently lose model assignments — safe default
2 Path input with workspace autocomplete Helps users pick real directories without typing full globs from memory
3 Inline rename (not a modal) Faster, matches modern settings UX

Testing Decisions

  • Test create tier → appears in UI + config
  • Test rename tier → label updates in UI + config
  • Test delete tier → models moved to Unassigned, tier removed from config
  • Test Unassigned cannot be renamed/deleted (buttons disabled)
  • Test add directory rule → new row appears with ask defaults
  • Test remove directory rule → row removed from config
  • Test invalid glob pattern → input shows error, rule not saved
  • Test reorder persists to config
  • Extends Provider permissions: UI — Permissions tab with tier cards #170 test surface

Constraints & Invariants

  • Tier ID is generated at creation time (slug of the label) and never changes — rename only changes label, not ID
  • Deletion confirmation must name the models that will be reassigned

Source

Part of #163
Blocked by #170

Metadata

Metadata

Assignees

Labels

hitlNeeds a human decision/review

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions