test(tauri): on-device DNS-SD verification runbook + Test-tab checks (#334) - #345
Closed
momics wants to merge 3 commits into
Closed
test(tauri): on-device DNS-SD verification runbook + Test-tab checks (#334)#345momics wants to merge 3 commits into
momics wants to merge 3 commits into
Conversation
…hecks The mobile-native DNS-SD plugin changes from #330 are compiled/run by no CI job. This adds the tooling to verify them on real iOS/Android hardware. Runbook (docs/internals/dns-sd-device-verification.md) maps each #334 acceptance criterion to concrete Test-tab steps and exact greppable pass/fail log signatures, plus a device/OS results matrix ready to paste into the issue and follow-up-issue filing guidance. Test-tab affordances (opt-in, dev-only, torn down on teardown), all emitting a stable IROH_DNSSD_CHECK prefix: - browsePeers() isActive transition watch (criterion 2) - multi-service burst advertise/browse for the Android resolve queue (criterion 3) - live TXT/port mutate control for the iOS re-emit dedup (criterion 4) - greppable port/host logging on the generic browse loop so iOS metadata-only (port=0, host=undefined) is directly confirmable (criterion 5) Native additive log lines with the same prefix trace the two defect fixes: Kotlin drainResolveQueue (dequeue/resolved/failed with queue depth) and the Swift re-emit branch (new vs reemit with rev). Note: iOS dedups on a TXT+addrs snapshot (port is always 0), so the re-emit trigger must be a TXT change, not port — documented in the runbook and driven by the mutate control. Refs #334 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… into momics-dns-sd-device-verify
Owner
Author
|
Superseded by the consolidation PR #350, which was built from the device-validated integration branch and folds this work in. Closing to reduce review noise — the branch and its commits remain intact as the regression-first record, and can be reopened if needed. All fixes here are verified present in #350 (which is CI-green and device-tested). |
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.
Stacked on
momics-interop-test-harness-tab(draft PR #343, the #340 Test tab). Base this PR onmomics-interop-test-harness-tab, notmain.Why
The #330 DNS-SD standardization landed mobile-native Tauri plugin code that no CI job compiles or runs (no iOS/Android runner). Two of those changes are review-only defect fixes needing on-device confirmation:
IrohHttpPlugin.kt) —NsdManager.resolveService()allows one outstanding resolve; concurrent calls previously failedFAILURE_ALREADY_ACTIVEand silently dropped records.IrohHttpPlugin.swift) — dedup changed from one-shotSet<String>to[String: DnsSdRecordSnapshot](snapshot = TXT + addrs).An automated session can't press buttons on hardware, so this PR delivers the tooling for the operator's real-device pass.
What
Runbook —
docs/internals/dns-sd-device-verification.md: each of the 6 acceptance criteria → concrete Test-tab steps → exact greppableIROH_DNSSD_CHECK/ native pass-fail signatures, a device/OS results matrix ready to paste into #334, and follow-up-issue filing guidance. Linked from the internals README.Test-tab affordances (opt-in, dev-only, force-stopped on page teardown; new cards, no regression to the existing Test flow):
port=0,host=undefined) is directly confirmable — criterion 5Native additive log lines (same
IROH_DNSSD_CHECKprefix, log-only): KotlindrainResolveQueue(dequeue/resolved/failed + queue depth) and the Swift re-emit branch (new vs reemit + rev).Key finding
iOS dedups on a TXT + addrs snapshot (its generic browse never resolves an endpoint, so
portis always0). A port-only change is invisible on iOS — the re-emit trigger must be a TXT change. Documented in the runbook; the mutate control bumps a TXTrev(and toggles port for Android's benefit).Verification (local)
cargo check -p iroh-http-coreand the tauri plugin crate — cleannpm run build:sharedthennpm run typecheck(shared/node/tauri) — cleanvite build— succeeds (26 modules)tsc— only 3 pre-existing errors, none in the new codeNative plugin edits are additive log-only (no CI compiles them). Criteria 1–5 are only satisfied by the operator's on-device pass — this PR makes that pass runnable and unambiguous.
Refs #334