3.4 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | |
|---|---|---|---|---|---|---|---|
| 05-settings-update-indicator | Show update awareness in Settings | complete | 4 |
|
plan.md | ../../specs/agents/runtime-updates.md |
Task 05: Show update awareness in Settings
Acceptance
- Settings > Agents loads page-local batch status and shows a blue dot only for
structural
update_available; unknown status leaves the update control usable. - The trigger exposes effective and latest versions in accessible copy, and opening it still fetches the authoritative live preview before mutation.
- Desktop keeps the existing dialog, mobile keeps the existing 44 px trigger and inset drawer, and Use Kandev default shares the same state/action logic.
Verification
cd apps && pnpm install --frozen-lockfile && pnpm --filter @kandev/web test -- lib/api/domains/agent-update-api.test.ts hooks/domains/settings/use-agent-runtime-update-statuses.test.tsx components/settings/agent-runtime-update-control.test.tsx && pnpm --filter @kandev/web exec eslint app/settings/agents/page.tsx components/settings/installed-agent-card.tsx components/settings/agent-runtime-update-control.tsx hooks/domains/settings/use-agent-runtime-update-statuses.ts lib/api/domains/agent-update-api.ts && pnpm --filter @kandev/web i18n:check && cd web && pnpm run typecheck
Files likely touched
apps/web/lib/api/domains/agent-update-api.tsapps/web/lib/api/domains/agent-update-api.test.tsapps/web/lib/types/http-agents.tsapps/web/hooks/domains/settings/use-agent-runtime-update-statuses.tsapps/web/hooks/domains/settings/use-agent-runtime-update-statuses.test.tsxapps/web/app/settings/agents/page.tsxapps/web/components/settings/installed-agent-card.tsxapps/web/components/settings/agent-runtime-update-control.tsxapps/web/components/settings/agent-runtime-update-control.test.tsxapps/web/src/locales/{en,pt-pt,zh-cn,zh-hk,zh-tw}/agents.json
Dependencies
Task 03.
Parallelism
Sequential. It consumes the final backend status and reset contracts.
Inputs
- Spec: Desktop and mobile behavior, update status, failure modes
- Plan: Frontend and Mobile design contract
- Mobile exemplar: existing
AgentRuntimeUpdateControl
Output contract
Report rendered states, accessibility/mobile behavior, locale changes, exact unit/lint/i18n/typecheck results, risks, and synchronized task/plan status.
Results
Complete. Settings now loads page-local cached status, shows the blue dot only
for structural update_available, keeps unknown controls usable, refreshes
after Rescan and successful jobs, and shares the exact preview/mutation logic
between the desktop dialog and mobile drawer. Accessible labels include the
effective/latest versions, all new copy is localized in five catalogues, and
the 44 px mobile trigger remains intact.
Verification: focused frontend unit tests passed 49/49; full web lint passed;
pnpm run typecheck passed; pnpm run i18n:check passed with pseudo and all
four translated catalogues complete.
Follow-up review verification keeps the complete backend version projection in the selector, prefers terminal effective versions, and clears a stale active selection after a successful default reset. The focused frontend tests passed 32/32, the changed component lint passed, full web lint/typecheck/i18n passed, and desktop/mobile E2E passed 15/15 and 4/4.