Skip to content

feat(claw): detect image-tag-only updates and make upgrade one-click#1355

Open
St0rmz1 wants to merge 2 commits intomainfrom
feat/claw-update-available-image-tag
Open

feat(claw): detect image-tag-only updates and make upgrade one-click#1355
St0rmz1 wants to merge 2 commits intomainfrom
feat/claw-update-available-image-tag

Conversation

@St0rmz1
Copy link
Contributor

@St0rmz1 St0rmz1 commented Mar 20, 2026

Summary

  • Show "Update available" badge when a newer image exists even without a CalVer bump (e.g. controller-only changes that produce a new img-{hash} tag)
  • The badge is now a clickable button that opens the "Redeploy or Upgrade" dialog with "Upgrade to latest" preselected
  • Version Pinning "Current Status" panel now displays current and latest image tags in a table layout
  • Version Pinning card restructured to a consistent two-column layout (pinning controls left, status right) with the pin button inline next to the version selector

Verification

  • pnpm run typecheck — passes
  • pnpm run lint — passes
  • pnpm run format:check — passes
  • Verified imageTagDiffers is gated on hasVersionInfo so the badge cannot appear during loading states
  • Verified latestImageTag is prop-drilled to VersionPinCard rather than fetched independently (avoids implicit coupling via query cache)
  • Confirmed existing CalVer-based update detection is unchanged — new logic only fires as a fallback when CalVer matches

Visual Changes

  • "Update available" badge — now clickable with hover state; tooltip shows the target image tag for image-only updates
  • Version Pinning panel — two-column layout: left column has description + version selector + pin button inline + reason field; right column has Current Status with "Following latest" pill, plus current/latest image tags in aligned table rows
  • Pin button — moved inline next to the version dropdown instead of being a standalone row
Screenshot 2026-03-20 at 4 38 46 PM Screenshot 2026-03-20 at 4 39 06 PM

Reviewer Notes

  • The cross tab upgrade trigger uses a toggle flag pattern (upgradeRequested boolean lifted to ClawDashboard, consumed
    via useEffect in InstanceControls). This is documented with an inline comment. it won't re-fire if the flag is already
    true, which is fine for a single-click flow but worth knowing
  • VersionPinCard no longer calls useKiloClawLatestVersion() directly — it receives latestImageTag as a prop from
    SettingsTab which already has the data. Both are react-query hooks that would share cache, but prop drilling keeps the component more presentational
  • The ClawDashboard.tsx diff includes a whitespace-only reformatting of the popularity message string (formatter fix, no logic change)

hasVersionInfo &&
!!status.trackedImageTag &&
!!latestVersion?.imageTag &&
status.trackedImageTag !== latestVersion.imageTag;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Variant-unaware image-tag comparison can show a false upgrade

useKiloClawLatestVersion() ultimately reads /api/platform/versions/latest, which hard-codes the default variant. Comparing every instance's trackedImageTag against that tag means a user pinned to a non-default variant will always see Update available, and the one-click upgrade will move them back to the default image instead of the latest tag for their chosen variant. This check needs to be variant-aware (or skipped unless the variants match).

@kilo-code-bot
Copy link
Contributor

kilo-code-bot bot commented Mar 20, 2026

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 files)
  • src/app/(app)/claw/components/SettingsTab.tsx

Reviewed by gpt-5.4-20260305 · 288,207 tokens

@St0rmz1 St0rmz1 linked an issue Mar 20, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show "Update available" when image tag changes (not just calver)

1 participant