             swiftParser.parse(bytes: data)
         } else {
             queue.async {
-                self.progressAnimation.clear()
-                self.outputStream <<< data
-                self.outputStream.flush()
+                self.nonSwiftMessageBuffers[command.name, default: []] += data
             }
         }
     }

    /// Swift parsers keyed by llbuild command name.
    private var swiftParsers: [String: SwiftCompilerOutputParser] = [:]

    /// The build execution context.
    private let buildExecutionContext: BuildExecutionContext


        process: ProcessHandle,
        result: CommandExtendedResult
    ) {
        if let buffer = self.nonSwiftMessageBuffers[command.name] {
            queue.async {
                self.progressAnimation.clear()
                self.outputStream <<< buffer
                self.outputStream.flush()
                self.nonSwiftMessageBuffers[command.name] = nil
            }
        }
        if result.result == .failed {
            // The command failed, so we queue up an asynchronous task to see if we have any error messages from the target to provide advice about.
            queue.async {
