Releases
v1.0.0
Compare
Sorry, something went wrong.
No results found
1.0.0 (2026-08-10)
⚠ BREAKING CHANGES
remove golang implementation
Features
add camera picker (1169480 )
add initial files for the flutter project (c852f18 )
add serve target to Makefile for starting the porter HTTP server (5ea1b3a )
flutter: add fountain decoder with PRNG parity to nodejs encoder (c226ea3 )
flutter: detect a dead or stalled worker and warn before quitting (39596ac )
flutter: enable Android build and run on-device (7b08649 )
flutter: make the Android receiver releasable (a1dece1 )
flutter: make the Android receiver releasable (524a457 )
flutter: move receiver decoding off the UI thread, cap GF(2) fallback, debounce metadata, add resume (2a84f78 )
flutter: resume fountain transfers instead of re-peeling from zero (d69c151 )
flutter: show meaningful progress for fountain transfers (a1e04dc )
flutter: wire fountain transfers into Assembler and transfer UI (22792a2 )
golang: add a server that listens to uploaded files (4ac1e3d )
golang: copy built file to local/bin (360bece )
implement join functionality for file transfers with manifest support (4fee434 )
nodejs: 2x2 QR grid layout + auto-hiding info sidebar (f9098a9 )
nodejs: add fountain coding (LT codes) encoder (b401fd1 )
nodejs: add HTTP receiver server (porter serve) (937c3e2 )
nodejs: add join subcommand with SHA-256 verification (porter join) (6e4e31f )
nodejs: decode fountain transfers in porter serve (3caf4d4 )
nodejs: move to rollup (2a2d461 )
nodejs: wire serve/join CLI dispatch with feature flags (6aedd68 )
porter_android: add button to open the output directory (f26cded )
porter_android: add camera focus and frame-rate controls (873e3bc )
porter_android: add camera resolution picker incl. square presets (b76959a )
porter_android: add macOS camera picker via patched mobile_scanner (5f24056 )
porter_android: add multi-transfer cards screen (6650e73 )
porter_android: add persisted settings + Settings screen (cca0ae7 )
porter_android: add persistent Open button to transfer cards (cf82149 )
porter_android: add transfer-complete toast, auto-save, chunk grid, and zoom (dbcaba7 )
porter_android: limit frame-rate options by resolution (030ca70 )
porter_android: make save output directory configurable (885fe36 )
porter_android: persist chunks per-transfer and add open-folder button (d27848a )
porter_android: relay scanned QR codes to a porter serve instance (16fa625 )
porter_android: show live scans/sec in the HUD (a0dfc00 )
porter_android: show transfer throughput and per-chunk detail (09834e7 )
prod-readiness pass + Rust sender (TUI, porter serve) (#8 ) (65f06fa )
replace qrcode-terminal with qrcode-generator and add new features (d2a2628 )
rust-sender: port porter join, superseding the TypeScript package (0a274b0 )
rust-sender: warn before a very long transfer (6b93c27 )
update chunk format to include ID and improve deduplication logic (ebf7c37 )
web: add web-based QR receiver with camera, drop zone, relay and SHA-256 verification (0364fdb )
Bug Fixes
deps: add subprojects to workspace (2ed87b2 )
flutter: duplicate scans of already-hydrated chunks must still surface the active transfer (997c4b8 )
flutter: grant macOS bookmark entitlement for persisted output directory (2a82799 )
flutter: hydrateAll must skip already-completed transfers (8ff504c )
flutter: hydration crashed the receiver on real multi-thousand-chunk transfers (a4b4919 )
flutter: key fountain transfers on (id, K, blockSize), not id alone (422646d )
flutter: report fountain progress, ETA and elapsed time honestly (0cac6ea )
flutter: scale fountain progress to the blocks still missing (71a2a1e )
flutter: stop blinking the camera torch after every scan (275242d )
flutter: stop gitignoring the macOS xcconfig stubs (cfa114f )
flutter: stop the spill thrashing during the decode avalanche (afeb372 )
flutter: track blocks on the progress bar, symbols behind it (ce86810 )
fountain: make encoder usable on large files (no hang) (c81ec4a )
golang/receiver: normalize QR format check to accept QRCode and qrcode variants (582106b )
nodejs: cap multi-QR display to avoid sidebar overlapping codes (0e9ce9f )
nodejs: eliminate periodic black flash in QR slideshow (2206365 )
porter_android: add sandbox entitlements for relay and custom save dirs (bfade53 )
porter_android: avoid controllerNotAttached race on startup (a300096 )
porter_android: avoid crash when requesting unsupported frame rate (5d9b831 )
porter_android: crop preview to 1:1 for square resolution presets (e83e39e )
porter_android: decay scans/sec when no new QR is detected (7453abb )
porter_android: enable continuous autofocus on macOS (3b421d6 )
porter_android: enable tap-to-focus on macOS (8e818f9 )
porter_android: ignore torch errors during flash feedback (ef6e542 )
porter_android: implement digital zoom for macOS via frame cropping (724d875 )
porter_android: persist write access to the output directory on macOS (66b6ad4 )
porter_android: show save confirmation immediately with an Open action (ebd8a75 )
renderer: update sidebar display logic for slideshow mode (501b7f3 )
rust-sender: avoid u32 overflow in the fountain degree table (fa9f7b5 )
rust-sender: size QR payloads against a byte-mode encoding (bdea42d )
typo on landing page (da99321 )
Performance Improvements
flutter: make fountain peeling linear and bound its memory (e2afead )
flutter: restrict scan to QR-only, default 1080p, infer sender cadence (ca7c53c )
nodejs: batch terminal redraws into a single write (fc58a27 )
porter_android: remove artificial scan-rate cap on macOS (cec26c8 )
rust-sender: lay multi-QR grids out width-first (6e077aa )
Miscellaneous Chores
remove golang implementation (e60a8a3 )
You can’t perform that action at this time.