You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A new helper is now available with exegol activate when a license is available but the exegol directory is under /root instead of the user's home directory. This migration is optional but if needed can be automated.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
It introduces a large, security-sensitive migration mechanism and changes core config/env resolution paths, which warrants careful human validation beyond automated review.
This PR releases Exegol wrapper 6.0.2 by adding a sudo-aware configuration directory migration flow (legacy /root/.exegol → ~user/.exegol) and centralizing sudo user/environment resolution so Exegol can correctly operate when invoked via sudo.
Changes:
Add a secure filesystem migration engine plus an interactive manager to propose/apply the /root → user-home config migration during exegol activate.
Introduce SudoInfo and update path/environment resolution across the codebase to be sudo-invoker aware (instead of root’s HOME).
Improve operational behavior in shell completion mode (avoid writing/upgrading config) and add explicit handling for Docker request timeouts.
File
Description
exegol/utils/SignalHandler.py
Adds “reason” support for deferred Ctrl+C messaging in critical sections.
exegol/utils/SessionHandler.py
Improves support logging with explicit license folder origin and safe Rich markup escaping.
exegol/utils/LocalDatastore.py
Adds close/reopen support and exposes datastore path for migration/debug flows.
exegol/utils/DataFileUtils.py
Prevents config directory/file writes/upgrades in argcomplete completion mode; switches to sudo-aware path expansion.
exegol/utils/ConfigDirMigration.py
New no-follow, fd-walk filesystem migration engine for legacy root config directories.
exegol/sentinel/SentinelProfileManager.py
Uses sudo-aware expansion for local source paths.
exegol/profile/ProfileUserConfigTier.py
Uses sudo-aware home resolution when validating host paths.
exegol/profile/ContainerProfileManager.py
Uses sudo-aware expansion for local source paths.
exegol/model/ExegolContainer.py
Adds ReadTimeout handling for Docker operations and related logging.
exegol/model/ContainerConfig.py
Uses sudo-aware expansion for user-entered paths (workspace, VPN, volumes, etc.).
exegol/manager/UpdateManager.py
Uses sudo-aware expansion when resolving local component source paths.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
It adds ~1,150 lines of new code performing a destructive, root-privileged filesystem migration of user config/license data that cannot be exercised in this environment and warrants careful human review.
No open issues 🎉
1 previously missed issue
In code that hasn't changed since last review
Dead raise after logger.critical() in ReadTimeout handling
exegol/model/ExegolContainer.py:204
The raise here is unreachable: logger.critical() always terminates the process (it calls exit(1), or raises RuntimeError in "raise" mode — see ExeLog.py:94-97), so it never returns to execute the following raise. The "retry later" wording suggests you intend to propagate the ReadTimeout so a higher level can recover, which is the pattern used for the same exception in rename_as_old below (logger.error(...) then raise). Consider using logger.error here so the raise actually re-raises the timeout; otherwise drop the dead raise.
This issue also appears on line 410 of the same file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Exegol wrapper 6.0.2
Description
A new helper is now available with
exegol activatewhen a license is available but the exegol directory is under/rootinstead of the user's home directory. This migration is optional but if needed can be automated.