Commit Graph

96 Commits

Author SHA1 Message Date
c3d54e9142 fix(ios): support sandboxed file transfers 2026-07-15 19:40:20 +02:00
43db35e9a2 feat(ui): add animated empty states 2026-07-15 18:34:26 +02:00
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
502d724743 fix(diagnostics): configure production ingestion safely 2026-07-15 02:36:21 +02:00
24e14565b3 fix(android): package native core for x86_64 2026-07-15 01:35:10 +02:00
37c364d66a fix(shared): keep dense transfer QR codes scannable 2026-07-15 01:10:48 +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
e7fb0331b5 fix(security): harden provider ACL, tickets, and local secrets
Close high-severity findings from the security review: default-deny blob
gets for unmapped hashes, map collection members for ACL, fail closed on
unknown access modes, require vnd1 tickets only, redact tickets from events,
exclude Android app-data backups, and tighten secret-file creation.
2026-07-13 18:41:43 +02:00
98375f479a feat(desktop): unify Linux window chrome 2026-07-13 16:43:13 +02:00
76dbff5a7c fix(shared): build only host-compatible targets 2026-07-13 10:17:40 +02:00
4059bce3e4 feat(desktop): unify macOS window chrome 2026-07-13 08:34:44 +02:00
ff8e046cf7 docs: rewrite AGENTS.md to agents.md / Codex style
Make agent instructions imperative and command-first, add nested
crates/vnidrop and shared guides, and keep compose-skill as the UI
source of truth with VniDrop-specific overrides.
2026-07-12 20:26:31 +02:00
07ec727c23 feat(send): show live progress per receiver
Attribute provider transfer progress to each remote endpoint so the
receivers panel and catalog can show per-peer send bars for multi-file
collections while a share is active.
2026-07-12 18:16:59 +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
d2929fbfbb feat(ios): enable QR and NFC invitation share/receive
Wire Core NFC entitlements and implement invitation ticket export,
QR presentation, and NDEF read/write on iOS so send/receive parity
matches Android.
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
9ffdaeaa50 fix(ui): drop redundant stop-sharing UI and fix username field
Remove the transfer-details progress bar and Stop sharing control now that
delete already revokes a share. Fix preferences username typing by keeping
local draft state and debouncing DataStore writes so trim/races no longer
fight the caret.
2026-07-12 16:33:48 +02:00
e1f82c8ef3 feat(ui): surface transfer progress, cancel, and delivery events
Make the transfer loop feel live: parse real core progress payloads, show
progress on send/receive surfaces, allow cancel/stop, retry failed receives,
and fix delivery-phase events so receiver completion updates the UI.
2026-07-12 15:53:51 +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
757966379b feat(core): add atomic receive history cleanup 2026-07-12 04:15:11 +02:00
3da91be771 feat(send): build durable transfer details and sharing flow 2026-07-11 09:31:19 +02:00
1e6404abfa fix(ui): present approvals modally and package fresh native builds 2026-07-10 22:06:35 +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
3160a5ed9c test(ui): cover modular features and feedback flows 2026-07-10 18:19:33 +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
5b5126c6b4 Refactor app state handling 2026-07-07 17:53:01 +02:00
ad914067a9 test(ui): update I18nResourceTest with new strings
Updated test to cover new strings added for settings and about sections.

Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:36 +02:00
51a7734b38 feat(ui): overhaul settings screen with device info and theme selection
Refactored SettingsScreen to display device information and allow user to choose between System, Light, and Dark themes. Updated AppUiState to remove unused diagnostics visibility flag.

Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:33 +02:00
8c84314528 feat(l10n): update strings for new settings and about screen
Added strings for device info, theme selection, and about section. Removed unused diagnostic strings.

Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:30 +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
8ae8a1ccee Polish native shell navigation 2026-07-05 20:27:48 +02:00
6bcfc534a0 Build native UI shell foundation 2026-07-04 10:41:51 +02:00
89a99582a5 Build Rust core handshake and Compose UI foundation 2026-07-04 08:59:23 +02:00
3e1a5268f4 Improve ticket copy and parsing 2026-07-03 01:03:39 +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
3da576a94e Refactor Rust core architecture 2026-07-03 00:09:11 +02:00
90463d7210 Baseline Compose Multiplatform Iroh migration 2026-07-02 23:53:47 +02:00