diag: show repeat counts in the mDNS query log; bump prop submodule - #374
Merged
Conversation
Renders "×N" on folded entries so a continuous poller reads as one line that fired N times rather than silently occupying one slot. Single occurrences stay unmarked. Picks up the prop-side fold + the 40 -> 200 ceiling, after a field capture filled the whole buffer in eight seconds and lost the window that mattered. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PanTG9kRBi4QTQ2psvpTxP
Contributor
There was a problem hiding this comment.
Pull request overview
Improves the diagnostics output for the “mDNS queries received” section by making folded/repeated mDNS queries visible via an inline repeat-count marker, and adds tests to lock in the new formatting behavior.
Changes:
- Append a
×Nrepeat-count marker to folded mDNS query log entries whencount > 1. - Add unit tests verifying repeat-count rendering and ensuring single occurrences remain unmarked.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| lib/services/debug_diagnostics.dart | Appends ×N to repeated (folded) mDNS query log lines when count > 1. |
| test/services/debug_diagnostics_test.dart | Adds coverage for repeat-count marker presence/absence in the diagnostics text output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Why
Tester feedback on 6.3.0+22 (the build with the QU fix from #372): still failing,
tncstill required. Their diagnostics changed the diagnosis.The mDNS exchange is working end-to-end
MyWhoosh could only ask for
SRV BikeControl._openbikecontrol._tcp.localif it had already received and parsed our PTR answer — that instance name came from us. The browse succeeded. It then got SRV and TXT, and our SRV response carries the A record as an additional, so it had PTR + SRV + TXT + A and still showed no dialog untiltnc.So the shared-port/QU fix is not what blocks this tester. It may be why the browse worked here at all — before it, all three interface copies would have been unicast-only — but that counterfactual isn't provable from this capture. The failure is downstream of discovery, consistent with MyWhoosh resolving the SRV target through the Windows resolver (
GetAddrInfo) rather than using the A record we hand it. Tailscale is present on this machine (100.111.140.105), which is the known way.localresolution breaks.The log couldn't answer the remaining question
No A-record query appears anywhere in the capture — the single most informative fact — and I can't tell whether none was sent or the window was simply too short. It covered eight seconds; the
tncat20:33:30and the connect at20:33:35had aged out.Changes
Renders
×Non folded entries so a continuous poller reads as one line that fired N times. Single occurrences stay unmarked. Picks up the prop-side fold + ceiling raise (OpenBikeControl/prop#2).Also visible in the capture — not a code change
MyWhoosh browses for both services and we answer only one:
This tester is on the OpenBikeControl method, so we advertise
_openbikecontrol._tcponly. Worth having them retry with the Wahoo/Network connection method — MyWhoosh's native trainer path, which may not depend on the same resolve step.Tests
prop 487/487, app services 64/64,
flutter analyzeclean on both changed files.🤖 Generated with Claude Code
https://claude.ai/code/session_01PanTG9kRBi4QTQ2psvpTxP