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

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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 - #9138

Merged
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588
Sep 2, 2026
Merged

fix(desktop): show newest changes in nightly previews#9138
t3dotgg merged 9 commits into
mainfrom
t3code/takeover-pr-8588

Conversation

@t3dotgg

@t3dotggt3dotgg commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nightly update previews showed the oldest changes in each GitHub release. Contributor credits could also consume preview slots, so recent changes were often missing.

This change filters release boilerplate, keeps the newest eight changes, and reports the full change and release counts. The sidebar preview now links to each GitHub release and uses a focus-managed popover for pointer and keyboard access.

BeforeAfter
The old preview shows the oldest changesThe new preview shows the newest changes and release links

Watch the pointer and keyboard interaction. The 2.5-second excerpt is slowed to 2.5x duration so the focus changes are easier to see.

Verification:

  • 86 focused desktop and web tests passed.
  • Contracts, desktop, and web typechecks passed.
  • Changed-file lint, formatting, and git diff --check passed.
  • The affected public nightly release produced the newest eight of ten changes and excluded contributor credits.
  • Markdown and HTML section headings are excluded from the reported change count.
  • The real app in Chromium passed pointer travel and scrolling, release-link activation, keyboard entry and exit, Escape focus return, download, install cancellation and confirmation, and tooltip fallback checks. The test used a stubbed desktop bridge, so it did not download or install a real update.
  • The same update button DOM node kept keyboard focus through idle, checking, nightly available, no-notes, and latest state changes. These flows passed with React Compiler enabled.

This continues #8588. Theo Browne authored its three original commits. This replacement preserves his authorship and adds the review fixes separately.

Made with GPT-5.6 Sol in the Codex harness.


Note

Medium Risk
IPC contract changes require totalItems and omittedReleaseCount on update state, which can break older clients or persisted snapshots. Popover focus and React Compiler opt-out add UI regression surface on the nightly update control.

Overview
Nightly desktop update previews now surface the newest changes per release instead of the oldest, and stop treating contributor credits and full-changelog boilerplate as real changes. Normalization returns up to eight items and six release groups, with totalItems per group and omittedReleaseCount when older releases are dropped; those fields flow through IPC and the desktop update reducer.

The sidebar replaces the cramped nightly tooltip with a hover/focus popover (SidebarUpdateReleaseNotes) that links each preview to its GitHub release tag, labels hidden changes within a release, and links omitted releases to the releases history page. Popover behavior keeps the update button as the action target (no double-toggle on click), supports forward Tab into the panel, and restores focus sensibly on Escape.

User docs add a short section describing the nightly preview limits and links.

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

Note

Show newest nightly release changes in sidebar popover with per-release links

  • Overhauls release-note extraction to keep the newest eight changes per release in newest-first order, excluding contributor and changelog sections, and returns up to six non-empty release groups plus an omittedReleaseCount
  • Replaces the sidebar tooltip with a hover- and focus-aware Popover that renders nightly notes via the new SidebarUpdateReleaseNotes component, while keeping the update button as the install action
  • SidebarUpdateReleaseNotes links each displayed release to its exact GitHub tag, reports omitted changes per release via totalItems, and links omitted release groups to the GitHub release history page
  • Adds required omittedReleaseCount to DesktopUpdateState and totalItems to DesktopUpdateReleaseNote in the IPC contracts and runtime schema
  • Risk: omittedReleaseCount and totalItems are now required fields in ipc.ts; any out-of-tree desktop clients reading the update-state payload must supply or tolerate these fields

Macroscope summarized d99162b.

@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 Sep 2, 2026
@github-actions

github-actionsBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.4 KiB13.1 KiB−320 B (−2.3%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−17 B (−0.2%)7.3 KiB
CodexLive turn WebSocket wire6.5 KiB6.2 KiB−303 B (−4.5%)7.8 KiB
CodexLive turn WebSocket decoded57.0 KiB54.7 KiB−2.3 KiB (−4.1%)66.4 KiB
CodexLive turn messages108−2 (−20.0%)21
ClaudeTotal thread wire13.5 KiB13.5 KiB−18 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+1 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.6 KiB6.6 KiB−19 B (−0.3%)7.8 KiB
ClaudeLive turn WebSocket decoded57.8 KiB57.8 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages10100 (0.0%)21

Baseline: ea71a19 · PR result: d99162b · 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.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
Comment threadapps/desktop/src/updates/releaseNotes.ts Outdated
@macroscopeapp

macroscopeappBot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The PR changes production desktop update state and IPC contracts while replacing the nightly tooltip with a focus-managed, hover-enabled release-notes popover and new external-link workflow. The interaction changes introduce meaningful focus and state-transition risk that should receive human review.

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

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx Outdated
@t3dotgg
t3dotggforce-pushed the t3code/takeover-pr-8588 branch from d90cf5f to 6d075b7CompareSeptember 2, 2026 00:49
Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.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 d99162b. Configure here.

Comment threadapps/web/src/components/sidebar/SidebarUpdatePill.tsx
@t3dotgg
t3dotgg merged commit 5014e5f into mainSep 2, 2026
28 checks passed
@t3dotgg
t3dotgg deleted the t3code/takeover-pr-8588 branch September 2, 2026 01:18
sheehanmunim added a commit to munimtechnologies/mtcode that referenced this pull request Sep 2, 2026
…ttings sync, sidebar leases, incremental projection, release-notes popover)
Upstream: 8efd4e95014e5ffc53b276866fd67e460f4c2283cefeb3ea7
Conflict resolutions (keep-both, fork call sites preserved):
- ProjectionPipeline: upstream's incremental thread.message-sent fold;
fork's thread.message-corrected stays on the full-refresh group.
- Sidebar.tsx: fork's resolveThreadPr flow + upstream's
useSidebarRowSubscriptionLease / useRetainedValue (visibleGitStatus).
- SidebarUpdatePill / SidebarUpdateReleaseNotes: upstream's popover, with
the nightly-only gate removed again (fork shows notes on latest, 5e84678);
guard script now requires both de-gated sites.
- Mobile GeneralSettingsSection: upstream's AutoSettleSettingsRows with the
fork's voice dictation, MT Teams and steer-active-turns rows kept.
- client-runtime pullRequests: fork's PR-stack atoms + upstream's TTL const.
Follow-ups from upstream pingdotgg#9138: DesktopUpdateReleaseNote.totalItems in the
fork's latest-channel test, and the publish script's changelog is now
oldest-first (git log --reverse) because the updater keeps the last items
and reverses them for display.
Verified: per-package typecheck clean (contracts, client-runtime, server,
web, desktop, mobile); fork-feature guard OK; web sidebar/update (245),
client-runtime state (82), server projection/startup/ws (66) and
server.test (153) suites green. Pre-existing on the backup branch, not
regressions: 4 DesktopUpdates.test cases broken by the fork's auto-download
/ auto-install behaviour.
Backup: backup/mtcode-pre-upstream-sync-20260901b
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 2, 2026
## What's Changed
* perf(client-runtime): keep turn and checkpoint refs stable while streaming by @t3dotgg in pingdotgg/t3code#9145
* perf(clients): lease sidebar status by visibility by @StiensWout in pingdotgg/t3code#9052
* fix(desktop): show newest changes in nightly previews by @t3dotgg in pingdotgg/t3code#9138
* fix(settings): sync auto-settle and other shared preferences across environments by @t3dotgg in pingdotgg/t3code#9147
* fix(server): prevent accidental service downgrades by @t3dotgg in pingdotgg/t3code#5302
* fix(server): keep attachments until the command commits by @t3dotgg in pingdotgg/t3code#7941
* fix(claude): preview images read from the workspace by @t3dotgg in pingdotgg/t3code#9119
* fix(web): keep generated muted foreground dimmer than entered text by @flamboh in pingdotgg/t3code#9113
* fix(clients): stop repeating expanded commands by @t3dotgg in pingdotgg/t3code#9120
* fix(grok): health check, model selection, and stop all work against the real CLI by @t3dotgg in pingdotgg/t3code#9154
* perf(web): halve the cold-start bundle by splitting Clerk and cold routes by @StiensWout in pingdotgg/t3code#9058
* feat(desktop): update the desktop app on remote Macs from the Update button by @t3dotgg in pingdotgg/t3code#6554
* test(server): measure shell, second client, and reconnect transfer by @t3dotgg in pingdotgg/t3code#9157
* fix(web): project default model works on the hosted app by @juliusmarminge in pingdotgg/t3code#9142
* fix(web): darken neutral control surfaces by @maria-rcks in pingdotgg/t3code#9064
* fix(web): preserve panel state across workspace refreshes by @maria-rcks in pingdotgg/t3code#8968
* feat(files): open markdown, HTML, and PDF files outside the workspace by @juliusmarminge in pingdotgg/t3code#9140
* feat(web): render HTML and PDF files in the file viewer by @juliusmarminge in pingdotgg/t3code#9143
* fix(web): compact project settings actions by @maria-rcks in pingdotgg/t3code#9160
* fix(web): browse folders from file breadcrumbs by @404khai in pingdotgg/t3code#8910
## New Contributors
* @404khai made their first contribution in pingdotgg/t3code#8910
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1252...v0.0.39-nightly.20260902.1253
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260902.1253
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