feat: auto install latest versions #533#536
Conversation
- Implement notifyUpdates to check for new versions on startup. - Fix version comparison in update and auto-updater components to use DISPLAY_VERSION. - Allow 'claude update' for OpenClaude package even on third-party providers. - Sync release notes and config tracking with actual version.
|
@Vasanthdev2004 kindly have a look this might be related on the one you working on |
gnanam1990
left a comment
There was a problem hiding this comment.
Thanks, I think the DISPLAY_VERSION fix direction is correct, and I agree that OpenClaude should not treat the build-time 99.0.0 bypass as the real user-facing version for update/release-note decisions.
But I’m not comfortable merging the startup notifier as-is.
The blocker for me is that this adds a new outbound update check on normal startup via notifyUpdates() in main.tsx, which calls getLatestVersion(channel) remotely by default. That changes the trust/behavior surface in a way that needs more care than a normal version-compare fix.
Specific concerns:
- this introduces a new outbound network call during startup
- it appears to run by default in normal production usage
- I don’t see throttling / cache-window behavior in the new notifier path
- this PR mixes two different scopes: fixing display-version comparisons, and adding a startup update-notification network feature
I’d be much more comfortable if this were split so the version-comparison fixes can land independently, and the startup notifier comes back only with a clearer trust story, throttling/caching, and opt-in or well-justified behavior.
|
@Vasanthdev2004 check once .. |
|
@Syntax-Error-1337 kindly provide screenshot please |
Vasanthdev2004
left a comment
There was a problem hiding this comment.
Thanks for taking a swing at this. I checked the current head against the existing updater work and I do not think this is merge-ready.
Verdict
Needs changes
Blockers
-
This overlaps heavily with the existing updater-notice work already in progress for the same issue area, but the branch mixes in a separate startup notifier path (
src/utils/updateNotifier.ts+main.tsx) that changes behavior and trust surface in a different way. So even before code details, the review surface is redundant-but-divergent rather than a clean focused fix. -
The PR still carries upstream Claude-specific commands / branding in user-facing update paths. For example, the package-manager update strings and native/error paths in
src/cli/update.tsstill emit commands likeclaude update,claude doctor,claude install,brew upgrade claude-code, andwinget upgrade Anthropic.ClaudeCode. For OpenClaude, that is not the user-facing command story we want to reinforce. -
The new startup notifier adds an outbound update check during normal startup via
notifyUpdates()inmain.tsx, but I do not see enough justification/guarding here to merge that as part of a version-display cleanup. That is a broader behavior change than just fixing the visible99.0.0issue.
What looks directionally right
- using
DISPLAY_VERSIONinstead of the build-time placeholder where appropriate is the right direction - fixing the visible dummy-version problem is a valid UX issue
But in its current shape this is both overlapping with the existing work and still not aligned with OpenClaude-specific updater UX. I would not merge this branch as-is.
|
One extra note for clarity: this update-notice / startup-update UX area is already being actively worked on in #535, so I would prefer we converge there rather than merge a parallel branch for the same issue theme. If the main thing you were aiming to fix here is the visible |
auriti
left a comment
There was a problem hiding this comment.
Rechecked the current head with the green smoke-and-tests run.
I still don’t think this is merge-ready, for the same core reasons as the earlier reviews:
-
The PR still mixes two scopes that should not be shipped together.
- fixing
DISPLAY_VERSION/ visible version comparisons is one thing - adding a new startup notifier (
src/utils/updateNotifier.ts+main.tsx) is a separate behavior/trust-surface change
- fixing
-
The startup notifier is still a real outbound network check on normal startup.
notifyUpdates()runs frommain.tsxand callsgetLatestVersion(...)by default. I still don’t see enough throttling/cache-window/justification here to treat that as a small UX cleanup. -
The updater UX is still not aligned with the OpenClaude-specific path.
Even after theDISPLAY_VERSIONcleanup, this branch still carries upstream-facing package-manager guidance insrc/cli/update.ts/src/components/PackageManagerAutoUpdater.tsx(brew upgrade claude-code,winget upgrade Anthropic.ClaudeCode, etc.), which is exactly the command story we should avoid reinforcing in OpenClaude.
So my read is still:
- the version-display fixes are directionally right
- but the startup notifier should be split out, and the updater UX should be aligned with the OpenClaude-specific commands/workflows before merge
I would still keep this at request changes rather than merging it as-is.
Vasanthdev2004
left a comment
There was a problem hiding this comment.
Targeted maintainer triage review of the current head ($short).
Verdict: Needs changes
Blocking issue:
- GitHub reports this branch as DIRTY / conflicting with main, so it cannot be merged or final-approved as-is. Please rebase or merge latest main, resolve the conflicts, and rerun the relevant checks.
I did not do a full code review because the current branch state is not mergeable. Happy to re-review once the branch is clean.
|
Closing as stale/abandoned |
Summary
What changed:
notifyUpdates) in a new utilitysrc/utils/updateNotifier.tsthat queries npm for the latest@gitlawb/openclaudeversion and suggests an update if available.src/cli/update.ts,AutoUpdater.tsx,NativeAutoUpdater.tsx, andPackageManagerAutoUpdater.tsxto useMACRO.DISPLAY_VERSION(the actual version) instead of the build-time mockMACRO.VERSION(99.0.0).claude updateCLI to allow updates for the Open Claude package even when running with third-party providers.LogoV2.tsx,Config.tsx, anduseUpdateNotification.tsto sync release notes tracking and version-based settings with the actual display version.Why it changed:
MACRO.VERSIONis set to99.0.0to prevent upstream Anthropic kill-switches from disabling the tool. However, this caused Open Claude's own update mechanisms to fail as they always perceived the local version as "newer" than the latest release on npm.Impact
User-facing impact:
claude updatecommand now correctly identifies and installs newer versions for fork users.Developer/maintainer impact:
DISPLAY_VERSION.Testing
bun run build- Successfully bundled the CLI.bun run smoke- Verified--versionoutput is correct (0.1.8 (Open Claude)).bun test- All 616 tests passed.DISPLAY_VERSIONtriggers the update suggestion, while matching the latest version suppresses it.Notes
NODE_ENV=developmentand can be disabled viaOPENCLAUDE_SKIP_UPDATE_CHECK=true.