Merge smoke/federation-failure-tests -> master #288
No reviewers
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!288
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "smoke/federation-failure-tests"
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?
Auto-opened by batch merger to land smoke/federation-failure-tests into master.
Implements META-001 per docs/federation/spec.md and the plan at .kilo/plans/META-001-cross-mesh-federation-protocol.md: - runtime/federation_protocol.py: federation/v1 envelope codec, canonical serialization, HMAC-SHA256 sign/verify with freshness window + replay LRU (spec 3-4, including the 4.4 test vector) - runtime/federation_handshake.py: hello/challenge/response/ack state machine, ed25519 identity proof, TOFU pinning, split-brain detection (spec 5) - runtime/federation_credentials.py: per-peer secret resolution (env -> SecretsManager -> legacy token) and rotation - runtime/mesh_federation.py: signed heartbeats/intent routes, real _check_node_timeouts (parsed datetimes, online->degraded->offline), _dispatch_local_route wired to FederationWorker, get_federation_health, removed duplicate mesh_forwarded_intents CREATE - runtime/cross_mesh_forwarding.py: envelope wrapping in forward_intent, accept_envelope, resolver-based bearer (legacy fallback + metric) - runtime/http_entrypoint.py: POST /v1/federation/{handshake,heartbeat, intent,disconnect}, GET /v1/federation/{siblings,health}, trust-tier gate, spec 7.3 error model - ledger migration 0008 (federation_peer_keys, federation_heartbeat_log, federation_route_intents) + MeshLedger/federation repo helpers - federation_worker.py: use route_intent() (IntentRouter class never existed) - scripts/demo_federation.py CLI harness booting two meshes end-to-end - tests: envelope codec, handshake state machine, credentials, mesh_federation, gateway envelope wrapping, HTTP routes, two-mesh integration (all green) - docs: docs/reference/MESH_FEDERATION.md, API.md federation endpoints, config/mesh.yaml federation section Demo (in PR description): python scripts/demo_federation.py -> peer discovery, 4-step handshake w/ TOFU pinning, intent forward round-trip, shared-secret rotation, all end-to-end in-processPull request closed