Skip to content
This repository was archived by the owner on Oct 11, 2026. It is now read-only.

fix(web): serialize service discovery before pairing - #183

Merged
enaboapps merged 7 commits into
codex/web-reliability-180from
codex/web-service-discovery-182
Oct 9, 2026
Merged

enaboapps merged 7 commits into
codex/web-reliability-180from
codex/web-service-discovery-182

Conversation

@enaboapps

@enaboapps enaboapps commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Closes #182

Stacked on #181. Discover characteristics sequentially, request read-response only for read-v1, and add fixed-vocabulary lookup diagnostics. Real testing then showed primary-service rediscovery fails after the discovery connection is closed. Explicitly retain the selected completed web discovery connection and reuse its live service for pairing preparation. Reread and validate desktop identity; keep normal disconnect and cancellation cleanup. Native transports keep their existing preparation path.

Validation

  • 61 focused transport and connection tests pass.
  • Full latest-head validation running. Existing Expo SDK patch mismatches remain a known blocker.
  • Independent latest-head review requested again.
  • Confirmed served Metro bundle contains the handoff change before browser retry. Real Chrome picker awaiting user selection; successful hardware pairing is NOT established.

No protocol, permission, native configuration, dependency or version changes. Do not merge until hardware evidence and green CI are complete.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Latest-head review: 862ad0f independently reviewed with no actionable findings after fixing a final-discovery cancellation race. Reviewer independently reran all 27 transport tests successfully. Prior full run passed lint, types and 647 tests, then failed only Expo Doctor on eight existing SDK patch mismatches. Full latest-head validation rerunning. Hardware testing remains blocked on user selection in the real Chrome Bluetooth picker; no successful pairing claimed.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Latest head 862ad0f: version check, lint, TypeScript and all 648 tests across 73 suites pass. Independent latest-head review clear. Expo Doctor still reports the same eight pre-existing SDK patch mismatches. CI is pending, so green-CI acceptance is not met. No merge performed.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Hardware retest correction: the Metro process on port 8091 was serving stale code even after browser reload. Verified the served bundle lacked both new diagnostic labels and sequential discovery. Restarted that exact Metro process with a cleared cache, then verified the served bundle contains both. Previous browser retry therefore did not exercise this PR. Real pairing remains unverified.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Head 90c14c7 independently reviewed with no actionable findings. Reviewer reran all 61 focused transport/connection tests successfully. Hardware retry opened against a verified current served bundle, still awaiting user device selection. Full npm validation ongoing. No merge.

@enaboapps

Copy link
Copy Markdown
Contributor Author

Full validation on 90c14c7: version check, lint, TypeScript and 654 tests in 73 suites pass. Expo Doctor passes 20/21 checks and fails the existing eight SDK patch mismatches. Independent review clear. Real-PC pairing still pending; no merge.

chore(deps): update Expo SDK 57 patches
fix(web): resolve web stack review findings
@enaboapps
enaboapps marked this pull request as ready for review October 9, 2026 07:49
@enaboapps
enaboapps merged commit fdff841 into codex/web-reliability-180 Oct 9, 2026
@greptile-apps

greptile-apps Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High impact] No identified defect blocks merging, but the author’s explicit requirement for successful hardware evidence and green CI must still be satisfied before merging.

T-Rex evidence

Evidence from the check

  • The executed test joins the real manager, web transport, and protocol framing with mocked browser Bluetooth and desktop responses to verify connection reuse and identity rejection.

Evidence from the check

  • The executed runner loads base sources without changing the checkout, runs identical scenarios against both revisions, and captures focused tests and source cleanliness.

Command output from the check

  • Four scenarios ran against base and showed an intermediate discovery disconnect, pairing failure when reconnection was forbidden, and safe identity rejection.

Command output from the check

  • The same four scenarios ran against head and showed successful pairing without reconnecting, fresh identity mismatch rejection, and retained-connection cleanup.

Command output from the check

  • The existing focused suites ran successfully with 64 passing tests, providing additional regression coverage for the requested connection paths.

Command output from the check

  • git diff --exit-code completed with exit code 0 after testing, confirming that validation did not change tracked sources.

Evidence from the check

  • Loads actual transport code and dependencies from either Git revision and asserts public connection behavior against an overlap-rejecting Bluetooth mock, making the comparison reproducible.

Evidence from the check

  • Captures executed command stdout and stderr with the exact command, working directory, and exit status at the top, preserving execution provenance.

Command output from the check

  • Runs the 12-scenario harness against the base revision and captures concurrent characteristic requests rejected by the mock, showing the pre-change overlap behavior.

Command output from the check

  • Runs the same scenario matrix against the head revision and captures ordered requests, working transport APIs, and safe missing-characteristic failures, contradicting the proposed regression.

Command output from the check

  • Executes six narrowly selected existing transport tests for sequential discovery, required response preparation, notifications, polling, and late service results, confirming all six pass.

View artifacts

Summary

The browser now keeps the selected discovery connection alive and reuses its service before pairing.

  • Browser pairing reuses the connection that discovered the selected PC.
  • Cancelled browser connections stop before starting another attempt.
  • Browser tabs share one saved device identity.
  • Web controls announce their current values and states.
  • The app now uses newer Expo patch releases.

No actionable issues were found. These automated results do not establish successful hardware pairing or green full CI.

Acknowledgments: enaboapps explicitly states that successful hardware pairing is not established and requires hardware evidence and green CI before merging. enaboapps also acknowledges existing Expo patch mismatches. Those stated merge prerequisites remain separate from this review’s automated results.

Reviews (1) · Last reviewed commit: "Merge pull request #187 from switchifyap..." · Reviewed by Greptile

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants