mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-08-11 19:26:56 +00:00
fix(mesh): surface data-plane failures in health, meta, and Routing tab (#1088)
The three previously-silent console.warn paths in MeshService.setupMeshNetwork now route through a typed recordSetupFailure helper that classifies the failure (subnet_invalid, subnet_overlap, subnet_mismatch, ip_in_use, attach_failed, not_in_docker), emits a mesh.disable activity entry at the matching level (error for real failures, warn for the expected dev-mode not_in_docker case), and strips mesh_proxy_callback_bootstrap from advertised capabilities via CapabilityRegistry. /api/health gains a mesh.dataPlane block carrying the typed status. /api/mesh/status carries localDataPlane at the top level so the Routing tab renders a red banner with an operator-actionable recovery hint (set SENCHO_MESH_SUBNET to a free /24 and recreate the container) when the data plane is down. The success path re-enables the capability and flips the status to ok. Generalizes the previously-documented F-0 failure mode (IP-in-subnet collision) to also cover the subnet-pool-overlap case where another Docker bridge on the host already owns the requested CIDR.
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
export type MeshRoutePillState = 'healthy' | 'degraded' | 'unreachable' | 'tunnel-down' | 'not-authorized';
|
||||
|
||||
export type MeshDataPlaneReason =
|
||||
| 'ok'
|
||||
| 'not_started'
|
||||
| 'subnet_invalid'
|
||||
| 'subnet_overlap'
|
||||
| 'subnet_mismatch'
|
||||
| 'ip_in_use'
|
||||
| 'attach_failed'
|
||||
| 'not_in_docker';
|
||||
|
||||
export interface MeshDataPlaneStatus {
|
||||
ok: boolean;
|
||||
reason: MeshDataPlaneReason;
|
||||
message: string | null;
|
||||
subnet: string;
|
||||
}
|
||||
|
||||
export interface MeshAlias {
|
||||
host: string;
|
||||
nodeId: number;
|
||||
|
||||
Reference in New Issue
Block a user