Skip to content

diag: show repeat counts in the mDNS query log; bump prop submodule - #374

Merged
jonasbark merged 1 commit into
6.3from
diag/mdns-query-log-capacity
Jul 30, 2026
Merged

diag: show repeat counts in the mDNS query log; bump prop submodule#374
jonasbark merged 1 commit into
6.3from
diag/mdns-query-log-capacity

Conversation

@jonasbark

Copy link
Copy Markdown
Collaborator

Why

Tester feedback on 6.3.0+22 (the build with the QU fix from #372): still failing, tnc still required. Their diagnostics changed the diagnosis.

The mDNS exchange is working end-to-end

20:32:38 ... QU  PTR _openbikecontrol._tcp.local              → unicast+multicast
20:32:38 ... QM  SRV BikeControl._openbikecontrol._tcp.local  → multicast
20:32:38 ... QM  TXT BikeControl._openbikecontrol._tcp.local  → multicast

MyWhoosh could only ask for SRV BikeControl._openbikecontrol._tcp.local if 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 until tnc.

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 .local resolution 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 tnc at 20:33:30 and the connect at 20:33:35 had aged out.

Changes

Renders ×N on 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:

20:32:39 ... QM PTR _openbikecontrol._tcp.local    → multicast
20:32:39 ... QM PTR _wahoo-fitness-tnp._tcp.local  → no answer

This tester is on the OpenBikeControl method, so we advertise _openbikecontrol._tcp only. 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 analyze clean on both changed files.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PanTG9kRBi4QTQ2psvpTxP

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
Copilot AI review requested due to automatic review settings July 30, 2026 19:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ×N repeat-count marker to folded mDNS query log entries when count > 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.

@jonasbark
jonasbark merged commit 8d97e89 into 6.3 Jul 30, 2026
1 check passed
@jonasbark
jonasbark deleted the diag/mdns-query-log-capacity branch July 30, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants