Add macOS and Linux support - #1
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8c9fb4affa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| $python = Get-Command python -CommandType Application -ErrorAction SilentlyContinue | | ||
| Select-Object -First 1 |
There was a problem hiding this comment.
Discover
python3 on POSIX hosts
On macOS and many Linux installations, Python 3 is available only as python3; the unversioned python command is absent. In that supported environment this lookup returns null, Get-StateSnapshot reports the state helper as unavailable, and every task-dependent classification remains blocked despite the documented Python 3 requirement. The workflow does not expose this because actions/setup-python provides a python shim; resolve python3 as a fallback (and verify its supported version) for real POSIX hosts.
Useful? React with 👍 / 👎.
What changed
/proc/self/mountinfoand macOS mount identity from the native mount tableCODEX_HOME,CODEX_SQLITE_HOME, and an explicit-StateRootWhy
The original implementation was intentionally Windows-only. Its case-insensitive comparisons, junction/reparse-point model, default paths, and regression fixtures were not sufficient to claim safe cleanup support on case-sensitive POSIX filesystems or across mount and bind-mount boundaries.
Safety impact
The snapshot remains permanently read-only and non-authorizing. Unknown platforms, incomplete mount inventories, links, nested mounts, ambiguous state roots, inconsistent task graphs, and changing captures fail closed. Historical content and regenerable data still require a separate expiring manifest and exact later selection.
Local checks
PASS: isolated snapshot safety regression testsSkill is valid!The cross-platform GitHub Actions matrix is included in this PR and will be used to validate Ubuntu and macOS behavior before merge.