Skip to content

W7 pivot: M2-M4 hardware track + FPGA-attestation parallel track (docs+plan+smoke) - #48

Merged
gHashTag merged 1 commit into
mainfrom
feat/w7-m2-fpga-pivot-2026-07-05
Jul 5, 2026
Merged

W7 pivot: M2-M4 hardware track + FPGA-attestation parallel track (docs+plan+smoke)#48
gHashTag merged 1 commit into
mainfrom
feat/w7-m2-fpga-pivot-2026-07-05

Conversation

@gHashTag

@gHashTag gHashTag commented Jul 5, 2026

Copy link
Copy Markdown
Owner

phi^2 + phi^-2 = 3

Draft PR. Human merges. Cloud agent (Perplexity Computer, sandbox) собрал pivot-bundle на следующий Wave-луп: M2-M4 hardware pipeline + новый параллельный трек «Proof of FPGA» attestation.

Что в PR — семь артефактов

Documentation (5)

  1. 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) + образами по каждой фиче.

  2. docs/W7_WEAK_POINTS_STRUCTURAL.md — критический peer-review, 8 структурных находок с severity + evidence + mitigation:

    • CRITICAL: Timeline risk (silicon slip contingency отсутствует), Compute-arm gap (no interim attestation), экономика (no Helium-style subsidy path)
    • MAJOR: 3-node self-heal невозможен, codegen ∅ intersection ценность, RF SNR digital-loopback ≠ OTA, regulatory scattered across docs, bus factor (1 human)
      • 5 «что уже сильно» (не трогать)
  3. docs/W7_FPGA_LITERATURE.md — source-grounded literature review (24.7KB, 6 sections). Ключевое открытие: «Proof of FPGA» как named DePIN primitive никем не опубликован (search 2026-07-05). Ближайшие релевантные работы:

  4. docs/M2_M4_FPGA_DECOMPOSED_PLAN.md — план на 10 недель с двумя треками:

  5. docs/W7_COLLAB_OPTIONS_v2.md — три варианта:

    • Option A (split-brain): cloud ведёт Track A, local ведёт Track B. $0 cash, 10 недель, HIGH bus-factor.
    • Option B (cloud-lead + human-executor): cloud ведёт оба. $0 cash, 12 недель, MEDIUM bus-factor.
    • Option C (external engineer + revenue-first): cloud lead Track B, external engineer M3-M4. $10-16k cash, 8-10 недель, LOW bus-factor, revenue signal ~W10 (Hub71+ 2026-08-02).
    • Гибридная рекомендация: A на первые 3-4 недели, потом решение по C по Hub71+ статусу.

Smoke artifacts (2)

  1. smoke/m2_loopback_smoke.sh — 3-нодовый UDP loopback smoke trios_meshd в sandbox. Cargo build 9.75s, три instance параллельно.

  2. smoke/M2_LOOPBACK_SMOKE_RESULTS.mdнайден sandbox-testability defect:

    • ETX сходится между node-12↔node-13 (~1.00), но node-11 не видит соседей и никто не видит node-11
    • Root causesrc/bin/trios_meshd.rs:125,138,168): ip_to_id: HashMap<IpAddr, NodeId> — на loopback все три узла имеют 127.0.0.1, insert перезаписывает
    • Fix для отдельного PR: HashMap<SocketAddr, NodeId> вместо HashMap<IpAddr, NodeId>
    • Hardware M2 не затронут — у реальных P203 Mini уникальные IP 10.42.0.X из baked image
    • Sandbox testability заблокирована до fix — нельзя smoke M2 daemon в CI без реального железа

Дисциплинарные хуки

  • Все документы содержат phi^2 + phi^-2 = 3 anchor
  • Все цифры маркированы -sim — ни одна как hw claim
  • No pre-silicon Trinity claim без tag
  • No-paste-review: cite SHA 81e8517 при approve
  • SHA-advance: если branch двинется, требуется Re-reviewed at <new_sha>: delta <bullet-list>
  • External-dep timer (per PR docs(W7): SHA-advance re-review + external-dep timer rules #45): не применимо здесь — нет upstream blocker'а, только internal image-bake

Как проверить

git fetch origin +pull/N/head:pr-w7-pivot
git checkout pr-w7-pivot

# Read documents (Russian)
cat docs/WAVE_REPORT_2026-07-05_FULL.md
cat docs/W7_WEAK_POINTS_STRUCTURAL.md
cat docs/W7_FPGA_LITERATURE.md
cat docs/M2_M4_FPGA_DECOMPOSED_PLAN.md
cat docs/W7_COLLAB_OPTIONS_v2.md

# Reproduce M2 loopback smoke
cargo build --bin trios_meshd --release
DURATION=10 ./smoke/m2_loopback_smoke.sh
# Expected output: node-11 isolated (root cause in file above),
# node-12 ↔ node-13 converge to ETX ~1.00

Что этот PR НЕ делает

  • Не фиксит ip_to_id bug — отдельный follow-up PR (feat/m2-daemon-loopback-fix)
  • Не тачает hardware (нет flash procedure change, нет src/wire.rs change, нет specs/ change → spec-drift-guard не тригерится)
  • Не claims Compute-arm workaround до silicon (стратегически объявлено «disabled by design pre-silicon» в plan §W7 finding fix(skill): correct fpga-synth SKILL.md hardcoded path + wrong board target #2 mitigation)
  • Не решает финальный выбор Option A/B/C — human decides

Ярлыки

documentation, drone-mesh, m2, fpga-attestation

phi^2 + phi^-2 = 3

Расширенный 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 gHashTag added mesh TRI-NET mesh track documentation Docs labels Jul 5, 2026
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
gHashTag marked this pull request as ready for review July 5, 2026 16:21
@gHashTag
gHashTag merged commit c95afbd into main Jul 5, 2026
2 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Docs mesh TRI-NET mesh track

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant