fix(reconcile): close W10 QA Mediums and Lows

Bundle of small reconcile fixes from the W10 QA round:

- Switch tap-target padding -12 px -> -13 px closes the 1.6 px vertical short-fall to spec-strict WCAG 2.5.5 (design M1).
- animate-pulse skeleton sites in daily-briefing, trend-annotation and doctor-report dialog now carry motion-reduce:animate-none (design M2).
- Doctor-report unavailable rows render with text-muted-foreground instead of line-through so the visual reads as 'unavailable' rather than 'deleted'; the italic hint line below still carries the semantic (design M4).
- WelcomeCarousel scrollIntoView now reads scrollBehaviorForUser from src/lib/motion so all four advertised call-sites share the helper (simplifier L-1).
- Coach replay-injection audit row renamed audit.coach.replay-injection -> insights.coach.replay_injection to match the <surface>.<verb> convention across the audit ledger (simplifier L-2).
- /api/integrations/withings/resume drops the unused request param (the handler reads neither body nor headers; requireAuth scopes the call) (simplifier M-4).
- verifyRegistration body gets the same Zod boundary narrow W13 L-3 added to verifyAuthentication; SimpleWebAuthn still owns cryptographic validation (senior-dev L-1).
This commit is contained in:
Marc-André Bombeck committed 2026-05-21 23:06:13 +02:00
1 parent f1e16bf713
commit 468e38c3ef
10 files changed
+66 -33

No files matched your search

+1 -1
View File
@@ -447,7 +447,7 @@ describe("POST /api/insights/chat — integration", () => {
// Audit row is the durable observable signal — assert it landed
// with the conversation id + turn index, no message content.
const auditRows = await prisma.auditLog.findMany({
where: { action: "audit.coach.replay-injection" },
where: { action: "insights.coach.replay_injection" },
});
expect(auditRows).toHaveLength(1);
expect(auditRows[0].userId).toBe(userId);