Repository navigation
Race the interface list against Forget and Turn off, and map #109 evidence - #421
Merged
Merged
Conversation
… map #109 evidence Two regression tests: the interface list changes while Forget paired phones or Turn off is running (a removed listener is still closing and the interface returns mid-action). No listener survives with the old token; the kept interface keeps its socket and refuses the old token; a late monitor tick does not re-enable a turned-off listener. Both pass on main and each was shown red against a mutation of the generated JS only, so no fix is included. One mocked-interface test pins the current policy that a utun or bridge with a private address gets a listener, pending Val's answer on #109. docs/reviews/2026-10-28-companion-two-lan-acceptance.md maps the four #109 requirements to the tests that prove them and holds the physical two-LAN acceptance procedure for Val. ios-companion.md and status.md point at it. Reuses the #166 listener infrastructure, the #406 rebind race and the in-flight revocation shape from @Yash990-bit's #124 regression work. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Code coverage overviewLanguages: TypeScript TypeScript / code-coverage-agent
View coverage of the 10 most impacted files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. |
This was referenced Oct 28, 2026
This branch was successfully deployed
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.
Evidence for #109, no production change. Base
mainat6c9000f.What this adds
docs/reviews/2026-10-28-companion-two-lan-acceptance.md: each of the four requirements from the 2026-10-07 comment on companion: binding HTTPS server to single static IP breaks phone pairing on network change / multi-interface Macs #109 mapped to the tests that prove it, with what each test does and does not prove; the physical acceptance procedure for a Mac on two subnets with the phone on the secondary LAN (QR, Bonjour, primary and secondary DHCP changes, Forget and Turn off during recovery) and a pass/fail table for Val to fill with macOS, Modex and Companion versions.apps/desktop/test/companion-network.test.ts: the interface list changes while Forget paired phones or Turn off is running (a removed listener is still closing, the interface returns mid-action). The kept interface refuses the old token on its unchanged socket, nothing survives Turn off, and a late monitor tick does not re-enable it. Both pass onmain; each was shown red against a deliberate mutation of the generated JS only (Forget skipping rotation during a reconcile; Turn off leaving listeners to the in-flight reconcile). No fix was needed, so none was made.utunor bridge with a private address gets a listener.localAddresses()is unchanged pending Val's answer to the VPN question on #109; if the answer is to exclude, that test flips first.docs/ios-companion.mdanddocs/status.mdpoint at the new evidence and the two remaining gates.The listener test infrastructure is from #166; the in-flight revocation shape reuses @Yash990-bit's #124 regression work, and the #406 rebind test is the base for the new races.
Verification
pnpm build && pnpm testexit 0 on macOS 27.0.1: worktree scripts 117/117, core 16/16, desktop 1995 passed and 17 skipped of 2012, desktop native 21 passed and 5 skipped of 26, site 10/10, store-desktop 16/16. The three new tests ran (LAN present, nothing companion-related skipped).No user-visible change, so no e2e run.
Not merged until Val says so. Closing #109 still needs the physical procedure's results and the VPN policy answer.
🤖 Generated with Claude Code