4.1 KiB
4.1 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-shared-warning-tooltip | Compact shared profile warning | done | 1 | plan.md | ../../specs/agents/requirements/no-silent-model-fallback.md |
Task 01: Compact shared profile warning
Acceptance
- A profile whose saved start model is absent from the known host catalog remains selectable and renders one focusable/hoverable amber warning icon without nesting an interactive control in the selected combobox trigger.
- The existing localized host-probe sentence is absent from the persistent option row and appears in a fine-pointer tooltip or coarse-pointer drawer when the warning icon is inspected.
- The create-task desktop and mobile flows retain the warning behavior, profile selectability, and mobile no-horizontal-overflow guarantee.
Verification
From a fresh worktree, first run:
cd apps && pnpm install --frozen-lockfile
Then run the focused checks:
cd apps/web && pnpm vitest run components/task-create-dialog-options.test.tsx
cd apps/web && pnpm run typecheck
cd apps/web && pnpm run i18n:ratchet
cd apps/web && pnpm e2e:run --project chromium tests/settings/no-silent-model-fallback.spec.ts
cd apps/web && pnpm e2e:run --project mobile-chrome tests/settings/mobile-no-silent-model-fallback.spec.ts
Files likely touched
apps/web/components/task-create-dialog-options.tsxapps/web/components/combobox.tsxapps/web/components/task-create-dialog-options.test.tsxapps/web/e2e/tests/settings/no-silent-model-fallback.spec.tsapps/web/e2e/tests/settings/mobile-no-silent-model-fallback.spec.ts
Dependencies
None.
Parallelism
Sequential. The unit and E2E assertions share the warning trigger contract.
Inputs
docs/specs/agents/requirements/no-silent-model-fallback.md, section 8 and frontend test requirements.docs/decisions/2026-08-15-executor-authoritative-model-selection.md, which keeps the host probe advisory and the executor authoritative.apps/web/AGENTS.md, especially tooltip, i18n, and mobile guidance.- Existing
Comboboxdisabled-option tooltip pattern inapps/web/components/combobox.tsx.
Risks
- The warning trigger is nested inside a command option. Keep focus and pointer handling from accidentally selecting or dismissing the profile option while the user inspects the message.
- Radix tooltip content is portalled. E2E selectors must target the visible tooltip content, not a hidden or stale portal instance.
Output contract
Report the summary, actual files changed, exact commands and results, any mobile-rendered verification, blockers, and synchronized task/plan status.
Results
Implemented the compact warning trigger in the shared agent-profile option renderer. The warning remains selectable, has an accessible focusable trigger, opens in a fine-pointer tooltip or coarse-pointer Drawer, and uses a noninteractive indicator in the selected combobox trigger. The advisory sentence is no longer persistent option content.
Verification:
cd apps && pnpm install --frozen-lockfile— passed.cd apps/web && pnpm vitest run components/task-create-dialog-options.test.tsx— passed, 17 tests.cd apps/web && pnpm exec eslint components/combobox.tsx components/task-create-dialog-options.tsx components/task-create-dialog-options.test.tsx e2e/tests/settings/no-silent-model-fallback.spec.ts e2e/tests/settings/mobile-no-silent-model-fallback.spec.ts— passed.cd apps/web && pnpm run typecheck— passed.cd apps/web && pnpm run i18n:ratchet— passed, zero new or modified violations.cd apps/web && pnpm e2e:run --project chromium tests/settings/no-silent-model-fallback.spec.ts— passed, 1 test.cd apps/web && pnpm e2e:run --project mobile-chrome tests/settings/mobile-no-silent-model-fallback.spec.ts— passed, 1 test.git diff --check— passed.- Fresh synthetic desktop and mobile screenshots were captured, inspected, and compressed for the PR description.
- Review remediation completed: the selected trigger no longer nests an interactive warning button, and coarse-pointer inspection uses the shared Drawer pattern.