Files
familysync/.planning/phases/14-desktop-e2e-coverage/14-DISCUSSION-LOG.md
T

70 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).