Commit Graph

21 Commits

Author SHA1 Message Date
7cd125053c feat(shared): polish beta UX copy and friendly errors
Map snackbars to stable user-facing strings, rewrite transfer-oriented
empty states and settings copy, and resource-back progress/status labels.
2026-07-15 03:53:24 +02:00
b602a3acb6 feat(diagnostics): harden ingestion and delivery 2026-07-15 00:43:49 +02:00
ead4e09a60 feat(shared): add opt-in diagnostics client with compile-time kill switch
Ship client-side telemetry, crash capture, and bug-report assembly behind a
user opt-in, with NoOp transport until Cloudflare is wired. Builds can set
vnidrop.diagnostics.included=false to omit the Share-diagnostics UI and
disable the telemetry/crash auto-upload stack while keeping bug reports.
2026-07-14 08:27:42 +02:00
d0c8d8774a fix(security): address medium findings for ACL, limits, and UX
Tighten approve-endpoint to active shares with TTL sessions, reject non-file
FDs, lower default ticket/approval/size caps, show endpoint IDs and Public-mode
warnings, harden Android receive path checks, and run cargo-audit in CI.
2026-07-13 18:54:28 +02:00
50d43a3867 feat(send): share folders as multi-file collections
Add folder pickers on Android, iOS, and desktop. Desktop and iOS walk
directory paths in Rust; Android expands SAF trees to per-file FDs
with relative collection paths because directory FDs are unsupported.
2026-07-12 17:57:00 +02:00
d3a5f19ecb feat(send): multi-file shares and receivers polish
Allow selecting multiple files on Android, desktop, and iOS and share them
as one transfer through the core multi-source path. Update the composer UI
for multi-file review, hide unfinished iOS receive methods, and surface
refusal reasons on the receivers list.
2026-07-12 17:03:53 +02:00
a79c61b9d7 feat(android): receive into system Downloads via MediaStore
Default Android receive destination is now the shared system Downloads
collection (like desktop), using MediaStore on API 29+ instead of
app-private storage. Legacy app-private defaults are promoted back to
public Downloads so existing installs pick up the fix.
2026-07-12 04:43:34 +02:00
d5d4e37d1c fix(android): make default receive path actually writable
Android emulated storage rejects hard-link commit even when canWrite()
reports success. Fall back to exclusive rename for publish, probe real
writes during folder validation, and label the default app downloads dir
clearly so it is not confused with shared system Downloads.
2026-07-12 04:40:10 +02:00
4050a7c011 fix(receive): harden invitation open path and cover receive loop
Tighten cold-open and in-app invitation handling so ticket acquisition is
stricter and less racey across hosts, and expand automated coverage for the
receive history and acquisition flow before merge.
2026-07-12 04:31:19 +02:00
996cc0a5ab feat(receive): add adaptive receive flow and document opening 2026-07-12 04:15:21 +02:00
3da91be771 feat(send): build durable transfer details and sharing flow 2026-07-11 09:31:19 +02:00
b4306d6694 feat(send): build adaptive transfer creation flow 2026-07-10 22:06:31 +02:00
0bf4da0ee9 feat(core): add configurable share access policy 2026-07-10 22:06:20 +02:00
a15be5787d refactor(ui): establish modular Compose foundation 2026-07-10 18:19:24 +02:00
2271f453f1 feat(platform): adopt hardened core contracts 2026-07-10 12:25:17 +02:00
72340c6c84 feat: add preferences and send empty state 2026-07-08 00:06:00 +02:00
912874fd0c feat(platform): add device info and network summary support
This adds DeviceInfo to the Platform interface and implements it for Android, iOS, and JVM, including battery level and active network summary where available.

Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:27 +02:00
6bcfc534a0 Build native UI shell foundation 2026-07-04 10:41:51 +02:00
1c525288a5 Add native file picker to core test UI 2026-07-03 00:30:21 +02:00
3cdbf7e8f9 Add mobile file access sources 2026-07-03 00:24:25 +02:00
90463d7210 Baseline Compose Multiplatform Iroh migration 2026-07-02 23:53:47 +02:00