You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updated README.md with an early-stage Work In Progress (WIP) status banner and guidelines for reporting bugs, proposing features, and submitting pull requests.
Updated README.md with comprehensive architecture overview, embedded WebDAV drive mounting (ProtoFS (X:)), Master Key Vault / BIP-39 mnemonic recovery, pre-auth proxy subsystem with LocalProxyBridge, and updated CLI references.
Added clear Telegram non-affiliation disclaimer and terms of service notice.
Contributor & Security Guidelines:
Added CONTRIBUTING.md detailing development setup, code standards, modularity rules, and PR workflow.
Added SECURITY.md establishing supported version policy, private vulnerability reporting workflow, response SLAs, and core cryptographic invariants.
π Added
Multi-ABI Android APK Release Artifacts:
Configured Android build and release workflows to build and publish dedicated arm64-v8a, armv7 (armeabi-v7a), and universal APKs (ProtoFS_v0.4.2_arm64-v8a.apk, ProtoFS_v0.4.2_armv7.apk, ProtoFS_v0.4.2_universal.apk).
Changed the account button status display in the sidebar from "Testing..." to "Connecting..." while MTProto connection checks are in progress.
Versioned Release CI Asset Packaging:
Configured release workflow to inject the dynamic version string into binary and APK artifact filenames (e.g., protofs-cli-v0.4.1-windows-x86_64.exe, protofs-portable-v0.4.1-windows-x86_64.exe, ProtoFS_v0.4.1_android.apk).
Published Windows CLI, Portable GUI, and NSIS/MSI installers (.exe / .msi) directly as standalone assets without zip archive wrapping.
SSOT Version Bump Synchronization:
Enhanced scripts/bump-version.js to automatically verify and synchronize frontend/src/utils/version.ts alongside root package.json, Cargo.toml, frontend/package.json, and tauri.conf.json.
π Fixed
Android NDK Context Initialization for MTProto & DNS Resolution:
Resolved Telegram login code request failure on Android where requests were dropped immediately due to ndk-context panicking (android context was not initialized).
Added JNI bridge Java_com_protofs_app_MainActivity_initNdkContext in crates/protofs-tauri/src/lib.rs and invoked initNdkContext(applicationContext) in MainActivity.kt on Android startup to initialize JavaVM and Context pointers for hickory-resolver / ndk-context.
Android APK Build & CI Packaging:
Fixed root Tauri CLI script bindings for Gradle tasks and streamlined Android APK CI release workflow.
Linux and Cross-Platform Build:
Fixed Linux and cross-platform compilation errors and linter warnings.
Real-Time Transfer Queue Tracking & Live Preview Synchronization:
Fixed upload popup getting permanently stuck in "uploading" by synchronizing transferId across frontend useUploadManager.ts and Tauri backend transfers.rs.
Resolved event matching in useTransferListener.ts so completed and in-flight transfer progress events accurately match the active item by ID and name.
Added full queued items visibility (status: 'queued') so all batch files appear immediately in the transfer queue drawer with accurate overall queue progress and remaining item counts.
Resolved intermediate manifest uploads during large batch uploads (e.g. 1k+ files) by updating in-memory VfsTree and SQLite cache in real-time and deferring the remote manifest upload to a single final flush upon queue completion (useUploadManager.ts).
Fixed candidate message resolution in manifest.rs by searching for #protofs_manifest_v1 across channel history when recent message history consists of uploaded files.
Ensured do_update_pinned_manifest edits the existing pinned manifest message in-place with messages.EditMessage and automatically deletes any duplicate manifest messages, preventing channel clutter.
MTProto Transport Framing Translation & Padding Stripping in LocalProxyBridge:
Resolved the persistent "Connecting..." status where MTProto proxies connected successfully at the TCP/TLS level with active ping latency, but Telegram authentication and session requests never completed.
Implemented bidirectional transport framing translation between Grammers' TCP Full transport format ([full_len (4)] [seq_no (4)] [payload] [crc32 (4)]) and upstream MTProxy Intermediate / Padded Intermediate format ([inter_len (4)] [payload]).
Added dynamic MTProto padding stripper in LocalProxyBridge to strip upstream random padding (0β15 bytes) from Padded Intermediate responses before returning Full transport frames, preventing AES-IGE decryption failures in Grammers.
Aligned AES-256-CTR keystream offsets across the initial 64-byte Obfuscated2 header and ensured correct transport protocol tag selection (0xdddddddd vs 0xeeeeeeee) based on the proxy secret format.
Implemented in-process local proxy bridge (LocalProxyBridge) and configured grammers-mtsender proxy parameters to route all active MTProto sessions, authentication handshakes, QR logins, channel queries, and background sync traffic through active MTProto (Fake-TLS / DD), HTTP CONNECT, and SOCKS5 proxies.
Automatic Startup Proxy Latency Measurement:
Automatically measured and displayed active proxy round-trip latency (ms) in the header badge and auth modal upon opening the application without requiring a manual "Test Connection" button click.
Active Proxy Propagation for Session Reconnections:
Fixed account connection check and session restoration failing under proxy environments. MTProto session reconnections (check_telegram_connection_command, startup, and account switches) now consistently route through the active proxy configuration with a fail-fast 5β10s timeout instead of attempting direct connection.
Proxy Diagnostic Draft Deserialization:
Resolved missing field 'type' error when running proxy connection diagnostics by adding DraftProxyConfig to crates/protofs-tauri/src/commands/proxy.rs and mapping frontend proxy drafts into core ProxyConfig instances safely.
Disaster Recovery False Positive on Connection Loss:
Prevented Disaster Recovery mode and channel deleted warnings from triggering when offline, disconnected, or experiencing network/proxy restrictions. Channel inaccessibility checks now only execute when authenticated and actively connected to Telegram.
Dynamic Application Version in Sidebar:
Fixed hardcoded v0.3 badge in the sidebar header to dynamically read the application version (v0.4.1) via getAppVersion().