Files
kandev/docs/plans/managed-runtime-version-picker/task-01-compact-searchable-picker.md
T

85 lines
3.5 KiB
Markdown

---
id: "01-compact-searchable-picker"
title: "Implement the compact searchable picker"
status: complete
wave: 1
depends_on: []
plan: "plan.md"
spec: "../../specs/agents/runtime-updates.md"
---
# Task 01: Implement the compact searchable picker
Replace the always-visible native 50-option selector with compact latest and
Kandev-default quick choices plus an explicit searchable browser. Keep the
existing target preview, default reset, approval, and job lifecycle callbacks.
## Acceptance
- Opening the dialog with a long catalogue shows the status summary and quick
choices, not the full version history.
- Browsing exposes a searchable list with latest, active, and default markers;
selecting a result previews that exact target.
- Desktop and mobile preserve the same selection behavior, with one contained
scroll owner and touch-sized rows on mobile.
- Existing locales remain complete and the focused desktop/mobile tests pass.
## Verification
```bash
cd apps && pnpm --filter @kandev/web test -- --run components/settings/agent-runtime-update-control.test.tsx
cd apps/web && pnpm run typecheck
cd apps/web && pnpm run i18n:check
cd apps/web && pnpm e2e:run --project chromium e2e/tests/settings/agent-runtime-update.spec.ts
cd apps/web && pnpm e2e:run --project mobile-chrome e2e/tests/settings/mobile-agent-runtime-update.spec.ts
```
## Files likely touched
- `apps/web/components/settings/agent-runtime-update-control.tsx`
- `apps/web/components/settings/runtime-version-picker.tsx`
- `apps/web/components/settings/agent-runtime-update-control.test.tsx`
- `apps/web/e2e/tests/settings/agent-runtime-update.spec.ts`
- `apps/web/e2e/tests/settings/mobile-agent-runtime-update.spec.ts`
- `apps/web/src/locales/en/agents.json`
- `apps/web/src/locales/pt-pt/agents.json`
- `apps/web/src/locales/zh-cn/agents.json`
- `apps/web/src/locales/zh-hk/agents.json`
- `apps/web/src/locales/zh-tw/agents.json`
- `docs/specs/agents/runtime-updates.md`
- `docs/plans/managed-runtime-version-picker/plan.md`
- `docs/plans/managed-runtime-version-picker/task-01-compact-searchable-picker.md`
## Dependencies
None.
## Parallelism
Sequential.
## Inputs
- Option 1 selected by the user: compact summary, quick latest/default
choices, explicit browse action, searchable complete catalogue.
- Existing `AgentRuntimeUpdateControl` callbacks and desktop/mobile surface.
- Mobile parity contract: one drawer body scroll owner and 44px touch rows.
## Output contract
Update the picker, localized copy, focused component/E2E coverage, and these
plan results. Report exact commands, changed files, and any remaining browser
verification blockers.
## Results
- Implemented the compact quick-choice picker and on-demand searchable version browser.
- Preserved preview/default callbacks and updated desktop/mobile selectors, rollback, reset, and status assertions.
- Added localized copy and regenerated the pseudo catalogue.
- Component test, typecheck, i18n check, changed-file lint, desktop E2E (15), mobile E2E (5), and `git diff --check` all pass.
- Traditional Chinese generation was blocked by the pre-existing `dynamicProfileSettings` residual warning; equivalent generated values were added manually and the catalog checks pass.
- Follow-up compactness refinement keeps the initial desktop dialog and mobile
drawer free of body overflow, while long streamed output remains scrollable.
- Fresh desktop and mobile screenshots were captured, inspected, mapped in the
PR asset manifest, and compressed before publication.