Skip to content

id phase-3: P3.7 real-network holepunch and n0 QAD tests on two networks are owner-blocked with no tracking issue #795

Open

Description

@dezren39

Finding

P3.7 (real-network holepunch and n0 QAD tests on two networks, N29) is owner-blocked on owner-provided networks and is tracked only in plan/prose, not as a standalone issue.

Evidence

  • doc/2026-10-11T11-08-42Z_design_remaining_work/plan-phases.md §8 Phase 3, step P3.7: "Real-network holepunch and n0 QAD tests on two networks (N29)" — Blocked by "owner provides networks", tests "the C2 matrix on real networks (owner-blocked)".
  • doc/2026-10-12T08-58-59Z_phase_3_sync_relays/2026-10-12T08-58-59Z_phase_3_sync_relays.md P3.7 row: status "owner-blocked", notes "needs two networks". Open questions: "Real-network numbers are not measured (P3.7)." End: "Not verified: ... real-network sync and relay numbers."
  • doc/2026-10-14T_platform_completion/acceptance-brief.md line 75 (unchecked), grouped with P7.5.

Why it matters

The C2 NAT/holepunch matrix and n0 QAD behaviour are validated only on loopback so far. Real-network results (NAT type combinations, QAD relay ordering) are the connectivity claims the plan makes, and they are unverified until the owner provides two networks.

What's needed

Owner-provided two networks. Then run the C2 matrix and N29 real-network checks, record results, or close as superseded if later connectivity work changes the design.

Acceptance criteria

  • Two owner-provided networks are available and identified for the test run (this is the blocker — see the intake review comment).
  • The C2 holepunch matrix and the N29 real-network QAD checks run on those real networks, and the results are recorded on this issue.
  • The Phase 3 record's real-network numbers section is updated with the measured results — OR this issue is closed as superseded by later connectivity work, with the superseding work linked.

Activity

  1. added
    kind/testTest coverage, test infrastructure, or test-only fixes
    status/blockedQueue or user escalation state
    priority/lowNice to have; do when convenient
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    user/reviewNeeds a user-look: Muse reviews first and handles what it can
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 26, 2026
  2. dezren39 commented on Oct 26, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: #794 (P7.5 — the same owner-provided networks/accounts block the deployment half; the acceptance brief groups P7.5/P3.7 at line 75). Plan §8 Phase 3 step P3.7 and the Phase 3 record's P3.7 row are cited in the body.

    Still live (verified 2026-10-26): no merged PR references or resolves this issue, and nothing has unblocked it — the C2 matrix and N29 QAD behaviour remain validated only on loopback. Not solved; do not close.

    Notes / risks: This item is genuinely owner-blocked: it cannot be worked by any agent until Drew provides two networks. I have therefore labelled it status/blocked + user/review (intake for Muse / Drew) rather than status/needs-triage — the triage conclusion is that there is nothing to triage, only a blocker to clear. The code-side harness should stay ready so the matrix runs immediately when networks exist; the brief's instruction stands — leave the live matrix explicitly blocked, not falsely passed.

    Suggested approach: When two networks are available: run the C2 matrix + N29 checks, record NAT/QAD results here and in the Phase 3 record, then close — or close as superseded if later connectivity work changes the design first.

    🤖 Agent note · intake enrichment

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run, 2026-10-26 00:19 CDT (05:19 UTC)
    • Found via: monitor reconciliation
    • Task: Intake enrichment (§5 pass): acceptance criteria appended, labels normalized (blocked on owner-provided networks), still-live verified.
    • Expectation: effort/l once unblocked — a real-network test matrix; until then, blocked on the owner input named above.
  3. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · escalated

    Triage verdict: CONFIRMED and owner-blocked — escalated to Drew

    Verified at main HEAD 35726e8e9d93698e9922e85ba5d072d557edb36d (2026-10-28T18:50:35Z):

    • doc/2026-10-11T11-08-42Z_design_remaining_work/plan-phases.md:131 — P3.7 "Real-network holepunch and n0 QAD tests on two networks (N29)", blocked-by: "owner provides networks", test column: "the C2 matrix on real networks (owner-blocked)". The same doc's status header (line 4) repeats: "P7.5/P3.7 require external networks/accounts."
    • doc/2026-10-14T_platform_completion/acceptance-brief.md — the P7.5/P3.7 item is still unchecked: "real two-network and account-backed deployment matrix cannot be truthfully verified without the required networks/accounts. Keep the code-side test harness ready and leave the live matrix explicitly blocked, not falsely passed."
    • No superseding work found: searches for later real-network holepunch/QAD issues or PRs come up empty (only the original design docs PRs docs(id): design plan, research, and n0 relay default #152/id phases 0-10 review: file gaps, fix easy ones inline #804), so the "close as superseded" acceptance branch does not apply yet.

    My read: nothing here is agent-actionable. The code-side harness is ready; the C2 NAT/holepunch matrix and N29 QAD checks can only run when two real, distinct networks exist, and only Drew can provide those (e.g. home network + a second NAT/ISP or hotspot path, with a host on each). This is a genuine owner decision/provision, so I'm escalating rather than parking it silently: label swapped user/review → user/escalated, task 2226 blocked with reason class escalated-to-user.

    What Drew can unblock with: two reachable networks and a machine (or this laptop + one remote host) on each; a worker can then run the C2 matrix and record the numbers on this issue and in the Phase 3 record.

  4. added
    user/escalatedQueue or user escalation state
    queue/blockedQueue or user escalation state
    and removed
    user/reviewNeeds a user-look: Muse reviews first and handles what it can
    on Oct 28, 2026
  5. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Owner ruling (Drew, 2026-10-28): the blocker as framed is withdrawn — new plan

    Drew's answer to 'provide two networks':

    • He does not have a second computer on a second home network, and will not be setting one up. No VPC or paid networking either — any server we run would be a plain host, not a VPC.
    • He WILL run the test himself from his phone: a website he can open on the phone (Wasm is fine), or a mobile app.
    • VMs on the laptop with an emulated NAT configuration are acceptable for cells a phone cannot cover.
    • His phone's carrier network is not a second home network — correct, and it doesn't need to be: carrier CGNAT vs home NAT is a legitimate, hard, realistic cell (it is the pairing actual mobile users present), and it is the cell the phone run measures honestly.

    New plan: filed as #1826 — (1) a browser/Wasm peer page Drew runs on his phone against the laptop peer at home; (2) a reproducible laptop VM NAT-emulation config for the remaining C2 cells, with emulated results labeled as emulated, never as real-network measurements. This issue's first acceptance criterion ('two owner-provided networks') is superseded by this ruling; the run-and-record criteria stand, under the new plan. The lane D escalation (task 2226) is answered by this comment.

  6. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Added per owner direction (Drew, 2026-10-28)

    Companion issue filed: #1831 — proof-of-concept Android app + extending the accepted input interfaces (multi-touch, mice, hover on web and TUI; enter/leave/click/right-click where the platform allows; press/long-press on Android) so phone input can be relayed into a live app over a deliberately limited interface (click minimally; drag/scroll as proven). The Android app doubles as a native phone peer for this issue's test line, alongside the Wasm page in #1826.

  7. added
    mode/hybridOnline work plus a physical step (power, cabling, KVM access to a real device)
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Status note: the withdrawn blocker now has two tracked execution legs

    Follow-up to the 2026-10-28 owner ruling. Triage of #1826 at d3476bce7 (2026-11-03, queue task 7751) confirms both legs are still unexecuted and splits them:

    This issue stays status/blocked: its run-and-record criteria are unchanged, and emulated results will arrive labelled emulated, never as real-network measurements.

    🤖 Agent note · blocked (dependency tracking)

  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    Emulated C2 matrix results (2026-11-04)

    These are Linux netfilter emulation results only, not real NAT devices, carrier CGNAT, or real-network measurements. The reproducible entry point and implementation are in PR #5665. Command from the repository root:

    C2_WINDOW=8 nix --extra-experimental-features "nix-command flakes" run ./doc/2026-10-11T03-44-33Z_design_groups_events_delegation/spikes/c2-holepunch#c2-lab

    All three NAT-behaviour probes completed and all nine ordered pairs completed with dial exit 0:

    Host A Host B Final selected path
    cone cone direct
    cone restricted direct
    cone symmetric direct
    restricted cone direct
    restricted restricted direct
    restricted symmetric relay
    symmetric cone direct
    symmetric restricted relay
    symmetric symmetric relay

    The local timestamped report was 20261104T222140Z-emulated-c2-matrix.md; the repository ignores generated results* artifacts. These results satisfy the emulation leg only; #795 remains blocked for the separate phone/carrier-network leg (#1831).}

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-inskind/testTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/hybridOnline work plus a physical step (power, cabling, KVM access to a real device)priority/lowNice to have; do when convenientqueue/blockedQueue or user escalation statequeue/queuedHas a queued task in the Supabase agent queuestatus/blockedQueue or user escalation stateuser/escalatedQueue or user escalation state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions