Repository navigation
Various small fixes - #7
Merged
Merged
Conversation
A GUI app starts with a minimal PATH, so `#!/usr/bin/env node` launchers failed: the Codex daemon restart was skipped without a message, and OpenCode commands failed. Add node's directory and the CLI's own (nvm, fnm and Volta keep node there) to the PATH of every npm-installed CLI Wizard runs, and look for Pi's node and npm next to Pi.
One PATH entry that is a file, unreadable or broken made executable lookup fail, so every agent showed an error. Skip it like a shell does.
On Linux systems without dpkg-query, detection failed instead of reporting an unknown version.
Detection refused symlinked configs (common with dotfiles managers). Read through symlinks, and refuse only to write one, which would turn it into a regular file. Check every write before a plan's first step, so an install step never runs for a write that will be refused.
- Save the next ID before the backup, so a failed state save cannot reuse an ID, and never overwrite an existing backup file (another Wizard process may have used the ID). - Back up only the files a plan or a restore changes: restoring a file Wizard did not change (such as ~/.claude.json) rolled back unrelated edits.
JSON edits re-sorted every key of files like ~/.claude/settings.json. Enable serde_json's preserve_order and remove keys with shift_remove, since remove moves the last key into the gap.
- Disabled and Sub remove the inference settings only when they point at CoreInfra Hub, so another gateway and its key are kept (they are not backed up). This reverts 8e3f9d2: Claude ignores inference settings in the 1p mode that Sub selects. - Disabled returns a profile Wizard configured to the Claude account (1p), where sign-in works, and undoes Sub's disableAutoUpdates.
Claude may update itself after Wizard downloaded an update; installing the older download would then downgrade it.
- Disabling on Windows without ChatGPT installed failed. - Clean up the proxy settings after ChatGPT was uninstalled. - Save the proxy setting before the daemon restart, which can fail after ChatGPT already points at the listener.
ChatGPT creates its profile on first launch; enabling before that silently left ChatGPT without the proxy. On macOS, detect ChatGPT by its bundle ID, since the classic ChatGPT app has the same name. Linux detection accepts any `chatgpt` executable, so there a missing profile is still only logged.
The CLI cannot update ChatGPT's profile or the GUI's listener.
Disabling Pi left the key in auth.json when the plugin was already removed.
«Применить» did not restart a stopped listener unless the token changed. Sync the applied app's listener after every apply, even when saving the setting fails after it was saved (tray, autostart), and only that app's, so one listener's failure does not fail the other app's apply.
One error stopped the agent list from updating until restart. Retry the observer inside its loop, and never fail the state because the discovered paths could not be cached.
- A 401 for a session that a later login or cookie refresh replaced cleared the new account's profile and tokens. - Check the session generation after the refresh that follows issuing a token, which a logout can also interrupt.
A failed token load disabled the token controls until restart.
useSettings and get_settings_state, toml::get_value, and the TypeScript Backup.backup_version field were unused.
The matching-refs endpoint is not paginated, so the page loop never ended once there were 100 or more dev tags.
Dev releases for different commits could publish latest-dev.json out of order.
Odrian
approved these changes
Oct 30, 2026
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.
No description provided.