Repository navigation
Conversation
added 16 commits
October 21, 2026 02:33
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.
Explorer's client logic previously lived in the web app. This change adds native Kotlin/Compose Android and SwiftUI iOS clients and moves portable client behavior into one Rust library, consumed through WASM on Web and UniFFI on mobile.
Changes
explorer-core.design/vault/.Validation
Next.js production build, TypeScript, ESLint, 58 WASM regression tests, five native Rust contract tests and a numeric parser regression test passed.
Android APK builds and lint passed; three Kotlin/native-binding tests and four Android 8/API 26 emulator tests passed, including the Web-only stablecoin notice.
A checksum-pinned, publicly volunteered 23andMe file imported 929,696 variants. Web and Android produced the same 142 matches against a frozen 1,000-study GWAS sample: 138 beta effects and four odds ratios. Every checked SNP, genotype, effect type, direction, and score matched an independent Python calculation.
An onboarding test verifies shared-scorer parity across a 2 MiB UTF-8 boundary, CRLF, an unterminated final record, existing results and result limits.
Three encrypted sync tests passed against PostgreSQL, covering concurrent creation/update, delta reconstruction, account isolation, stale deletes and authentication/size rejection. Independent Node Argon2id/AES-GCM/HMAC decoding verifies the portable format; native file tests cover restart, recovery, tampering and encrypted updates between two stores.
Nine store billing tests passed, including forged Apple assertions, wrong account/SKU/environment, pending/refunded states, encrypted proof storage, replay and concurrent credit consumption against PostgreSQL.
Verified real backend metadata for all 1,000 records, Web TSV export, and independently decrypted the full Web portable vault after navigation.
The iOS app built in macOS CI and all six simulator XCTest tests passed: native bindings, complete public-sample scoring, app file import, bundled Vault fonts/artwork, and SwiftUI rendering. Android builds, lint, and both emulator UI tests also passed after restyling.
Native visual review and screenshots document the Vault alignment. Updated iOS snapshots confirm the home heading wraps fully and the result card renders correctly.
Performance verification: the same 20,000-study/4,000-match WASM benchmark improved from 840–859 ms to 159 ms (about 5.3×). Chromium analyzed 100,000 cached fixture rows in 2.818 s using four workers; all 14,200 results matched the independent reference. This expanded catalog repeats the pinned 1,000-study fixture with distinct IDs. See benchmarks and reproduction. Timings depend on hardware/cache/network.
Review notes
This is a substantial cross-platform refactor. Native layouts differ from Web. Web retains Stripe and wallet payments; mobile uses the platform stores. Store products and credentials are not yet configured. Follow mobile billing setup to create the four product IDs, apply the database migration, configure server credentials/notifications, and perform Sandbox/Play internal-track purchase testing. Billing is disabled by default. Encrypted sync also defaults off: apply migration 002 using
npm run vault:migrate, then configureVAULT_SYNC_ENABLED=true. Web currently exchanges encrypted portable files; automatic cloud sync is implemented in native apps. Physical-device biometric/Secure Enclave/StrongBox checks, lost-key/passcode-removal recovery and deployment verification remain before release. See secure storage and sync. Real account login, provider requests, purchases, signing, and store distribution still need service/device verification. The existing parser excludes internal IDs and single-allele calls; those exclusions are documented. Raw public DNA, credentials, and generated binaries/bindings are not committed.See client architecture and build instructions and public sample validation for the feature scope, provenance, limitations, and reproduction commands.
Latest verification: Web/Rust/TypeScript/browser CI, Android/iOS CI.