Repository navigation
Conversation
The loading screen drew a bundled greeting logo picked at random, and only swapped the summary box to ASCII on consoles that cannot encode box-drawing characters. Three of the four bundled logos use block or box-drawing characters, so printing the run summary to a console such as Windows output redirected to a file (cp1252) raised UnicodeEncodeError and stopped startup. Keep only the bundled logos the console can encode, and skip a pair with none left. UTF-8 consoles draw from both pairs as before.
[Low impact] The PR appears safe to merge. SummaryThe loading screen now filters bundled logos by the console's encoding before choosing a greeting.
Reviews (1) · Last reviewed commit: "Fix loading screen crash on consoles wit..." · Reviewed by Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
Needs attention: Test quality (1). Other reviewed categories look good.
- PR description: The title and body match the diff, document reproduction and validation, and make no performance claim requiring measurements.
- Design and architecture: Architecture looks good.
- Scope and over-engineering: No over-engineering issues.
- API: API changes look good.
- Compatibility and deprecation: No breaking changes identified.
- Implementation: Implementation looks good.
- Style consistency: Style consistency looks good.
- Test quality: The regression test covers two distinct failure paths, but the file-level CI routing requires replacing the single-test kitless marker with module-level
pytestmark.
Minor fixes needed. Posted 1 inline finding.
Automated review; human maintainers own approval decisions.
| screen.close() | ||
|
|
||
|
|
||
| @pytest.mark.kitless |
There was a problem hiding this comment.
🟡 Warning · Test Quality — Mark whole file kitless via pytestmark
Every test in this file runs without Isaac Sim, and CI routes by file text, so a single-test mark pulls in the unmarked siblings while implying they do not qualify. Use a module-level pytestmark instead.
There was a problem hiding this comment.
Moved the kitless mark to a module-level pytestmark and removed the single-test mark, in 2214b28.
🤖 Addressed by Claude Code
Description
The loading screen draws a greeting logo beside the run summary, picked at random from two bundled pairs. On consoles that cannot encode box-drawing characters it already switches the summary box to ASCII, but it never checked the logos. Three of the four bundled logos (
LOGO_WIDE,LOGO_NVIDIA,LOGO_NVIDIA_WIDE) use block or box-drawing characters.On a cp1252 console, such as Windows output redirected to a file,
LoadingScreen.summary()raisedUnicodeEncodeError, andisaaclab trainexited before building the environment. It failed in two cases:Reproduced on
release/3.0.0(Windows 11) withuv run --extra isaacsim isaaclab train ... > train.log 2>&1from Git Bash:The fix
_can_encode.Until this lands, setting
PYTHONIOENCODING=utf-8avoids the crash. The same bug is onrelease/3.0.0, where its simpler__init__should take this fix as a backport.No issue was filed for this.
Type of change
Screenshots
Not applicable (console output).
Testing
test_summary_prints_on_console_that_cannot_encode_greeting_art(kitless) writes the summary to a cp1252 stream in two cases: the NVIDIA logo at standard width, and the robot pair's wide logo at 130 columns. Both cases fail onmainwith theUnicodeEncodeErrorabove and pass with the fix.test_loading_screen.pyandtest_remote_greetings.pypass on Windows (Python 3.12, rich 14.3.4), with one exception.test_live_lifecycle_restores_normal_screenfinds no alternate-screen escape, and it fails the same way on unmodifiedmainin that shell, most likely because rich treats a process without a VT console as legacy Windows.Checklist
Docker and GPU tests run on demand. Push the commits you want tested, then
comment
run-cion the pull request.pre-commitchecks withuv run isaaclab --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bump package versions — CI handles that)CONTRIBUTORS.mdor my name already exists there