Repository navigation
fix: keep installed host commands working outside installer PATH - #218
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1391b1e7b9
ℹ️ 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".
| existing = (current.get("mcp") or {}).get("agentdescent") | ||
| if existing and existing != opencode_mcp_entry(): | ||
| w.lines.append(f"kept {path} (mcp entry already present)") |
There was a problem hiding this comment.
Refresh previously pinned launchers after Python moves
When install is rerun from a different Python environment—for example after replacing or relocating a virtualenv—the existing entry generated by this version contains the old absolute interpreter and therefore differs from the bare legacy opencode_mcp_entry(). This branch misclassifies that installer-generated entry as custom and retains the now-stale executable, so OpenCode can no longer launch MCP even though reinstall succeeds; the marker check in append_unless causes the analogous Codex failure. Recognize uncustomized pinned entries as installer-owned and refresh them to w.launcher while continuing to preserve genuinely custom launchers.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 0a5b611. Reinstall now refreshes untouched stock pinned Codex/OpenCode launchers after the old Python environment disappears. Recognition stays conservative: customized fields, additional arguments, relative paths and non-Python wrapper executables are preserved. Added all-four-host reinstall/dry-run/idempotence coverage plus POSIX/Windows wrapper controls, and seeded stale pinned configs into the installed-wheel smoke. Focused checks: Python 3.12 110 passed/4 skipped; Python 3.9 108 passed/6 skipped; independent final review clean. The PR is Draft while new exact-head CI runs (38039361138 tests, 38039361131 docs).
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0a5b6116d1
ℹ️ 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".
| and re.fullmatch(r"(?:pythonw?|pypy)(?:[0-9]+(?:\.[0-9]+)*)?(?:\.exe)?", | ||
| ntpath.basename(command[0]), re.IGNORECASE) is not None |
There was a problem hiding this comment.
Recognize free-threaded CPython launchers on reinstall
When installation runs under an official free-threaded CPython, sys.executable may be named python3.13t or python3.13t.exe (Python documentation), but this regex rejects the t suffix. The first install therefore writes a valid pinned launcher, while a reinstall after that environment is moved classifies the exact installer-generated Codex/OpenCode entry as custom and retains the deleted executable. Fresh evidence beyond the earlier fixed report is that the repaired recognizer still excludes this official interpreter name; allow the free-threaded suffix when recognizing stock launchers.
Useful? React with 👍 / 👎.
Summary
-m agentdescent.cli, preserving virtualenv identity without relying on the later host's PATH.Addresses the installer PATH regression identified in #210 (review) and tracked as a release gap in #207. No website, README, install guide, version manifest, engine, security, or credential changes.
Current validation
0a5b6116d1212a543a37348987be28061407e068repairs the stale pinned interpreter finding in fix: keep installed host commands working outside installer PATH #218 (comment).Evidence
agentdescentcommand with FileNotFoundError.No merge, tag, release, deployment, or paid-model run is requested.