Skip to content

gut(ui): strip residual skills state + types + i18n #2521

@alexey-pelykh

Description

@alexey-pelykh

Summary

After #2240 / #2245 removed the skills UI code tree, shadow fields persisted in the type system, state holders, and i18n — none have readers. Cleaning these closes the sweep and reduces fork-sync friction on upstream merges.

Evidence

Residue Location
"skills" in AgentsPanel type union ui/src/ui/views/agents.ts:30
"skills" in agentsPanel state union ui/src/ui/app-view-state.ts:131
agentSkillsLoading, agentSkillsError, agentSkillsReport, agentSkillsAgentId state fields ui/src/ui/app-view-state.ts:142-145
skillsReport: SkillStatusReport | null in host interface ui/src/ui/app-view-state.ts:191
SkillStatusReport type stub ui/src/ui/types.ts:376
SkillStatusReport import ui/src/ui/app-view-state.ts:27
agents.panels.skills: "Skills" ui/src/i18n/locales/*.ts:32 (all 7 locales)
agents.tabs.skills: "Manage skill availability and API key injection." ui/src/i18n/locales/*.ts:46 (all 7 locales)

None of these have readers: grep -rn 't\("agents\.panels\.skills"\)' ui/src/ returns zero hits; same for agents.tabs.skills. State fields are declared but never assigned or read.

Why this is safe

Read-only orphans that no code path touches. Removing unread fields is a type-narrowing operation — the TypeScript compiler will surface any missed consumer. Smoke tests (app.smoke.test.ts) assert required host-interface fields; narrowing the interface removes those assertions automatically.

Changes

  • ui/src/ui/views/agents.ts:30 — narrow AgentsPanel: drop "skills" from union
  • ui/src/ui/app-view-state.ts:131 — same narrowing in agentsPanel
  • ui/src/ui/app-view-state.ts:142-145 — delete four agentSkills* fields
  • ui/src/ui/app-view-state.ts:191 — delete skillsReport field
  • ui/src/ui/app-view-state.ts:27 — remove SkillStatusReport import
  • ui/src/ui/types.ts:376 — delete SkillStatusReport type
  • ui/src/i18n/locales/{en,de,es,pt-BR,zh-CN,zh-TW}.ts:32,46 — delete agents.panels.skills and agents.tabs.skills entries in ALL locale files

AC

  • grep -rn 'agentSkills\|SkillStatusReport\|skillsReport' ui/src/ returns zero hits
  • grep -rn '"skills"' ui/src/ui/views/agents.ts ui/src/ui/app-view-state.ts returns zero hits
  • grep -rn 'agents\.\(panels\|tabs\)\.skills' ui/src/i18n/ returns zero hits
  • pnpm check green
  • pnpm test green
  • pnpm test:ui:smoke green

Context

Follow-up to PR #2240, #2245 (skills UI code tree gutted). These shadow fields were outside the scope of the original sweep — discovered during the post-#2336 UI remnants audit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gutRemoving dead upstream subsystems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions