Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3188 — A cold node finds the mesh from a signed manifest on Pages, and refuses a stale, rolled-back or unsigned one

Publish, through the existing Pages pipeline, a manifest of hub node ids and their public reachability hints, signed by a key the trust root names, with canonical serialisation, a monotonic sequence and an expiry; a node with no live peer reads it, keeps the last valid copy, and stops needing it once linked.

BLOKOVÁNO wave 2 · p3 · implementation profile · parallel safe

Part of mesh-connectivity — Trusted nodes connect across NAT through proven transports, and every surface says which path.

Blocked. This issue cannot start until I3176, milestone:mesh-connectivity are done. The status is derived from that, not declared.

Cíl

Publish, through the existing Pages pipeline, a manifest of hub node ids and their public reachability hints, signed by a key the trust root names, with canonical serialisation, a monotonic sequence and an expiry; a node with no live peer reads it, keeps the last valid copy, and stops needing it once linked.

Proč

The 10-16 'serverless discovery' design: Pages is static and cannot signal, so it can only be a signed, cacheable hint; a Pages outage must leave running links up. Master's declaration has 'seeds: none' and hand-written rendezvous endpoints. Proposed in ADR 0203 (GitHub Pages is a signed bootstrap anchor for the mesh, never its signalling channel) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c282#2, chatgpt-majordomus:c282#0.

Aktuální stav

Verified: no bootstrap or seed manifest exists; scripts/pages publishes the site only.

Cílový stav

A generated manifest beside the site; resolver with timeouts and the offline policy.

Rozsah

  • scripts/pages
  • apps/majordomus-cli/src/mesh/rendezvous.rs
  • apps/majordomus-cli/src/mesh/root.rs
  • share/schemas/majordomus/mesh-declaration
  • .ai/repo/mesh/majordomus.yaml
  • .ai/repo/adrs/0203-github-pages-is-a-signed-bootstrap-anchor-for-the-mesh-never-its.md
  • apps/majordomus-cli/src/mesh/state.rs
  • apps/majordomus-cli/src/mesh/config.rs
  • .github/workflows/pages.yml
  • docs/MESH.md
  • docs/GUIDE.md

Mimo rozsah

  • Private addresses or identities in the manifest
  • Live signalling over Pages or the GitHub API
  • A manifest hint that is a plain-http public address: hints obey the same rule as declared hubs (case 491)

Závislosti

Kritéria přijetí

  • An invalid signature and a lower sequence are refused
  • Pages unavailable: existing links survive and the last valid manifest is used within its expiry
  • Before any code, an amendment to ADR 0203 is proposed to the owner. It names the manifest signing key in the mesh declaration, its custody (offline-signed committed artifact or CI secret, with the workflow-edit exposure stated) and how the sequence stays monotonic across stateless Pages rebuilds
  • The node persists the last-seen manifest sequence in its local mesh state and refuses a lower one after a restart
  • This issue writes apps/majordomus-cli/tests/mesh_bootstrap_manifest.rs and, in the same change, records it as the test ref of criterion bootstrap-is-signed (evidence: test)
  • docs/MESH.md and docs/GUIDE.md describe how a cold node is configured to read the manifest and the offline policy

Validace

  • majordomus plan validate
  • cargo test --lib mesh::root
  • bash test/run.sh 491_the_mesh_is_on_here

Požadované důkazy

  • case_a_bootstrap_manifest_is_verified
  • test_a_bootstrap_manifest_is_verified

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3188.yaml. Read it back with majordomus plan show I3188.

Prohledává názvy a popisy všech stránek, které tento web publikuje.