96 Commits

Author SHA1 Message Date
Hammed Abass
635e7268b5 Merge pull request #18 from vnidrop/feat/release-configuration
ci: add Windows Store release pipeline
v1.0.0
2026-07-16 23:29:25 +02:00
32c2734378 fix(ci): pass named MSIX build arguments 2026-07-16 23:11:32 +02:00
afa593b6db fix(ci): use available Temurin release version 2026-07-16 22:52:24 +02:00
97dd9b32be ci: build Windows Store release artifacts 2026-07-16 22:34:02 +02:00
4321340a23 docs: update privacy disclosures for store release 2026-07-16 21:40:13 +02:00
Hammed Abass
c0d6419eb5 Merge pull request #17 from vnidrop/feat/docs
feat(docs): add VniDrop product website
2026-07-16 20:40:08 +02:00
ebff97d5e2 feat(docs): add OG image and prune unused assets 2026-07-16 20:38:53 +02:00
68b379e6b5 ci(docs): validate typecheck and production build 2026-07-16 20:10:50 +02:00
526a5da444 feat(docs): streamline product and privacy pages 2026-07-16 19:49:17 +02:00
0a185077af feat(docs): refine product showcase and branding 2026-07-16 18:11:06 +02:00
d61d6f3c5b feat(docs): add animated product website 2026-07-16 16:38:30 +02:00
e40a4bfee2 fix(app): standardize branding and disable telemetry 2026-07-15 23:30:13 +02:00
d2d3c45180 fix(core): make import cancellation test deterministic 2026-07-15 23:20:22 +02:00
Hammed Abass
0474570e15 Merge pull request #16 from vnidrop/feat/project-community-docs
docs: establish project documentation and licensing
2026-07-15 22:49:09 +02:00
fbabb213f1 docs: establish project documentation and licensing 2026-07-15 22:35:42 +02:00
b22536eaf4 fix(ui): keep username draft stable while editing 2026-07-15 20:28:00 +02:00
Hammed Abass
b355838edf Merge pull request #15 from vnidrop/feat/ios-files-integration
fix(ios): support sandboxed file transfers
2026-07-15 20:09:33 +02:00
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
Hammed Abass
bf81661667 Merge pull request #14 from vnidrop/feat/diagnostics-telemetry
feat(diagnostics): ship production telemetry and bug reporting
2026-07-15 02:49:03 +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
Hammed Abass
6dd867e43d Merge pull request #13 from vnidrop/fix/security-hardening
fix(security): harden transfer ACL, tickets, and local secret handling
2026-07-13 19:06:49 +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
Hammed Abass
fe97ad1b8a Merge pull request #12 from vnidrop/feat/macos-unified-window-chrome
feat(desktop): unify macOS window chrome
2026-07-13 08:44:00 +02:00
4059bce3e4 feat(desktop): unify macOS window chrome 2026-07-13 08:34:44 +02:00
Hammed Abass
b90148f6b8 Merge pull request #11 from vnidrop/docs/agents-md
docs: AGENTS.md guides and multi-platform app icons
2026-07-13 00:52:58 +02:00
47e828200e chore: ignore local output/ design exports 2026-07-13 00:44:43 +02:00
9b7d5fd586 chore(branding): add multi-platform app icons and source assets
Wire Android adaptive/webp launchers, iOS AppIcon, and desktop package
icons (macOS icns, Windows ico, Linux png) from a shared assets/ tree.
2026-07-13 00:44:43 +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
4de004cc1f docs: add root AGENTS.md for future AI collaborators
Capture stack map, hard rules, compose-skill usage, sparse comment
policy, testing/CI commands, git/PR conventions, and anti-patterns so
agents adapt to VniDrop without rediscovering them.
2026-07-12 20:21:44 +02:00
Hammed Abass
938ac0be77 Merge pull request #10 from vnidrop/refactor/split-runtime-module
refactor(core): split runtime into focused modules
2026-07-12 20:09:44 +02:00
a63c64a525 refactor(core): split oversized runtime.rs into focused modules
Break the ~1.7k-line runtime orchestration unit into facade, share,
receive, lifecycle, and provider modules so future send/receive work
stays reviewable. Behavior and UniFFI surface are unchanged.
2026-07-12 19:27:05 +02:00
Hammed Abass
f835b68b95 Merge pull request #9 from vnidrop/feat/step3-remaining
feat(send): finish step 3 — iOS QR/NFC, folders, per-receiver progress
2026-07-12 19:13:35 +02:00
e1abba3fde fix(core): drop active_transfers guard before await in status
Clippy await_holding_lock failed because the sync MutexGuard lived
across the active_shares.lock().await in the RuntimeStatus struct expr.
2026-07-12 19:07:45 +02:00
c348aa1c09 style(core): rustfmt cancel and output_sink test changes 2026-07-12 19:03:31 +02:00
2e6d1fa48e fix(core): stop cancel-during-export test hangs
Signal transfer cancel synchronously before any runtime await, drive
API calls via Handle::block_on so concurrent cancel cannot deadlock a
receive, and rewrite the gated output-sink cancel test to avoid the
slow multi-megabyte write loop that starved CI.
2026-07-12 18:45:22 +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
Hammed Abass
ed9d9ce8c5 Merge pull request #8 from vnidrop/feat/step3-multifile-receivers
feat(send): multi-file shares and receivers polish
2026-07-12 17:41:41 +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
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