mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-20 10:18:25 +00:00
0b1ce54eec
The broker's read-after-write verification (ActionVerificationResult on ExecutionResult) was being persisted by the backend but no operator surface displayed it. Operators reviewing the action history saw only "command exit 0" — not "Pulse confirmed the workload service is active after dispatch." Adds the TS mirror for ActionVerificationResult on types/actionAudit.ts and renders it on each audit row in ResourceActionHistory.tsx when verification.ran=true. The render shows: - "Verified" or "Verification failed" badge tone - The verification command Pulse ran (e.g. systemctl is-active 'nginx') - The captured output verbatim - An italic note when the broker recorded one (dispatch failure, non-zero exit code) Tone is emerald for verified, amber for failed — matching the trust palette used for the confidence badge on the patrol findings panel. When verification.ran=false (no derivable check, or feature disabled for the action class) nothing renders, so operators do not see fabricated "verified" claims for actions where Pulse cannot read back. Verification artifacts: - ResourceActionHistory.verification.test.ts: source-text test pinning the verification render wiring on ResourceActionHistory.tsx. - ResourceDetailDrawer.history.test.tsx: extends the existing contract-style assertions to pin verification rendering on the detail drawer's audit rows. - actionAudit.test.ts: round-trips a verification block through the API client to pin the TS type mirror. Adds new Completion Obligation #23 to unified-resources contract pinning the canonical TS mirror location and the canonical render component, and a parallel api-contracts paragraph pinning the verification block on the action audit response.