Dagger v0.20.8 only supports 'grpc' and 'http/protobuf' OTLP protocols; 'http/json' triggers a WARN and exports nothing. The new approach pipes dagger's --progress=plain output through a Python script that echoes it in real-time and prints a timing table at EOF. No HTTP server, no port files, no protocol issues — works locally and in CI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>