Repository navigation
feat(cli): add proofpath update and the TUI's /update - #15
Merged
Merged
Conversation
Updating meant knowing how proofpath was installed and retyping that install. A plain `uv tool upgrade` also silently removes the browser extra: it is pip-installed into the tool environment on consent, and uv drops such packages on upgrade (measured 2026-10-05). The command checks PyPI, detects the install (uv tool, pipx, pip, editable, or a temporary uvx/pipx-run environment) and re-installs with the extras that are present written into the spec, so later upgrades keep them too. `--check` only reports. `network=ask` without a TTY is a deny (rule 4). The TUI refuses `/update` while anything that runs the installed code is still going, and the reverse. Logged commands moved to a leaf `shell` module whose display form pastes back into cmd.exe and PowerShell as well as POSIX shells. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K46EEsxMvuAuM8wjvPNWLM
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
The new guard test released its blocked /resolve and left the app straight away. On the Windows runners the worker then wrote to a RunLog whose screen was already gone (NoMatches), failing both Windows jobs of PR #15. Wait for the resolve result, as the sibling test already waits for its install. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K46EEsxMvuAuM8wjvPNWLM
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this changes
proofpath update [--check]and the TUI's/update. The command asks PyPI for the latest version, works out how proofpath was installed and re-installs it the same way: uv tool, pipx or pip. An editable install, or a temporaryuvx/pipx runenvironment, is never touched; the command says how to update those instead.--checkonly reports.browser,gpu) go into the install spec (uv tool install --upgrade "proofpath[browser]"), so a later plainuv tool upgradekeeps them too. The spec is never version-pinned.network=denysends nothing.network=askwith no TTY is a deny (rule 4); with a TTY it proceeds and adds a note. The installed version is checked afterwards in a fresh, isolated (-I) process; when it does not match, that is a failure./updateis refused while a run or a mirrored verb is still running the installed code, and nothing new starts while an update is installing.shellmodule. Its display form pastes back into POSIX shells, cmd.exe and PowerShell:>,,and the like are double-quoted on Windows. The browser install log uses it too./list now caps at 9 rows plus "… 2 more".updatesits last, so/helpstays visible.docs/superpowers/specs/2026-10-05-update-command-design.md, OPEN-ITEMS §21, README "Updating", CHANGELOG.Why
The user asked for an update command like
claude update. A plainuv tool upgrade proofpathis not enough. The browser extra is pip-installed into the tool environment on consent, and on 2026-10-05 a spike in an isolatedUV_TOOL_DIRshowed thatuv tool upgraderemoves packages added that way. Upgrading by hand would silently drop the browser wheels the user had agreed to download.The implementation had an independent review and three re-review rounds. They caught six real problems:
askbypassed rule 4;/helphidden at 80x24;/updatereplacing the venv under a running TUI;pipx runcaches missed on macOS and Windows;>=unquoted in the Windows browser log.Checklist
ruff checkandruff format --checkare clean (andmypy --strict)pytestpasses (full suite green; new:test_update.py,test_update_cli.py,test_shell.py, plus TUI tests)respx, the runner injected)🤖 Generated with Claude Code
https://claude.ai/code/session_01K46EEsxMvuAuM8wjvPNWLM