Files
kandev/docs/plans/clarification-submit-feedback/task-01-submit-feedback.md
T
2026-08-20 19:51:53 +01:00

3.9 KiB

id, title, status, wave, depends_on, plan, spec
id title status wave depends_on plan spec
01-submit-feedback Add clarification submit spinner done 1
plan.md ../../specs/ui/clarification-submit-feedback.md

Task 01: Add clarification submit spinner

Acceptance

  • The shared multi-question clarification Submit button shows the existing translated Submitting... label and an animated Spinner while its response request is pending; it remains disabled and does not show the idle check icon.
  • Idle and failed submissions retain the current retryable behavior, and the shared change works in task chat and Quick Chat without changing the mobile composition.
  • Desktop and mobile Playwright coverage proves the pending loading state.

Verification

Run from the repository root in one sequential block:

cd apps && pnpm install --frozen-lockfile
cd apps/web && pnpm run typecheck
cd apps/web && pnpm e2e:run --project chromium tests/chat/clarification.spec.ts -- --grep "question shortcuts stay disabled while answers are submitting"
cd apps/web && pnpm e2e:run --project mobile-chrome tests/chat/mobile-clarification.spec.ts -- --grep "loading spinner"
cd ../.. && git diff --check

Files likely touched

  • apps/web/components/task/chat/clarification-overlay-header.tsx
  • apps/web/e2e/tests/chat/clarification.spec.ts
  • apps/web/e2e/tests/chat/mobile-clarification.spec.ts

Dependencies

None.

Parallelism

Sequential. The shared component and its desktop/mobile proof must stay in one vertical slice.

Inputs

  • docs/specs/ui/clarification-submit-feedback.md
  • docs/plans/clarification-submit-feedback/plan.md
  • apps/web/hooks/domains/session/use-clarification-group.ts
  • apps/web/components/task/chat/clarification-overlay-header.tsx
  • Existing Spinner usage in apps/web/components/settings/system/bundle-customizer.tsx

Risks

  • The design-system spinner exposes an accessible status label; tests should scope that status to the submit button so unrelated loading indicators cannot satisfy the assertion.
  • The mobile test must use the configured mobile-chrome project and the existing causal response-hold pattern, not a fixed sleep.

Results

  • cd apps && pnpm install --frozen-lockfile passed.
  • cd apps/web && pnpm run typecheck passed.
  • cd apps/web && pnpm run lint passed with no errors or warnings.
  • cd apps/web && pnpm exec prettier --check components/task/chat/clarification-overlay-header.tsx e2e/tests/chat/clarification.spec.ts e2e/tests/chat/mobile-clarification.spec.ts passed.
  • cd apps/web && pnpm e2e:run --project chromium tests/chat/clarification.spec.ts -- --grep "question shortcuts stay disabled while answers are submitting" passed (1 test).
  • cd apps/web && pnpm e2e:run --project mobile-chrome tests/chat/mobile-clarification.spec.ts -- --grep "loading spinner" passed (1 test).
  • cd ../.. && git diff --check passed.
  • Final files: apps/web/components/task/chat/clarification-overlay-header.tsx, apps/web/e2e/tests/chat/clarification.spec.ts, apps/web/e2e/tests/chat/mobile-clarification.spec.ts, docs/specs/ui/clarification-submit-feedback.md, docs/plans/clarification-submit-feedback/plan.md, and this task file.
  • The managed E2E runs rebuilt the backend and pseudo-locale Vite assets and cleaned their isolated test artifacts. No E2E blockers or failure artifacts remain.
  • Fresh phone and desktop pending-state screenshots were captured with synthetic E2E data, visually inspected, compressed, and validated through apps/web/.pr-assets/manifest.json; the disposable capture specs were removed afterward.
  • Fixup: addressed the P2 accessibility review by adding aria-hidden="true" to the decorative spinner and asserting that attribute in both desktop and mobile E2E coverage.
  • Fixup verification passed: cd apps/web && pnpm run typecheck, cd apps/web && pnpm run lint, and the focused desktop/mobile E2E commands above.