fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(desktop): show newest changes in nightly previews - #8588

Closed
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff
Closed

fix(desktop): show newest changes in nightly previews#8588
t3dotgg wants to merge 3 commits into
mainfrom
t3code/fix-nightly-changelog-cutoff

Conversation

@t3dotgg

@t3dotggt3dotgg commented Aug 28, 2026

Copy link
Copy Markdown
Member

Nightly update previews took the first eight entries from each GitHub release. GitHub lists those changes oldest first, so the preview hid the newest changes. Contributor credits could also affect the preview count.

This change selects the newest real changes after it removes contributor credits. It adds exact counts and links for changes and releases that do not fit in the compact preview. Each release also links to its exact GitHub page when all changes fit.

Verification: 85 focused desktop and web tests passed. Contracts, desktop, and web typechecks passed, along with changed-file lint. The current GitHub releases Atom feed for the affected nightly produced the newest two changes first, eight displayed changes, a total of ten, and no contributor-credit count. No live-client verification was performed.

Made with GPT-5.6 Sol in the Codex harness.


Note

Low Risk
Changes are confined to desktop update normalization, IPC contract fields, and sidebar UX; no auth or data-path impact beyond richer release-note metadata.

Overview
Nightly desktop update previews now surface the newest real changelog lines (GitHub lists oldest first) and stop before contributor / full-changelog boilerplate so credits do not eat the preview slots.

Desktop updater pipeline extends normalizeDesktopUpdateReleaseNotes to return omittedReleaseCount and per-release totalItems, cap at six releases and eight items per release, and thread those fields through DesktopUpdateState and the update reducers.

Sidebar UI replaces the nightly release-notes tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each shown release to its GitHub tag, labels hidden changes with exact counts, and links trimmed older releases to the releases history page via shared openDesktopUpdateReleaseNotes / getDesktopUpdateReleaseHistoryUrl helpers.

User docs add a short section describing nightly preview limits and linking behavior.

Reviewed by Cursor Bugbot for commit 9fcf068. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix desktop nightly previews to show newest release notes first

  • normalizeDesktopUpdateReleaseNotes returns releaseNotes and omittedReleaseCount, ordering items newest-first and limiting to MAX_RELEASE_NOTE_GROUPS and MAX_RELEASE_NOTE_ITEMS_PER_GROUP.
  • SidebarUpdatePill renders a hover and keyboard-triggered popover using the new SidebarUpdateReleaseNotes component instead of the old tooltip.
  • SidebarUpdateReleaseNotes shows compact summaries, per-release links, and a link to the history page via DESKTOP_RELEASE_HISTORY_URL.
  • Adds openDesktopUpdateReleaseNotes to open release URLs externally and report toast errors on failure.
  • Behavioral Change: DesktopUpdateState and DesktopUpdateReleaseNote schemas add omittedReleaseCount and totalItems. extractReleaseNoteItems uses early break for contributor and changelog sections rather than filtering them.

Macroscope summarized 9fcf068.

@coderabbitai

coderabbitaiBot commented Aug 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1b4cb567-0b58-4868-a377-bf5db1f0ff2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 28, 2026
Comment threadapps/desktop/src/updates/releaseNotes.ts
@github-actions

github-actionsBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.3 KiB13.3 KiB−4 B (−0.0%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
CodexLive turn WebSocket wire6.4 KiB6.4 KiB−4 B (−0.1%)7.8 KiB
CodexLive turn WebSocket decoded55.6 KiB55.6 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages11110 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.3 KiB+21 B (+0.2%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB0 B (0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.5 KiB+21 B (+0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB56.4 KiB+44 B (+0.1%)66.4 KiB
ClaudeLive turn messages1011+1 (+10.0%)21

Baseline: e898008 · PR result: 9fcf068 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

UI consistency review of the changed web files (SidebarUpdateReleaseNotes.tsx, SidebarUpdatePill.tsx, desktopUpdate.toast.tsx, desktopUpdate.logic.ts). Two findings, both on the newly interactive release-notes panel that now lives inside the tooltip popup.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated
Comment threadapps/web/src/components/sidebar/SidebarUpdateReleaseNotes.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e93bbea. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@macroscopeapp

macroscopeappBot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the existing nightly update flow across the desktop parser, shared IPC state, and sidebar UI, adding a new interactive release-notes popover and GitHub release-history links. The behavior is localized but represents a meaningful user-facing capability and cross-layer runtime change.

No code changes detected at 9fcf068. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

@macroscopeappmacroscopeappBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One finding on the new hover-driven release-notes popover. Everything else in the changed web files (the popover/tooltip split, the SidebarUpdateReleaseNotes extraction, the shared openDesktopUpdateReleaseNotes helper, and the release-link focus ring) looks consistent with the existing primitives.

Posted via Macroscope — UI Consistency

Comment on lines +338 to +339
id={releaseNotesTriggerId}
openOnHover

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This popup is now interactive (release links plus a scrollable list), but the trigger keeps Base UI's default closeDelay of 0, so the pointer has to cross the 4px sideOffset gap between the pill and the popup with no grace period. The old tooltip carried an explicit pointer-events-auto comment precisely so "the release notes stay open (and scrollable) when the cursor moves into them"; that affordance is not carried over.

The convention here is that hover popovers whose content the pointer must reach set a close delay — ContextWindowMeter uses closeDelay={onCompact ? 150 : 0} with a test named "keeps the hover popover open while the pointer moves to the compact button", and PullRequestDetailPanel/ConnectionsSettings use 120/100. The ones that omit it (ThreadTerminalDrawer, GitActionsControl) are pointer-inert tooltips. Consider setting one here too.

Suggested change
id={releaseNotesTriggerId}
openOnHover
id={releaseNotesTriggerId}
openOnHover
closeDelay={150}

Posted via Macroscope — UI Consistency

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@t3dotgg