SergioandClaude Opus 4.8 1be92f63c6 T10b: rebalanceo sin ruta + fail-safe (Unreachable, no hang)
T10 §D/§F.4: T9 no definía el eslabón cuando no hay ruta al presupuesto
(partición). Ahora:
- router::RebalanceResult { Routed{edges} | Unreachable }. rebalance_to es
  TRANSACCIONAL: si las vecinas directas cubren el déficit aplica el flujo
  (Routed); si no, no mueve nada y devuelve Unreachable. Nunca a medias, nunca
  bloquea.
- SpendOutcome + spend_with_rebalance: gasta local, o repone por rebalanceo, o
  ante Unreachable RECHAZA con spendable = presupuesto local (fail-safe). Nunca
  sobregira ni cuelga.

Tests: el 60/60 particionado con [50,50] → Unreachable → Rejected{spendable:50}
(gasta ≤50, valor≥0); con ruta se cubre por rebalanceo. Tests de T9b migrados a
la nueva firma.

AVAILABILITY.md (§F.6): el precio honesto del escrow — bajo partición la réplica
se limita a su presupuesto local (CAP: safety > availability); diffuse lo mitiga,
no lo elimina; sin promesas de liveness, solo safety. 61 tests, clippy limpio.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:09:59 +00:00
2026-07-01 18:02:43 +00:00
2026-07-01 18:02:43 +00:00
2026-07-01 18:02:43 +00:00
2026-07-01 18:02:43 +00:00
S
Description
No description provided
MIT
290 KiB
Languages
Rust 100%