You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
v0.3.0
Android & camera
Camera capability probing (shared/platform.ts): continuous autofocus applied when the camera offers it, fps options gated by what it reports. Feature-probed, never UA-sniffed; torch reported but deliberately unused (emissive sender screen).
Receiving
Received video and audio play inline — served through a service-worker range route (iOS won't reliably play blob: URLs), with blob fallback.
Redesigned result page: preview, Save under it, stats under the heading, Transfer summary panel.
Clear Decimen cache button scrubs the received bytes from browser storage.
"Nothing happening?" toast floats above the preview (8 s first, 15 s after dismissal) with a troubleshooting modal behind its Help button.
Sending
Select File / Stop transfer picker with state-based labels.
Stream parameters moved into a grid at the bottom of Transfer settings.
Tap the QR to go fullscreen — implemented as a page state, not a fixed overlay, because Safari 26 latches its chrome tint onto fixed layers.
Share-the-receiver dialog (QR + copyable link + OS share sheet) from the streaming status line.
App-wide
Send/Receive switcher in every header; share dialog and button on the home page.
Real PWA icons (Android installability fixed — the manifest previously pointed at a demo photo); viewport-fit=cover on all pages so safe-area CSS applies; npm run icons regenerates the set.
License banner baked into every built artifact (JS, CSS, HTML, standalone files); attribution in the footer and LICENSE.
Docs restructured into docs/user/ and docs/technical/; README slimmed.
tsconfig.node.json typechecks build/ and vite.config.ts in every build.