Docs: Add explicit browser compatibility floor and graceful fallback for unsupported clients #4
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The refactor docs do not define browser compatibility requirements or any gating for older, incompatible browsers. Phase 6 acceptance only says "E2E capture→publish on iPhone and Android browsers works," which is too vague to be testable.
This issue tracks making that promise explicit without turning it into a POC blocker.
Scope
Three items, kept small:
Minimum version floor — document the oldest iOS Safari and Android Chrome the app will support, written into the tech spec as a real constraint rather than an assumption.
Graceful fallback — when an unsupported browser loads the app, show a clear message with a link to update, instead of a broken mask or silent failure. No polyfill work; a hard stop is fine.
Load-bearing API inventory — a short note listing the APIs the client depends on (OffscreenCanvas, the crop pipeline, File System Access if used, etc.) so future contributors know what not to break.
Non-goals
Acceptance criteria
Doc changes applied:
Test cases needed once implementation exists:
Verified in main @
0c00d25: REQUIREMENTS.md:18 CAPTURE-10 shipped (iOS Safari, Android Chrome, desktop Chrome/Edge/Firefox, hard stop, no polyfills). frontend/src/browser.ts implements the check.