Skip to content

Ignore Kit's imgui.ini UI-state file - #7694

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
matthewtrepte:mtrepte/gitignore-imgui-ini
Sep 10, 2026
Merged

Ignore Kit's imgui.ini UI-state file#7694
kellyguo11 merged 2 commits into
isaac-sim:developfrom
matthewtrepte:mtrepte/gitignore-imgui-ini

Conversation

@matthewtrepte

@matthewtrepte matthewtrepte commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

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

  • Backport this pull request to the active release branch after it merges into develop

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • Documentation is not required for this .gitignore-only change
  • My changes generate no new warnings
  • A changelog fragment is not required because no package was touched
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@matthewtrepte
matthewtrepte requested a review from a team September 9, 2026 20:42
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Sep 9, 2026
# 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)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 All USD Diagnostics Muted

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)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Mute Persists Across Sessions

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

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .gitignore change follows the existing generated-artifact pattern. However, AppLauncher._load_extensions now 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 AppLauncher invocation 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``

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.
@matthewtrepte
matthewtrepte force-pushed the mtrepte/gitignore-imgui-ini branch from 70d31ea to eb6098e Compare September 9, 2026 22:18
@matthewtrepte

Copy link
Copy Markdown
Contributor Author

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 develop — this PR is now .gitignore-only, as intended.

@isaac-sim isaac-sim deleted a comment from greptile-apps Bot Sep 9, 2026
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>
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 10, 2026
@matthewtrepte

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 10, 2026
@kellyguo11
kellyguo11 merged commit 527c77e into isaac-sim:develop Sep 10, 2026
53 checks passed
@isaaclab-bot

isaaclab-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Backported to release/3.0.0 as a1d7139.

isaaclab-bot Bot pushed a commit that referenced this pull request Sep 10, 2026
# 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants