Skip to content

Providers phase 2c-2: identity descriptor — registry-derived glyphs, labels, resume commands, spawn lists - #400

Merged
Juliusolsson05 merged 1 commit into
mainfrom
refactor/providers-phase2c2-identity-descriptor
Jul 6, 2026
Merged

Juliusolsson05 merged 1 commit into
mainfrom
refactor/providers-phase2c2-identity-descriptor

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

Part of #394 (phase 2c). Follows #399.

What

RendererProviderCapabilities gains an identity descriptor (glyph, shortLabel, spawnDescription, resumeCommand) implemented per provider in providers/*/renderer/identity.ts. Every hand-written identity surface becomes a registry lookup:

This is the data layer the phase-4 command rewrite consumes (palette entries, "Split with X" commands, badges).

Verification

tsc --noEmit clean on both projects; electron-vite build clean; vitest 170/170.

🤖 Generated with Claude Code

…labels, resume commands, spawn lists

Adds glyph / shortLabel / spawnDescription / resumeCommand to
RendererProviderCapabilities (implemented as CLAUDE_IDENTITY /
CODEX_IDENTITY descriptors in providers/*/renderer/identity.ts) and
replaces every hand-written identity ternary with a registry lookup:

- providerGlyph (sessionDisplay.ts): ⏺/›/$ ternary → registry for
  agent kinds, terminal keeps its literal.
- providerLabel ×2 (formatWorktreeDump short labels, TileLeaf/labels
  long display names with the documented missing-kind→DEFAULT_PROVIDER
  back-compat).
- buildProviderResumeCommand: the claude `--resume` flag vs codex
  `resume` subcommand ternary → registry resumeCommand; quoting and
  the `cd` prefix stay caller policy.
- "waiting for Codex…/Claude Code…" strings (renderModel, Feed) →
  registry display name.
- PathPickerModal provider toggle and NewAgentPlacementOverlay
  KIND_OPTIONS: hand-written provider lists → derived from
  AGENT_PROVIDER_KINDS + registry metadata. This closes #394 §4.6 —
  a registered provider previously compiled but was UNSPAWNABLE from
  the UI because the spawn surfaces enumerated providers by hand.
- Opportunistic: PathPickerModal's useState('claude') / reset
  default → DEFAULT_PROVIDER (a phase-1 pattern the perl sweep
  missed because it wasn't a `?? 'claude'`).

Verified: tsc clean on both projects, electron-vite build clean,
vitest 170/170.

Part of #394 (phase 2c; feeds the phase-4 command rewrite, which
consumes the same descriptors).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant