Skip to content

Release v0.30.0-beta8#275

Merged
tis24dev merged 1 commit into
mainfrom
dev
Jul 24, 2026
Merged

Release v0.30.0-beta8#275
tis24dev merged 1 commit into
mainfrom
dev

Conversation

@tis24dev

@tis24dev tis24dev commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Automated release PR for v0.30.0-beta8.

Summary by CodeRabbit

  • Bug Fixes

    • The “What’s New” screen now determines whether content should be shown before starting the interactive session.
    • Skipped screens no longer open an unnecessary dashboard session.
    • Seen-status recovery is handled more safely when stored state is invalid.
    • The seen status is updated only after the “What’s New” flow completes successfully.
  • Tests

    • Added coverage for skipped and displayed “What’s New” scenarios.
    • Updated validation for screen timeout behavior.

Greptile Summary

Refactors the whats-new screen flow to avoid starting a terminal session when there are no unseen release notes.

  • Separates release-note resolution from terminal rendering while preserving timeout and seen-state behavior.
  • Resolves visibility before constructing the standalone upgrade session.
  • Adds regression coverage for skipped and rendered standalone sessions and updates timeout wiring assertions.

Confidence Score: 5/5

The PR appears safe to merge with no actionable correctness or security defects identified.

The refactor preserves the existing decision, timeout, error, and seen-state contracts while preventing terminal initialization on the no-op standalone path, with targeted tests covering both branches.

Important Files Changed

Filename Overview
cmd/proxsave/dashboard.go Cleanly separates decision and rendering phases so no-op standalone invocations avoid initializing a terminal session while retaining existing state and timeout semantics.
cmd/proxsave/whatsnew_upgrade_test.go Adds focused regression tests proving sessions are skipped when notes are already seen and created when unseen notes must render.
cmd/proxsave/whatsnew_wiring_test.go Updates the AST-based timeout contract test to inspect the new shared rendering helper.

Reviews (1): Last reviewed commit: "fix(whatsnew): decide before starting th..." | Re-trigger Greptile

…r leaks terminal query replies

At the end of an interactive upgrade the flow re-invokes `proxsave --show-whatsnew`.
showWhatsnewScreen built a Bubble Tea session (shell.Start) BEFORE deciding whether
there were unseen notes. On the common nothing-unseen path the program quit within
milliseconds, before bubbletea's input reader consumed the terminal's async
mode-2026 (synchronized output) / mode-2027 (unicode core) DECRQM capability-query
replies. bubbletea emits those queries on a local terminal (no SSH_TTY, no
TERM_PROGRAM), so the sub-millisecond replies arrived after the terminal was
restored and leaked into the shell as stray input:

    ^[[?2026;2$y^[[?2027;0$y ... -bash: 2026: command not found

The dashboard never hit this because its long-lived menu loop drains the replies.

Resolve the SHOW/skip decision first and only build the session when there is
something to render. Extract whatsnewResolve (Decide + corrupt-flag self-heal, no
TTY) and whatsnewRender (dedicated timeout + run + seen-flag write only on a clean
continue); maybeShowWhatsnew and showWhatsnewScreen now share both, and the
standalone entry starts no Bubble Tea program on a no-op. Behavior is otherwise
identical (show-once, write-only-on-continue, self-heal, dry-run and
non-interactive guards, dedicated timeout all preserved).

Add SkipsSessionWhenNothingUnseen / BuildsSessionWhenUnseen guards and retarget the
dedicated-timeout AST guard to whatsnewRender.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Sorry @tis24dev, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0c4739d3-381c-4136-81af-257a6dd2ad99

📥 Commits

Reviewing files that changed from the base of the PR and between 30ae4f7 and fc946da.

📒 Files selected for processing (3)
  • cmd/proxsave/dashboard.go
  • cmd/proxsave/whatsnew_upgrade_test.go
  • cmd/proxsave/whatsnew_wiring_test.go

📝 Walkthrough

Walkthrough

Screen 0 now resolves whether notes should be shown before starting a dashboard session. Rendering runs under its dedicated timeout, and the seen flag is saved only after a successful flow. Tests cover session skipping, rendering, and timeout wiring.

Changes

What’s new screen flow

Layer / File(s) Summary
Separate decision and rendering responsibilities
cmd/proxsave/dashboard.go, cmd/proxsave/whatsnew_wiring_test.go
Decision/self-healing, timed rendering, successful seen-state updates, and dedicated-timeout assertions are split across the new helpers.
Gate session startup on the resolved verdict
cmd/proxsave/dashboard.go, cmd/proxsave/whatsnew_upgrade_test.go
showWhatsnewScreen skips session construction when no notes are unseen and builds the session only for the display path, covered by structural tests.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant showWhatsnewScreen
  participant whatsnewResolve
  participant whatsnewDecide
  participant shell.Session
  participant whatsnewRender
  participant whatsnewRun
  showWhatsnewScreen->>whatsnewResolve: resolve SHOW/skip
  whatsnewResolve->>whatsnewDecide: check unseen notes
  whatsnewResolve-->>showWhatsnewScreen: return verdict and notes
  alt notes unseen
    showWhatsnewScreen->>shell.Session: build and start session
    showWhatsnewScreen->>whatsnewRender: render notes
    whatsnewRender->>whatsnewRun: run with dedicated timeout
  else no notes unseen
    showWhatsnewScreen-->>showWhatsnewScreen: return without session
  end
Loading

Possibly related PRs

  • tis24dev/proxsave#273: Introduced the Screen 0 flow, timeout wiring, and related seams that this refactor reorganizes.
  • tis24dev/proxsave#274: Added the related post-upgrade and --show-whatsnew screen behavior.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects that this is an automated release PR for version v0.30.0-beta8.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@tis24dev
tis24dev merged commit bdba162 into main Jul 24, 2026
24 checks passed
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