Forward Calamari service messages so the server sees output variables
Summary
-
ConsoleProcessOutputSink.WriteStdoutsuppressed 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-sideServiceMessageParser— 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