Show service readiness follow-ups

This commit is contained in:
Meta Vens 2026-06-18 23:20:00 +01:00
commit 7ae2bf0722
4 changed files with 6 additions and 5 deletions

View file

@ -75,6 +75,7 @@ remembers doctrine; the branch remembers the blade.
- 2026-06-18: Direct execution-runbook summaries now print the explicit elevated invocation and post-run audit command. `cluster-service-execution-runbook` proof `local-20260618-230302-532-ba02c01c` printed `elevatedCommand=Start-Process PowerShell -Verb RunAs -Wait ...` and `aftercare=tools/epiphany_local_run.ps1 -Mode cluster-service-execution-audit`; `service-execution-runbook` proof `local-20260618-230302-517-cb2b650c` printed the matching single-service RunAs command plus `aftercare=tools/epiphany_local_run.ps1 -Mode service-execution-audit`. Both are non-mutating artifact rites until the operator explicitly runs the elevated command.
- 2026-06-18: Those direct execution-runbook summaries now also print `artifactSha256=<hash>` beside the elevated command and aftercare. Proof `local-20260618-230624-842-6bf65bee` printed cluster hash `3239ac17008b1ce857970e40b17d37a1ecf1631a3a6636bb2b8678312fb604a0`; proof `local-20260618-230624-759-fa808050` printed supervisor-service hash `b213a3c11a8f11a03061fcd743f507edaa59bc6767257b79cef63329596375e7`.
- 2026-06-18: Direct start/stop control summaries now print receipt-producing readback and aftercare wrappers. Cluster control plan proof `local-20260618-231419-577-bf46881d` and non-elevated execute proof `local-20260618-231433-306-46912a0c` append `followUp=tools/epiphany_local_run.ps1 -Mode cluster-service-audit` plus `aftercare=tools/epiphany_local_run.ps1 -Mode cluster-service-execution-audit`; single-service plan proof `local-20260618-231446-756-ad230196` and non-elevated execute proof `local-20260618-231503-197-e86342f1` append `followUp=tools/epiphany_local_run.ps1 -Mode service-status` plus `aftercare=tools/epiphany_local_run.ps1 -Mode service-execution-audit`. Plan paths remain non-mutating, and execute paths remain elevation-gated.
- 2026-06-18: Direct status/reconcile/readiness summaries now print the next wrapper route beside the sealed receipt. `service-status` proof `local-20260618-231732-162-b1abd238` points missing supervisor-service status to `service-reconcile` plus `service-execution-audit`; `service-reconcile` proof `local-20260618-231754-575-25cc8a48` points the missing service to `service-install-plan` plus `service-execution-audit`; `service-execution-readiness` proof `local-20260618-231825-381-8d28f3a9` points `not-elevated` to `service-execution-runbook` plus `service-execution-audit`; and `cluster-service-execution-readiness` proof `local-20260618-231849-435-65651fe1` points the seven-service `not-elevated` cluster wound to `cluster-service-execution-runbook` plus `cluster-service-execution-audit`.
- 2026-06-18: Direct install plan/execute summaries now print install artifact hashes and receipt-producing follow-up wrappers. Cluster install plan proof `local-20260618-230937-335-71c4fdaa` and non-elevated execute proof `local-20260618-230937-313-cb288388` printed `artifactSha256=c6b697e173eb319073da341fc90c2963bcd6bee63d804349205b6309c88df764` plus `followUp=tools/epiphany_local_run.ps1 -Mode cluster-service-install-execute`; supervisor-service plan proof `local-20260618-230937-331-2e34b579` and non-elevated execute proof `local-20260618-231007-138-1dacc61b` printed `artifactSha256=7760943f618d13425f034226e0c5913f971d05f395b3abc12ae386acd2aaf56f` plus `followUp=tools/epiphany_local_run.ps1 -Mode service-install-execute`.
- 2026-06-18: The `swarm-overview`/`swarm-triage` action queue now carries aggregate sealed service-execution wound counts on the elevated service-control row as `serviceExecutionFailedCheckCount` and `serviceExecutionMissingCheckCount`, with compact wrapper/TUI rows rendering `failedChecks=<n>` and `missingChecks=<n>`. Non-mutating readback rows keep both counts at zero. Live proofs `local-20260618-220534-199-d8e90287` and `local-20260618-220534-205-59582da5` printed the priority-50 `service-execution-authority` row with `failedChecks=11`, `missingChecks=6`, `artifactStatus=present`, the sealed cluster runbook SHA-256, and `privateStateExposed=false`.
- 2026-06-18: The elevated service-control action queue now emits one `service-execution-authority` row per sealed runbook witness instead of attaching all failed checks to the recommended cluster artifact. Source smoke seeds both cluster and single-service runbook witnesses and proves separate scoped rows. Live overview proof `local-20260618-221339-826-b1981064` and triage proof `local-20260618-221340-099-4b4baba8` printed priority 50 for `cluster-service-execution-runbook` with `failedChecks=5`, `missingChecks=0`, SHA-256 `3239ac17008b1ce857970e40b17d37a1ecf1631a3a6636bb2b8678312fb604a0`, and aftercare `cluster-service-execution-audit`; and priority 51 for `service-execution-runbook` with `failedChecks=6`, `missingChecks=6`, SHA-256 `b213a3c11a8f11a03061fcd743f507edaa59bc6767257b79cef63329596375e7`, and aftercare `service-execution-audit`, with no private state exposure.

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -2000,7 +2000,7 @@ if ($resultPath -ne "" -and (Test-Path -LiteralPath $resultPath)) {
Write-Host "Cluster daemon service control: service=$($result.serviceId), daemons=$($result.daemonCount), status=$($result.status), executeRequested=$($result.executeRequested), executed=$($result.executed), planned=$($result.plannedCount), requested=$($result.requestedCount), refused=$($result.refusedCount), failed=$($result.failedCount), receipt=$($result.receiptId), followUp=tools/epiphany_local_run.ps1 -Mode cluster-service-audit, aftercare=tools/epiphany_local_run.ps1 -Mode cluster-service-execution-audit, serviceRows=$serviceRows"
} elseif ($Mode -eq "cluster-service-execution-readiness") {
$serviceRows = Format-ClusterServiceRows $result.services $result.status
Write-Host "Cluster daemon service execution readiness: service=$($result.serviceId), daemons=$($result.daemonCount), services=$($result.serviceCount), status=$($result.status), elevated=$($result.elevated), receipt=$($result.receiptId), serviceRows=$serviceRows"
Write-Host "Cluster daemon service execution readiness: service=$($result.serviceId), daemons=$($result.daemonCount), services=$($result.serviceCount), status=$($result.status), elevated=$($result.elevated), receipt=$($result.receiptId), followUp=tools/epiphany_local_run.ps1 -Mode cluster-service-execution-runbook, aftercare=tools/epiphany_local_run.ps1 -Mode cluster-service-execution-audit, serviceRows=$serviceRows"
} elseif ($Mode -eq "cluster-service-execution-runbook") {
$elevatedCommand = Get-ElevatedRunbookCommand $result.runbookPath
$artifactSha256 = Get-LocalArtifactSha256 $result.runbookPath
@ -2048,13 +2048,13 @@ if ($resultPath -ne "" -and (Test-Path -LiteralPath $resultPath)) {
$artifactSha256 = Get-LocalArtifactSha256 $result.installScriptPath
Write-Host "Service install: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), executed=$($result.executed), receipt=$($result.receiptId), artifactSha256=$artifactSha256, followUp=tools/epiphany_local_run.ps1 -Mode service-install-execute, path=$($result.installScriptPath)"
} elseif ($Mode -eq "service-status") {
Write-Host "Service status: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), receipt=$($result.receiptId)"
Write-Host "Service status: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), receipt=$($result.receiptId), followUp=tools/epiphany_local_run.ps1 -Mode service-reconcile, aftercare=tools/epiphany_local_run.ps1 -Mode service-execution-audit"
} elseif ($Mode -eq "service-tick") {
Write-Host "Scheduler tick: scheduler=$($result.schedulerId), daemonSelector=$($result.daemonId), status=$($result.status), outcomes=$($result.outcomeCount), restarted=$($result.restartedCount), refused=$($result.refusedCount), skipped=$($result.skippedCount), receipt=$($result.schedulerReceiptId), privateStateExposed=$($result.privateStateExposed)"
} elseif ($Mode -eq "service-reconcile") {
Write-Host "Service reconcile: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), receipt=$($result.receiptId)"
Write-Host "Service reconcile: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), receipt=$($result.receiptId), followUp=tools/epiphany_local_run.ps1 -Mode service-install-plan, aftercare=tools/epiphany_local_run.ps1 -Mode service-execution-audit"
} elseif ($Mode -eq "service-execution-readiness") {
Write-Host "Service execution readiness: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), elevated=$($result.elevated), receipt=$($result.receiptId)"
Write-Host "Service execution readiness: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), elevated=$($result.elevated), receipt=$($result.receiptId), followUp=tools/epiphany_local_run.ps1 -Mode service-execution-runbook, aftercare=tools/epiphany_local_run.ps1 -Mode service-execution-audit"
} elseif ($Mode -eq "service-execution-audit") {
Write-Host "Service execution audit: service=$($result.serviceId), name=$($result.serviceName), status=$($result.status), missing=$($result.missingCount), failed=$($result.failedCount), receipt=$($result.receiptId)"
$failedCheckRows = Format-ServiceExecutionFailedChecks @($result.checks | Where-Object { -not $_.ok })