Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 11:09
8633586

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)