feat(shipote): drain shutdown + persist live pipelines + batched query (fase N)
- Daemon SIGTERM/SIGINT: snapshot ANTES, stop_with_grace(1s) de todos los workspaces DESPUÉS. Grace permite app-level cleanup. - Snapshot v3 con live_pipelines: pipeline_supervisors se persisten; daemon relanza al restore con sus recursos (Incarnator+DiscernPipeline). RestoreOutcome separado para que core no necesite incarnator. Forward-compat v1/v2 via #[serde(default)]. - WorkspaceFullSummary: stats+quota+commands+flow_sockets en 1 roundtrip. Shell reduce N×4 requests/probe a N×1 + 4 globales. 83 tests pasan (ente-incarnate 16, nouser-core 27, shipote-card 8, shipote-core 24, shipote-discern 5, yahweh-provider-fs 3). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -110,6 +110,11 @@ pub enum Request {
|
||||
/// Reporte de quotas (rlimits declarados vs uso actual).
|
||||
WorkspaceQuota { workspace: shipote_card::WorkspaceId },
|
||||
|
||||
/// Resumen completo de un workspace: stats + quota + commands +
|
||||
/// flow sockets en una sola roundtrip. Reduce N×4 requests del
|
||||
/// shell a N×1.
|
||||
WorkspaceFullSummary { workspace: shipote_card::WorkspaceId },
|
||||
|
||||
/// Detener selectivamente los comandos de un pipeline (no el workspace
|
||||
/// entero). `grace_ms`: SIGTERM → wait → SIGKILL.
|
||||
PipelineStop {
|
||||
@@ -205,6 +210,13 @@ pub enum Response {
|
||||
info: QuotaReportInfo,
|
||||
},
|
||||
|
||||
WorkspaceFullSummary {
|
||||
stats: WorkspaceStatsInfo,
|
||||
quota: QuotaReportInfo,
|
||||
commands: Vec<CommandInfo>,
|
||||
flow_sockets: Vec<PathBuf>,
|
||||
},
|
||||
|
||||
FlowList {
|
||||
items: Vec<FlowInfo>,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user