Skip to content

Rowd v0.8.2-alpha — Event-driven Android idle

Pre-release
Pre-release

Choose a tag to compare

@L31T1NH0 L31T1NH0 released this 02 Oct 21:30
· 1 commit to main since this release

Rowd v0.8.2-alpha improves Android idle behavior and SAF diagnostics without changing sync protocol V12, pairing, Shares, or StateStore.

  • Android waits on TCP plus a Unix socketpair instead of polling every second. Local changes, remote WakeShare, network changes, cancel, and service stop wake the existing worker. The remaining idle deadline is the periodic audit; an incomplete application frame retains its 90-second liveness deadline.
  • Safe EINTR retries check cancellation between attempts. Partially progressed frames/writes are never replayed.
  • Generic SAF callbacks are coalesced in a fixed 100 ms window while preserving all relevant Shares. Metadata discovery reports directory/entry counts, changes, completed hashes, duration, and strategy.
  • Recursive metadata diff remains the safe strategy: directory metadata cannot prove that descendants are unchanged. Full/deep fallbacks and periodic audits remain enabled.
  • Diagnostic summaries estimate Android-minus-PC clock offset from unambiguous two-way protocol trace exchanges. Insufficient evidence returns null; latency uncertainty is reported.
  • scripts/build-desktop.sh builds the current Linux release and keeps ~/.local/bin/rowd linked to it. ROWD_BIN_DIR overrides the installation directory.

Assets: Linux x86_64 executable, normal Android ARM64 APK, diagnostic ARM64 APK, and SHA256SUMS. The APK variants have the same application ID and are alternatives to each other. Android versionCode is 15; APKs use the existing debug signing configuration.

Validation: 124 Rust workspace tests passed (3 existing benchmarks ignored), 18 JVM tests, 9 Python tests, native socketpair/TLS wake tests, and release builds. No Android device/emulator was available: real SAF providers, suspend/resume, APK source locations, and a 10-minute idle trace remain device validation. scripts/validate-android-idle.sh reproduces that scenario.