The final "UPDATE executions SET result=$::jsonb" built its payload with fmt.Sprintf and only escaped newlines. apt/pct output contains quotes, backslashes and control chars, so the payload was invalid JSON, the jsonb cast failed, and the (unchecked) UPDATE was silently discarded — the execution stayed 'approved' with a NULL result even though the LXC was fully provisioned (verified live: vmid auto-assigned, container running, service installed, post_install ran). - executeApprovedAction: marshal result via json.Marshal; log UPDATE errors - add jsonErr() helper; route all pct_create failure-path results through it - mcp/server.go: add jsonOut() for restart/systemctl/pct_exec inline results - regression test for JSON validity on quote/backslash/control-char output Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
74 KiB
74 KiB