Ignore Kit's imgui.ini UI-state file - #7694
Conversation
| # warnings for assets with many collision-geometry parts (NVBugs 6629400 and the | ||
| # [Isaac-Sim 6.0 rc59] AllegroHand ovphysx report). A future ``ovstage`` release is | ||
| # expected to filter this diagnostic class by default; mute it globally until then. | ||
| settings.set_bool("/persistent/app/usd/muteUsdDiagnostics", True) |
There was a problem hiding this comment.
This setting is a global USD diagnostic mute, not a filter for the out-of-scope relationship warning described here. Because _load_extensions() applies it to every Kit-backed launch, unrelated USD warnings and errors from malformed assets or composition failures are also hidden, preventing users from diagnosing genuine asset problems.
Knowledge Base Used: Core simulation framework
| # warnings for assets with many collision-geometry parts (NVBugs 6629400 and the | ||
| # [Isaac-Sim 6.0 rc59] AllegroHand ovphysx report). A future ``ovstage`` release is | ||
| # expected to filter this diagnostic class by default; mute it globally until then. | ||
| settings.set_bool("/persistent/app/usd/muteUsdDiagnostics", True) |
There was a problem hiding this comment.
Writing this override under /persistent changes the user's saved Kit configuration rather than limiting the mute to the Isaac Lab run. Shutdown does not restore the setting, so one Isaac Lab launch can overwrite an explicit unmuted preference and leave diagnostics disabled in later Kit sessions, including sessions outside Isaac Lab.
Knowledge Base Used: Core simulation framework
There was a problem hiding this comment.
Isaac Lab Review Bot
The **/imgui.ini ignore rule is appropriately scoped, but the PR also unconditionally enables a persistent, global USD-diagnostic mute and describes it as suppressing only one narrow warning class. That launcher behavior and its changelog documentation need correction before merge.
- Design and architecture: The
.gitignorechange follows the existing generated-artifact pattern. However,AppLauncher._load_extensionsnow writes a blanket mute into persistent Kit state for every launcher consumer, without a targeted filter, opt-in, or restoration of the prior value. - API: No Python signatures change, but launcher startup behavior does: every
AppLauncherinvocation overrides the user-configurable persistent USD diagnostics setting. The changelog does not disclose that broader and persistent behavior. - Implementation: The unconditional
settings.set_bool("/persistent/app/usd/muteUsdDiagnostics", True)is broader than the specific out-of-scope-reference diagnostic discussed in the comment and changelog. The suppression should be narrowed to that diagnostic or made non-persistent and configurable; otherwise the release note must accurately document its full scope, persistence, and recovery path.
Significant concerns. Posted 2 actionable findings inline.
Automated review; human maintainers own approval decisions.
| Fixed | ||
| ^^^^^ | ||
|
|
||
| * Muted the repetitive ``refers to a path outside the scope of the reference ... Ignoring`` |
There was a problem hiding this comment.
🟡 Warning · Api — Changelog understates the behavior change
The fragment states only the refers to a path outside the scope of the reference ... Ignoring diagnostic is muted, but the added setting disables the entire USD diagnostic channel persistently. Users debugging asset-load failures will not learn from the release note that other USD warnings and errors are now suppressed. Either narrow the code to the described class or document the full scope, persistence, and how to restore diagnostics.
| # warnings for assets with many collision-geometry parts (NVBugs 6629400 and the | ||
| # [Isaac-Sim 6.0 rc59] AllegroHand ovphysx report). A future ``ovstage`` release is | ||
| # expected to filter this diagnostic class by default; mute it globally until then. | ||
| settings.set_bool("/persistent/app/usd/muteUsdDiagnostics", True) |
There was a problem hiding this comment.
🟡 Warning · Design Architecture — Blanket persistent mute of all USD diagnostics
muteUsdDiagnostics is a blanket switch, not a filter for the quoted "outside the scope of the reference" message, so every Isaac Lab launch also silences genuine USD composition errors (missing references, unresolvable asset paths) with no opt-out. The /persistent/ prefix additionally serializes this into the user's Kit settings, leaking beyond the process, unlike the neighboring process-scoped /isaaclab/* writes. Scope it to the specific diagnostic or use a non-persistent, opt-in setting.
Long sessions with a GUI-backed visualizer (e.g. --visualizer kit) write imgui.ini into the process working directory, which dirties the repository when launched from the repository root.
70d31ea to
eb6098e
Compare
|
Fixed a branch-management mistake: this branch was accidentally built on top of the (now-closed) #7654 commit, which pulled the unrelated USD-diagnostic-mute change into this PR's diff. Force-pushed a clean single-commit branch off current |
Note that Kit's ImGui-based UI writes an imgui.ini file (window layout state) to the process working directory, which shows up as an untracked file if that's the repository root -- already ignored in .gitignore (see the prior commit), documented here so users understand what the file is. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
run-ci |
|
Backported to |
# Description Long sessions using a GUI-backed visualizer (`--visualizer kit`) write `imgui.ini` — Kit's ImGui UI-state file — into the process working directory. When Isaac Lab is launched from the repository root (the common case), this dirties the checkout: an eight-minute session produced a 128-byte `imgui.ini` at the repo root after ~5m43s; short bounded runs stayed clean. This is Kit's own compiled `omni.kit.renderer.imgui` extension, not Isaac Lab code, so there's no in-repo hook to redirect where it writes. Adds `**/imgui.ini` to `.gitignore`, following the same pattern as the existing `__tracked_surface.stl` rule for PyTetWild's generated artifact (#6648). ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing - Verified `imgui.ini` at the repo root and at a nested path are both ignored (`git check-ignore -v`). - Verified unrelated files are unaffected. ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] Documentation is not required for this `.gitignore`-only change - [x] My changes generate no new warnings - [x] A changelog fragment is not required because no package was touched - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> (cherry picked from commit 527c77e)
Description
Long sessions using a GUI-backed visualizer (
--visualizer kit) writeimgui.ini— Kit'sImGui UI-state file — into the process working directory. When Isaac Lab is launched from
the repository root (the common case), this dirties the checkout: an eight-minute session
produced a 128-byte
imgui.iniat the repo root after ~5m43s; short bounded runs stayedclean. This is Kit's own compiled
omni.kit.renderer.imguiextension, not Isaac Lab code,so there's no in-repo hook to redirect where it writes.
Adds
**/imgui.inito.gitignore, following the same pattern as the existing__tracked_surface.stlrule for PyTetWild's generated artifact (#6648).Type of change
Testing
imgui.iniat the repo root and at a nested path are both ignored(
git check-ignore -v).Release backport
developChecklist
pre-commitchecks with./isaaclab.sh --format.gitignore-only changeCONTRIBUTORS.mdor my name already exists there