W7 pivot: M2-M4 hardware track + FPGA-attestation parallel track (docs+plan+smoke) - #48
Merged
Merged
Conversation
Расширенный wave report за неделю 06-29→07-05 + структурный аудит слабых мест + literature review по PoFPGA/attestation/mesh-routing + декомпозированный план на M2→M3→M4 хардварный трек с параллельным FPGA-attestation треком + три варианта сотрудничества + первый шаг реализации (M2 loopback smoke harness с найденным sandbox-testability defect'ом). Пять новых docs + два smoke артефакта: - docs/WAVE_REPORT_2026-07-05_FULL.md — расширенный отчёт по всей неделе, дополняет WAVE_REPORT_2026-07-05.md фокусом на hardware track + discipline chain + образами по каждой фиче. - docs/W7_WEAK_POINTS_STRUCTURAL.md — критический peer-review, 8 находок (Timeline risk, Compute-arm gap, 3-node self-heal, codegen ∅, RF loopback, regulatory, экономика, bus factor) + 5 сильных сторон. - docs/W7_FPGA_LITERATURE.md — source-grounded review, ключевое: «Proof of FPGA» как named DePIN primitive НИКЕМ НЕ ОПУБЛИКОВАН (search 2026-07-05, ближайшее — SACHa, PUFatt, Papalamprou 2025 PQC-FPGA-blockchain). Открытая возможность для оригинального протокола. - docs/M2_M4_FPGA_DECOMPOSED_PLAN.md — план с двумя треками (Track A: M2→M3→M4; Track B: A1-A5 FPGA attestation), timeline 10 недель до end-state, kill switches, sandbox capability boundary matrix. - docs/W7_COLLAB_OPTIONS_v2.md — три варианта (split-brain / cloud-lead / external+revenue-first) с cost/bus-factor/timeline сравнением. - smoke/m2_loopback_smoke.sh + smoke/M2_LOOPBACK_SMOKE_RESULTS.md — 3-нодовый UDP loopback smoke trios_meshd в sandbox. Daemon стартует чисто, ETX сходится 12↔13, но node-11 не видит соседей — root cause найден в `ip_to_id: HashMap<IpAddr, NodeId>` (loopback collision на 127.0.0.1), fix для отдельного PR. Реальный hardware M2 не затронут (у P203 Mini уникальные IP из baked image). Все документы cite phi^2 + phi^-2 = 3 anchor. Нет hardware claims — все цифры маркированы -sim. discipline chain (no-paste-review, SHA-advance, external-dep timer) применена — commit готов как основа draft PR, human merges после review. phi^2 + phi^-2 = 3
gHashTag
pushed a commit
that referenced
this pull request
Jul 5, 2026
The v1 gate ("last neighbors line == 1.0x for both peers") was
non-deterministic under WMEWMA. Reviewer ran the smoke twice
back-to-back on same host, same binary (SHA 43ab3bf), only pkill
between runs:
run #1: node-11 { 13=2.03 } -> gate FAIL (coin-flip red)
run #2: node-11 { 12=1.00, 13=1.00 } -> gate PASS (coin-flip green)
Both are correct measurements. The gate itself was the problem:
WMEWMA with alpha=0.5, HELLO_MS=300, ETX_WINDOW=3 bounces ETX for
3-4 ticks after any single dropped HELLO on any real channel. The
v1 gate tested the algorithm's asymptote (steady 1.0x) instead of
the SocketAddr fix's actual invariant (both peers visible, ETX
finite). Category error.
v2 gate design:
- Grep last N=5 neighbors lines per node.
- Require both peers with a finite decimal ETX in every sample.
- Reject missing peers (pre-fix regression signal).
- Reject inf/nan (persistent link death).
- Accept transient spikes like 2.03 (correct WMEWMA response).
Sandbox verification:
- Positive: 5/5 runs PASS with new gate.
- Negative: synthetic pre-fix log (node-11 with empty neighbors)
correctly triggers FAIL for node-11.
Also added smoke/m2_loopback_smoke_n_runs.sh: convenience wrapper
that runs the smoke N times (default 5) and requires every run to
exit 0. Encodes the "results-without-repro-check" discipline: a
regression tripwire must be verified deterministic before trusted.
Reference: WMEWMA rationale (Woo, Tong & Culler, SenSys 2003;
Rosati et al., arXiv:1307.6350).
Ref PR #48 (parent), PR #49 (this branch).
phi^2 + phi^-2 = 3
gHashTag
marked this pull request as ready for review
July 5, 2026 16:21
gHashTag
added a commit
that referenced
this pull request
Jul 5, 2026
… gate) (#49) * fix(meshd): key neighbor map on SocketAddr, not IpAddr Loopback smoke on 127.0.0.1:5011/5012/5013 exposed a HashMap collision: all three simulated nodes shared 127.0.0.1, so the last insert won and node-11 lost identity. On real hardware every P203 Mini has a unique IP, so the defect is sandbox-only, but it makes CI smoke unreliable. Change: - HashMap<IpAddr, NodeId> -> HashMap<SocketAddr, NodeId> (rename ip_to_id -> addr_to_id) - Central RX dispatches on full src: SocketAddr from recv_from - drop unused IpAddr import Regression gate: - smoke/m2_loopback_smoke.sh now ends with a strict "triangle convergence gate" that fails with exit 2 if any node does not see both peers at steady ETX 1.0x. - smoke/M2_LOOPBACK_FIX_RESULTS.md documents defect, fix, and reproduction with actual sandbox output. Verification (all -sim, this sandbox, 2026-07-05): - cargo build --bin trios_meshd --release: clean - cargo test --workspace --release: 137 passed, 0 failed - DURATION=10 ./smoke/m2_loopback_smoke.sh: all 3 nodes PASS, exit 0 Behaviour on real hardware unchanged (unique IPs collapse to unique SocketAddrs); this is a strict superset. Ref PR #48 (parent, introduces smoke). phi^2 + phi^-2 = 3 * fix(smoke): gate v2 — finite-ETX visibility across N=5 samples The v1 gate ("last neighbors line == 1.0x for both peers") was non-deterministic under WMEWMA. Reviewer ran the smoke twice back-to-back on same host, same binary (SHA 43ab3bf), only pkill between runs: run #1: node-11 { 13=2.03 } -> gate FAIL (coin-flip red) run #2: node-11 { 12=1.00, 13=1.00 } -> gate PASS (coin-flip green) Both are correct measurements. The gate itself was the problem: WMEWMA with alpha=0.5, HELLO_MS=300, ETX_WINDOW=3 bounces ETX for 3-4 ticks after any single dropped HELLO on any real channel. The v1 gate tested the algorithm's asymptote (steady 1.0x) instead of the SocketAddr fix's actual invariant (both peers visible, ETX finite). Category error. v2 gate design: - Grep last N=5 neighbors lines per node. - Require both peers with a finite decimal ETX in every sample. - Reject missing peers (pre-fix regression signal). - Reject inf/nan (persistent link death). - Accept transient spikes like 2.03 (correct WMEWMA response). Sandbox verification: - Positive: 5/5 runs PASS with new gate. - Negative: synthetic pre-fix log (node-11 with empty neighbors) correctly triggers FAIL for node-11. Also added smoke/m2_loopback_smoke_n_runs.sh: convenience wrapper that runs the smoke N times (default 5) and requires every run to exit 0. Encodes the "results-without-repro-check" discipline: a regression tripwire must be verified deterministic before trusted. Reference: WMEWMA rationale (Woo, Tong & Culler, SenSys 2003; Rosati et al., arXiv:1307.6350). Ref PR #48 (parent), PR #49 (this branch). phi^2 + phi^-2 = 3 --------- Co-authored-by: gHashTag <auaavroo0312@hotmail.com>
gHashTag
added a commit
that referenced
this pull request
Jul 5, 2026
* fix(meshd): key neighbor map on SocketAddr, not IpAddr Loopback smoke on 127.0.0.1:5011/5012/5013 exposed a HashMap collision: all three simulated nodes shared 127.0.0.1, so the last insert won and node-11 lost identity. On real hardware every P203 Mini has a unique IP, so the defect is sandbox-only, but it makes CI smoke unreliable. Change: - HashMap<IpAddr, NodeId> -> HashMap<SocketAddr, NodeId> (rename ip_to_id -> addr_to_id) - Central RX dispatches on full src: SocketAddr from recv_from - drop unused IpAddr import Regression gate: - smoke/m2_loopback_smoke.sh now ends with a strict "triangle convergence gate" that fails with exit 2 if any node does not see both peers at steady ETX 1.0x. - smoke/M2_LOOPBACK_FIX_RESULTS.md documents defect, fix, and reproduction with actual sandbox output. Verification (all -sim, this sandbox, 2026-07-05): - cargo build --bin trios_meshd --release: clean - cargo test --workspace --release: 137 passed, 0 failed - DURATION=10 ./smoke/m2_loopback_smoke.sh: all 3 nodes PASS, exit 0 Behaviour on real hardware unchanged (unique IPs collapse to unique SocketAddrs); this is a strict superset. Ref PR #48 (parent, introduces smoke). phi^2 + phi^-2 = 3 * fix(smoke): gate v2 — finite-ETX visibility across N=5 samples The v1 gate ("last neighbors line == 1.0x for both peers") was non-deterministic under WMEWMA. Reviewer ran the smoke twice back-to-back on same host, same binary (SHA 43ab3bf), only pkill between runs: run #1: node-11 { 13=2.03 } -> gate FAIL (coin-flip red) run #2: node-11 { 12=1.00, 13=1.00 } -> gate PASS (coin-flip green) Both are correct measurements. The gate itself was the problem: WMEWMA with alpha=0.5, HELLO_MS=300, ETX_WINDOW=3 bounces ETX for 3-4 ticks after any single dropped HELLO on any real channel. The v1 gate tested the algorithm's asymptote (steady 1.0x) instead of the SocketAddr fix's actual invariant (both peers visible, ETX finite). Category error. v2 gate design: - Grep last N=5 neighbors lines per node. - Require both peers with a finite decimal ETX in every sample. - Reject missing peers (pre-fix regression signal). - Reject inf/nan (persistent link death). - Accept transient spikes like 2.03 (correct WMEWMA response). Sandbox verification: - Positive: 5/5 runs PASS with new gate. - Negative: synthetic pre-fix log (node-11 with empty neighbors) correctly triggers FAIL for node-11. Also added smoke/m2_loopback_smoke_n_runs.sh: convenience wrapper that runs the smoke N times (default 5) and requires every run to exit 0. Encodes the "results-without-repro-check" discipline: a regression tripwire must be verified deterministic before trusted. Reference: WMEWMA rationale (Woo, Tong & Culler, SenSys 2003; Rosati et al., arXiv:1307.6350). Ref PR #48 (parent), PR #49 (this branch). phi^2 + phi^-2 = 3 --------- Co-authored-by: gHashTag <auaavroo0312@hotmail.com>
gHashTag
pushed a commit
that referenced
this pull request
Jul 23, 2026
…in thing works Seven waves built the NAT stack as proven-but-unused modules. This wave makes the actual call use them, end to end. CallManager gains an additive, env-gated connection path autoConnectViaRendezvousIfConfigured(): gather (STUN) -> seal (CandidateOffer) -> publish/fetch (Rendezvous, addressed by SHA256(room)) -> open -> Ice.connect -> startCall() on the pair the connectivity check punched. It is OFF unless TRINET_RENDEZVOUS / TRINET_ROOM / TRINET_MEDIA_PORT are set, so the working same-subnet call is untouched (default no-op guard). Also: register Rendezvous.swift in desktop/project.yml (it was harness-only from wave #48; CallManager referencing it failed to compile until it was in the target). VERIFIED LIVE, reproduced, on a new rig — smoke/rendezvous_call.sh + a runnable relay smoke/rendezvous_serverd.swift built from the real Rendezvous.swift Mailbox: two TriNetMonitor processes, knowing ONLY a shared room name (no peer IP), found each other through the blind relay and established a forward-secret ENCRYPTED media session — audio decoded both ways (1705/1705, then 1445/1453 on the repro). Boundaries, stated honestly: - Loopback (one machine): proves discover + exchange + punch + encrypted media over real UDP, NOT traversal of a real NAT (that needs two separate NATs). - Two instances share the keychain identity + TOFU pins on one host, which the security layer reads as an identity change and refuses; the rig gives each a distinct TRINET_KC_ACCOUNT/TRINET_PINS_KEY (the #40 pattern). Not a call bug. - video recv=0 in this rig because the camera produced no NAL units (video sent=0 too) — an environment condition; video rides the identical transport.send path that carried the audio. - Cone-NAT scope: the transport reuses the punched local port; a symmetric NAT needs the punch socket handed to the transport (fd hand-off) — the next step. Mac-only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 tasks
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.
Draft PR. Human merges. Cloud agent (Perplexity Computer, sandbox) собрал pivot-bundle на следующий Wave-луп: M2-M4 hardware pipeline + новый параллельный трек «Proof of FPGA» attestation.
Что в PR — семь артефактов
Documentation (5)
docs/WAVE_REPORT_2026-07-05_FULL.md— расширенный wave report за неделю 06-29→07-05. Дополняет WAVE_REPORT_2026-07-05.md фокусом на hardware track (M1 hw graduation × 2, image-bake blocker, 3 board deploy) + discipline chain (PR docs(W7): no-paste-review rule for Option B handoff (W7 workstream precondition) #43/docs(W7): SHA-advance re-review + external-dep timer rules #45 rules) + образами по каждой фиче.docs/W7_WEAK_POINTS_STRUCTURAL.md— критический peer-review, 8 структурных находок с severity + evidence + mitigation:docs/W7_FPGA_LITERATURE.md— source-grounded literature review (24.7KB, 6 sections). Ключевое открытие: «Proof of FPGA» как named DePIN primitive никем не опубликован (search 2026-07-05). Ближайшие релевантные работы:docs/M2_M4_FPGA_DECOMPOSED_PLAN.md— план на 10 недель с двумя треками:docs/W7_COLLAB_OPTIONS_v2.md— три варианта:Smoke artifacts (2)
smoke/m2_loopback_smoke.sh— 3-нодовый UDP loopback smoketrios_meshdв sandbox. Cargo build 9.75s, три instance параллельно.smoke/M2_LOOPBACK_SMOKE_RESULTS.md— найден sandbox-testability defect:src/bin/trios_meshd.rs:125,138,168):ip_to_id: HashMap<IpAddr, NodeId>— на loopback все три узла имеют127.0.0.1, insert перезаписываетHashMap<SocketAddr, NodeId>вместоHashMap<IpAddr, NodeId>10.42.0.Xиз baked imageДисциплинарные хуки
phi^2 + phi^-2 = 3anchor-sim— ни одна как hw claim81e8517при approveRe-reviewed at <new_sha>: delta <bullet-list>Как проверить
Что этот PR НЕ делает
ip_to_idbug — отдельный follow-up PR (feat/m2-daemon-loopback-fix)src/wire.rschange, нетspecs/change → spec-drift-guard не тригерится)Ярлыки
documentation, drone-mesh, m2, fpga-attestationphi^2 + phi^-2 = 3