# Phase 14: Desktop E2E Coverage - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-06-12 **Phase:** 14-Desktop E2E Coverage **Areas discussed:** Spec-compat strategy, Desktop gate severity, Desktop assertion depth, Desktop profile/viewport --- ## Spec-Compat Strategy | Option | Description | Selected | |--------|-------------|----------| | Conditional skips, shared specs | One set of spec files; gate mobile-only tests with `test.skip(project==='desktop')`, assert desktop equivalents on divergence; cross-cutting tests shared. | ✓ | | Separate desktop spec files | New `desktop.spec.ts`; mobile specs project-filtered. Clear separation, duplicates cross-cutting assertions. | | | Locator-only, no skips | Viewport-agnostic locators, no skips. Impossible where elements don't exist on desktop (FAB, bottom bar). | | **User's choice:** Conditional skips, shared specs **Notes:** One source of truth, least duplication. Mobile profiles stay exactly as authored in Phase 7. --- ## Desktop Gate Severity | Option | Description | Selected | |--------|-------------|----------| | Blocking (same as mobile) | Desktop failures block the merge exactly like iphone/pixel. | ✓ | | Advisory (non-blocking) | Desktop runs/reports but doesn't block merge (continue-on-error). | | **User's choice:** Blocking (same as mobile) **Notes:** Resolves ROADMAP Success Criterion 3 (deferred to planning). Implies specs must be deterministic before merge — fix flakes, don't downgrade the gate. --- ## Desktop Assertion Depth | Option | Description | Selected | |--------|-------------|----------| | Parity-adapted | Assert desktop equivalents (sidebar nav, no overflow, populated/empty/error states, nav tap targets); skip FAB/bottom-bar. | ✓ | | Render-only smoke | Just no-overflow + states render; no desktop-chrome assertions. | | | Full divergence assertions | Also assert mobile chrome absent + desktop-only elements present. | | **User's choice:** Parity-adapted **Notes:** Full-divergence rejected on code grounds — `New Event` is not mobile-only (desktop toolbar button shares the name, `CalendarShell.tsx:424`); only the 56×56 FAB geometry is mobile-specific. --- ## Desktop Profile / Viewport | Option | Description | Selected | |--------|-------------|----------| | Desktop Chrome default, no WebKit | `devices['Desktop Chrome']` (1280×720), single desktop project. | ✓ | | Desktop Chrome at wider width | Override to ~1440×900 for more sidebar/grid real estate. | | | Add Desktop WebKit too | Desktop Chrome + Desktop Safari/WebKit. | | **User's choice:** Desktop Chrome default, no WebKit **Notes:** Apple member already covered on mobile Safari (iphone/WebKit). Desktop Chrome sufficient for shared/wall browser. ## Claude's Discretion - Exact skip-gate mechanism (`test.skip(testInfo.project.name === 'desktop')` vs. `isDesktop` describe split vs. project `grep`/`grepInvert`) — pick the cleanest that avoids duplicating cross-cutting tests. - Whether the desktop "New Event" toolbar button gets its own ≥44px tap-target assertion as the desktop parity equivalent of the FAB check (recommended, optional). ## Deferred Ideas - Desktop WebKit profile — declined for this phase; revisit only on a desktop-Safari-specific bug. - Live desktop event-create round-trip — still blocked by dev user 1 having no CalDAV calendar (carried from Phase 7).