fix(desktop): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge
, '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): persist window size and restore macOS fullscreen exits cleanly - #1170

Closed
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main
Closed

fix(desktop): persist window size and restore macOS fullscreen exits cleanly#1170
rushilrai wants to merge 2 commits into
pingdotgg:mainfrom
rushilrai:main

Conversation

@rushilrai

@rushilrairushilrai commented Mar 17, 2026

Copy link
Copy Markdown

What Changed

This PR makes the desktop app remember its last window state across relaunches.

It restores:

  • normal window size and position
  • maximized/fill-screen state
  • windows closed from macOS true fullscreen back onto the current desktop without the white startup flash

The restore logic keeps normal restore bounds separate from the fullscreen-origin visible frame so standard maximize behaviour stays intact.

Why

Right now the desktop app always comes back at the default size, which is frustrating if you keep it in a specific layout.
This change makes relaunch behavior feel much closer to what users expect from native desktop apps.

UI Changes

Desktop window restore behaviour only.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Persist window size and restore macOS fullscreen state across sessions

  • Adds windowState.ts with loadWindowState and attachWindowStatePersistence to save/restore window bounds and mode to userData/window-state.json.
  • On launch, restores the previous position, size, and restore mode (normal, maximized, or fullscreen-origin); falls back to a centered default (1100×780) if the saved state is missing, invalid, or off-screen.
  • Debounces resize/move persistence by 250ms; flushes immediately on maximize, fullscreen toggle, and close events.
  • On macOS, windows that were fullscreen before close are shown without re-entering fullscreen, using restoreMode: 'fullscreen-origin' to track this case.
  • Risk: first run or corrupted/off-screen state silently falls back to defaults with a console.warn.

Macroscope summarized 1a0662d.


Note

Medium Risk
Changes Electron window creation/startup behavior and introduces new disk persistence logic; mistakes could cause bad restore geometry or startup regressions, though it falls back safely when state is invalid/off-screen.

Overview
The desktop app now persists window bounds and restore mode to userData/window-state.json and restores them on launch, instead of always using fixed default dimensions.

Adds windowState.ts with loadWindowState (validates/clamps bounds, ensures the window is sufficiently on-screen, and centers defaults when missing/invalid) and attachWindowStatePersistence (debounced move/resize persistence, immediate flush on close/maximize/fullscreen toggles, with a special fullscreen-origin mode to avoid macOS fullscreen re-entry/white flash). Includes a comprehensive vitest suite covering restore fallbacks, visibility checks, and persistence behavior.

Written by Cursor Bugbot for commit 1a0662d. This will update automatically on new commits. Configure here.

@coderabbitai

coderabbitaiBot commented Mar 17, 2026

Copy link
Copy Markdown

Important

Review skipped

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

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 2a5c22f3-9540-4c3b-8ddd-170b7bb6c8d7

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Mar 17, 2026
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Mar 24, 2026
@juliusmarmingeChatGPT Codex Connector

Copy link
Copy Markdown
Member

Closing because this window-state persistence implementation targets the pre-Effect desktop architecture and most touched files are gone.

This was closed as part of a large repo-wide maintenance sweep. If you think it's still relevant, please reopen.

@rushilrai

Copy link
Copy Markdown
Author

Thanks for the review.
Still think this would be a nice addition, so will be opening a new PR using the current Effect implementation as base.
Will link it here as well.

@rushilrai

Copy link
Copy Markdown
Author

Superseded by the Effect based implementation at feat (desktop): persist window size and restore macOS fullscreen exits cleanly
#3597

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:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@rushilrai@juliusmarminge