Skip to content

fix(tui): stop duplicate update notice at startup - #165

Merged
elkaix merged 3 commits into
mainfrom
fix/duplicate-update-notice
Jun 20, 2026
Merged

fix(tui): stop duplicate update notice at startup#165
elkaix merged 3 commits into
mainfrom
fix/duplicate-update-notice

Conversation

@elkaix

@elkaix elkaix commented Jun 17, 2026

Copy link
Copy Markdown
Member

Summary

A user reported the startup update hint rendering twice — Updated 0.47.0 → 0.48.0. Restart Pythinker to apply. appeared both as a footer toast and on the persistent under-input line.

Root cause: the silent-update result handlers fired a footer toast in addition to the persistent under-input notice line, which already renders the same text. _surface_installed_update_notice (UPDATED) and _auto_update (UPDATE_AVAILABLE on disabled/source installs) both duplicated.

Fix: drop the toast on those paths and call a new _refresh_update_notice_line() that busts the notice memo ((0.0, None)) and invalidates the prompt so the single persistent line repaints promptly. The smoke-check-failed branch still toasts — that message is distinct and the persistent line never shows it.

Verification

  • make check-pythinker-code → All checks passed
  • uv run pytest tests/ui_and_conv/ -k 'update or toast' → 169 passed
  • Renamed test asserts the new contract: no toast, prompt invalidated, cache reset

Changelog

Added an ## Unreleased entry.

The UPDATED/UPDATE_AVAILABLE startup paths fired both a footer toast and
the persistent under-input line with the same text, so the restart hint
rendered twice. Drop the toast and refresh the persistent notice line
(bust its memo + invalidate the prompt) so a single line owns the hint.
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@elkaix, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 54 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 56f842b7-d248-4cfd-a05f-cd99e1c3dbe7

📥 Commits

Reviewing files that changed from the base of the PR and between ed8381b and 7876b35.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • src/pythinker_code/ui/shell/__init__.py
  • tests/ui_and_conv/test_native_update_parity.py
  • tests/ui_and_conv/test_silent_auto_update.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/duplicate-update-notice

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@elkaix
elkaix merged commit 529bdff into main Jun 20, 2026
30 checks passed
@elkaix
elkaix deleted the fix/duplicate-update-notice branch July 17, 2026 20:04
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.

1 participant