Skip to content

Forward Calamari service messages so the server sees output variables

Placeholder ppxd requested to merge fix/calamari-output-variables into main

Summary

  • ConsoleProcessOutputSink.WriteStdout suppressed every ##squid[...] service message. That process's stdout is not a user-facing surface — it is the wire back to the server: the Tentacle captures it into the script's log lines, and those lines are the server's only source of output variables (ExecuteStepsPhase.CaptureOutputVariables → ServiceMessageParser.ParseOutputVariables). So a script run through Calamari silently lost every output variable it set, while the identical line on the direct path passed straight through.
  • Forward the line instead. The dedicated service-message sink still collects the variable for this process's own conventions; forwarding is what lets the server see it too. Both consumers are independent and both matter.

Test plan

  • Unit: sink, processor, entry point and CLI smoke all assert the message reaches stdout
  • Unit: new seam tests drive the real ScriptOutputProcessor, capture its stdout, and feed those exact lines to the production server-side ServiceMessageParser — plaintext, sensitive-flag, and base64 wire format, plus two controls
  • Mutation: restoring the suppression fails 3 of the 5 seam tests; the two controls are deliberately insensitive to it
  • Mutation: suppressing only sensitive='True' messages passes all 557 Calamari tests but fails the seam test — the escape the seam tests exist to close
  • Full unit suite and Calamari suite green

Merge request reports

Loading