@@ -31,6 +31,11 @@ export class RemoteClient {
3131 const logFile = Cli . options ! [ 'logFile' ] ;
3232 process . stdin . resume ( ) ;
3333 process . stdin . setEncoding ( 'utf8' ) ;
34+
35+ // For K8s, ensure stdout is unbuffered so messages are captured immediately
36+ if ( CloudRunnerOptions . providerStrategy === 'k8s' ) {
37+ process . stdout . setDefaultEncoding ( 'utf8' ) ;
38+ }
3439
3540 let lingeringLine = '' ;
3641
@@ -44,8 +49,12 @@ export class RemoteClient {
4449 // For K8s, write to both log file and stdout so kubectl logs can capture it
4550 if ( CloudRunnerOptions . providerStrategy === 'k8s' ) {
4651 fs . appendFileSync ( logFile , element ) ;
47- // Write to stdout so kubectl logs can capture it
52+ // Write to stdout so kubectl logs can capture it - ensure newline is included
4853 process . stdout . write ( `${ element } \n` ) ;
54+ // Force flush if possible
55+ if ( typeof process . stdout . flush === 'function' ) {
56+ process . stdout . flush ( ) ;
57+ }
4958 CloudRunnerLogger . log ( element ) ;
5059 } else {
5160 CloudRunnerLogger . log ( element ) ;
@@ -58,6 +67,9 @@ export class RemoteClient {
5867 if ( lingeringLine ) {
5968 fs . appendFileSync ( logFile , lingeringLine ) ;
6069 process . stdout . write ( `${ lingeringLine } \n` ) ;
70+ if ( typeof process . stdout . flush === 'function' ) {
71+ process . stdout . flush ( ) ;
72+ }
6173 }
6274 CloudRunnerLogger . log ( lingeringLine ) ;
6375 } else {
@@ -133,9 +145,14 @@ export class RemoteClient {
133145
134146 // Ensure success marker is present in logs for tests
135147 // For K8s, kubectl logs reads from stdout/stderr, so we must write to stdout
148+ // Also ensure it's flushed immediately
136149 const successMessage = `Activation successful` ;
137150 // Write to stdout first so kubectl logs can capture it
138151 process . stdout . write ( `${ successMessage } \n` ) ;
152+ // Force flush stdout to ensure it's captured
153+ if ( process . stdout . isTTY === false ) {
154+ process . stdout . write ( '' ) ; // Trigger flush
155+ }
139156 // Also log via CloudRunnerLogger for GitHub Actions
140157 CloudRunnerLogger . log ( successMessage ) ;
141158
0 commit comments