Repository navigation
chore(mobile): add Android runtime verification - #392
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add seven npm commands to build, deploy, inspect and verify PodNotes in real Obsidian Android on Linux. The wrapper owns emulator and setup services across shell calls, isolates device vaults by worktree, preserves existing plugin data, and stops while retaining the AVD.
The smoke probe opens the visible mobile player. The download probe requires a new persisted registration, matching file size, no partials, stable app and renderer identities, and a responsive app. Memory reports use native PSS before and after.
Android phone checks passed for the five referenced issues. Phone results leave iOS and tablet reports unverified. Immediate playback after a successful download still reports media error 4 until Local Files reselection, a separate product follow-up. The final wrapper was tested with the cached SDK and APK.
Refs #100, #110, #113, #89, #109.
Verification
Obsidian Android 1.14.4, Android 14 API34, Pixel6, PodNotes 2.21.1. Two independent stopped-state smoke cycles preserved existing data and stopped cleanly. Two further stopped-state cycles exercised all seven commands, exact defaultData seeding, and real 249,955,445-byte downloads in 128 and 133 seconds. Both files matched an independently fetched host SHA-256. These samples establish neither peak memory nor absence of a leak.
Claude Opus5.5 and GPT6Astra requested no final code changes. Interrupted setup, foreign ownership refusal and whole-service cleanup were also verified. No owned emulator or setup process remains. The shared adb daemon and AVD are retained.
Full report and issue comments. Evidence bundle with commit hashes, JSON results, logs and screenshots.
Release impact
None. Development tooling only. No plugin source, version, API, URI or migration changes.
Note
Add Linux/Android emulator verification CLI in
scripts/omd.shAdds a full mobile Android verification workflow:
scripts/omd.shprovides setup, verify, eval, download, logs, screenshot, and stop commands. It boots one owned headless emulator via systemd, provisions a worktree-specific device vault with the current plugin build, and runs CDP probes through a pinnedobsidian-mobile-debugdriver with owned port forwarding on 19333.flockemulator-5554and CDP port 19333, so other emulators or a foreign forward on that port cause failure rather than reuse📊 Macroscope summarized 58dd302. 3 files reviewed, 1 issue evaluated, 1 issue filtered, 0 comments posted
🗂️ Filtered Issues
scripts/omd.sh — 0 comments posted, 1 evaluated, 1 filtered
eval --timeout 090passes the digit-only validation at line 460, butomd()evaluates it as Bash arithmetic here and aborts instead of running the evaluation. The GNU Bash Shell Arithmetic manual specifies that leading-zero constants are octal; 9 is not an octal digit. Normalize the validated timeout to base 10 before calculating the budget (also avoids interpreting0100as 64 seconds). [ Out of scope (post-validation triage) ]