When ProgressStream has logging=True (used by _presigned_get for all HTTP resource downloads), it renders a Rich progress bar into the log output every 2 seconds. This produces log lines with Unicode bar characters that are unreadable in structured JSON logs:
{"level": "info", "logger": "jumpstarter.streams.progress", "msg": "transfer ━━━━━━━━━━ 9.4 MB/s 1.1/1.6 GB Elapsed: 0:02:36 Remaining: 0:00:54"}
The fix should replace the Rich console rendering with a plain-text log message containing the transfer stats (bytes transferred, total, speed, elapsed time, percentage).
Affected code: python/packages/jumpstarter/jumpstarter/streams/progress.py — both the receive() and send() methods have the same pattern of rendering via Console + get_renderable().
When
ProgressStreamhaslogging=True(used by_presigned_getfor all HTTP resource downloads), it renders a Rich progress bar into the log output every 2 seconds. This produces log lines with Unicode bar characters that are unreadable in structured JSON logs:{"level": "info", "logger": "jumpstarter.streams.progress", "msg": "transfer ━━━━━━━━━━ 9.4 MB/s 1.1/1.6 GB Elapsed: 0:02:36 Remaining: 0:00:54"}The fix should replace the Rich console rendering with a plain-text log message containing the transfer stats (bytes transferred, total, speed, elapsed time, percentage).
Affected code:
python/packages/jumpstarter/jumpstarter/streams/progress.py— both thereceive()andsend()methods have the same pattern of rendering viaConsole+get_renderable().