2.3 KiB
2.3 KiB
spec, created, status
| spec | created | status |
|---|---|---|
| docs/specs/agents/runtime-updates.md | 2026-08-22 | completed |
Fix Plan: Anchored Managed Runtime Version Popover
Root cause
RuntimeVersionPicker renders RuntimeVersionBrowser as a conditional block
inside the update body. The browser's command list therefore participates in
normal layout flow and expands the dialog or mobile drawer instead of behaving
like an anchored selector.
Repair
Use the existing @kandev/ui/popover primitive around the version trigger and
render the searchable Command content in PopoverContent. Keep the existing
shared selection callbacks and close the popover after target selection. The
desktop dialog and mobile drawer must use the same popover state and catalogue;
only their trigger surface and available viewport geometry differ.
Regression coverage
- Desktop: opening a long catalogue renders a
PopoverContentoutside the dialog's layout subtree and leaves the dialog height unchanged. - Mobile: opening the same catalogue renders the popover outside the drawer's layout subtree, leaves the drawer height unchanged, keeps options at least 44px high, and preserves selection.
- Existing searchable selection and preview callback coverage remains green.
Files
apps/web/components/settings/runtime-version-picker.tsxapps/web/components/settings/agent-runtime-update-control.test.tsxapps/web/e2e/tests/settings/agent-runtime-update.spec.tsapps/web/e2e/tests/settings/mobile-agent-runtime-update.spec.tsdocs/specs/agents/runtime-updates.md
Verification
Completed on 2026-08-22:
- Component tests: 6 passed.
- Desktop managed-runtime E2E: 15 passed.
- Mobile managed-runtime E2E: 5 passed.
- Web typecheck passed.
- Web i18n check passed.
- Changed-file ESLint passed.
git diff --checkpassed.
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
Out of scope
- Changing version resolution, selection semantics, or update job behavior.
- Replacing the shared dialog, drawer, command, or popover primitives.