META-001: Cross-Mesh Federation Protocol #199
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#199
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Feature Triage Assessment
Scope: large
Risk: medium
Spec Alignment: aligned
Summary: Meta-issue/epic to formalize the cross-mesh federation protocol — standardizing HTTP API contracts, fixing multi-hop routing (currently broken), normalizing error handling, and hardening the cross-mesh auth boundary.
Recommendation: Define the protocol as an OpenAPI spec before touching code, then decompose into child issues: (1) standardize federation endpoints, (2) formalize error handling, (3) implement proper intent status propagation (known bug), (4) make multi-hop routing actually functional, (5) add bond/reputation integration. Each child is small-medium and independently verifiable.
Rationale: SCOPE=large: META prefix signals an epic; federation spans 6+ runtime files (mesh_federation.py, cross_mesh_forwarding.py, multi_hop_forwarding.py, sibling_ack_processor.py, circuit_breaker.py, circuit_breaker protected gateway) plus tests/docs; a formal protocol is a new subsystem. RISK=medium: federation is a secondary path — local execution is primary — so changes are unlikely to break core functionality, but cross-mesh auth and protocol versioning need care to avoid production incidents. SPEC=aligned: federation is an explicit Phase 3 (Scale) goal in ROADMAP.md; extensive existing code proves it's in project scope; the Implementation Review already identified the specific gaps this META would track.
Labeled
blocked:needs-decision— unblock on Forgejo to dispatch to the fixer pipeline.⏸ Needs Decision
What needs to be decided?
blocked:needs-decisionlabel and the triage will create a decomposition issue.blocked:needs-decisionlabel and the triage will approve it.blocked:needs-decisionlabel and the triage will approve it.Blocking factors:
Scope: large Risk: high Spec: misaligned Type: other
Summary: Tracking/umbrella issue to formalize the existing ad-hoc federation implementation into a documented cross-mesh protocol with standardized message formats, discovery, auth, and routing semantics.
Suggestion: This needs a spec before any implementation. Start by creating COMMUNITY_MESH.md (referenced but missing), documenting the existing wire protocol (current status codes, auth scheme with its hardcoded bearer token, discovery via tailnet/registry.json, multi-hop routing). Then decompose into sub-issues per IMPLEMENTATION_REVIEW.md finding — the critical bug (Intent 1: missing status updates) should be its own fix-PR, the bond/reputation integration another, auth standardization a third. The META issue should track sub-issues, not carry code itself.
Rationale: Large: touches 7+ existing federation modules plus docs, ledger schema, and likely new protocol definition files — easily 15+ files affected. High risk: federation is cross-boundary network code with existing hardcoded bearer tokens (security concern), a known critical bug where forwarded intents are never marked complete (data integrity), and any protocol changes are breaking for all mesh deployments. Misaligned: the project has operational federation code but no formal protocol spec document — the issue is asking for something that doesn't exist yet. Type 'other' because it's a meta/umbrella tracking issue, not a direct feature or bug.
To unblock: Remove the
blocked:needs-decisionlabel. The triage will apply the appropriate outcome based on your choice above.Design doc for META-001 now available: PR #275 (docs/federation/design.md). Research survey (Matrix, ActivityPub, OIDC/DID, Yggdrasil/cjdns/SSB) plus 41 REQ-* requirements: topology (p2p+bootstrap registry), auth/identity (ed25519 + HMAC shared secrets, TOFU), envelope format (canonical JSON signing, idempotent route_id), conflict resolution (deterministic tie-breaks), failure modes (peer loss, Redis-down HTTP path, rotation grace, split-brain). Companion normative spec lands under docs/federation/spec.md via child task. This is the decomposition material that was missing (issue body was empty, parked blocked:preflight).
Normative protocol spec is now available: docs/federation/spec.md (in PR #275, commit
5d94f6b).Contents: wire-level envelope JSON schema (federation/v1), canonical serialization + HMAC-SHA256 signature scheme with a conformance test vector, handshake state machine (hello/challenge/response/ack) with TOFU pinning and key rotation, capability negotiation, HTTP transport binding + error model, and worked examples for join handshake, federated message relay, and graceful disconnect. Cross-references all 41 REQ-* ids from design.md (traceability matrix in spec §13).
This is the normative input for the implementation task (federation protocol module, handshake handler, message router, E2E two-mesh demo).
Mark referenced this issue2026-08-14 02:46:12 +00:00