248 Commits

Author SHA1 Message Date
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
Hammed Abass
ceec383473 Merge pull request #7 from vnidrop/fix/ui-cleanup-username
fix(ui): username input and transfer details cleanup
2026-07-12 17:00:29 +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
Hammed Abass
e114396738 Merge pull request #6 from vnidrop/feat/transfer-progress
feat(ui): transfer progress, cancel, and delivery events
2026-07-12 16:08:43 +02:00
172f244ed4 ci: avoid duplicate workflow runs on pull requests
Limit push triggers to master so PR branch updates only run once via
pull_request, and cancel superseded in-progress runs with concurrency groups.
2026-07-12 15:57:47 +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
Hammed Abass
443aa7461c Merge pull request #5 from vnidrop/feat/kmp-ci
ci(shared): add thin KMP jvmTest workflow
2026-07-12 15:44:38 +02:00
95eeeb6a23 ci(shared): run jvmTest on pull requests
Add a path-filtered Shared KMP workflow so receive/send ViewModel and
Compose foundation regressions fail CI. Runs on macOS arm64 because host
Rust embedding for Linux JVM is disabled in the Gradle cargo config.
2026-07-12 08:56:30 +02:00
Hammed Abass
5b36de627d Merge pull request #4 from vnidrop/feat/receive-flow
feat(receive): adaptive receive flow and Android Downloads
2026-07-12 08:51:47 +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
Hammed Abass
5580ae7fe9 Merge pull request #3 from vnidrop/feat/ui-next
Harden transfer lifecycle and build the modular send experience
2026-07-11 13:57:58 +02:00
a18b1fb4e8 feat(macos): open transfer invitations in native share sheet 2026-07-11 09:31:41 +02:00
3da91be771 feat(send): build durable transfer details and sharing flow 2026-07-11 09:31:19 +02:00
dc862bc01c feat(core): track delivery receipts and transfer deletion 2026-07-11 09:30:56 +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
382a015688 test(core): organize hardening coverage and CI 2026-07-10 12:25:33 +02:00
2271f453f1 feat(platform): adopt hardened core contracts 2026-07-10 12:25:17 +02:00
e46a2522ce feat(core): harden transfer persistence and recovery 2026-07-10 12:25:00 +02:00
72340c6c84 feat: add preferences and send empty state 2026-07-08 00:06:00 +02:00
Hammed Abass
9a7abaca00 Merge pull request #2 from vnidrop/feat/compose-app-state-refactor
Refactor app state handling
2026-07-07 17:57:06 +02:00
5b5126c6b4 Refactor app state handling 2026-07-07 17:53:01 +02:00
Hammed Abass
b8a62799b7 Merge pull request #1 from vnidrop/feat/ui-phase
UI phase
2026-07-07 17:39:42 +02:00
fd4fff2c86 docs: add compose development guidelines and skills
Added a comprehensive collection of Compose development guidelines, best practices, and skill definitions in the .codex directory.

Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:43 +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
3d52e62e81 chore: ignore .junie directory in .gitignore
Co-authored-by: Junie <junie@jetbrains.com>
2026-07-07 16:55:23 +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
68363fb680 Harden Rust transfer core 2026-07-03 15:21:22 +02:00
1f1401d242 Allow Android network sockets 2026-07-03 14:32:03 +02:00
9a8cd1c698 Package Rust library in Android app 2026-07-03 14:25:54 +02:00
63cf025b2e Reduce Android debug native size 2026-07-03 01:19:15 +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