Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000
, '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

Merge upstream/main into fork/dev (15 commits) - #407

Merged
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15
Aug 15, 2026
Merged

Merge upstream/main into fork/dev (15 commits)#407
omegent-app[bot] merged 16 commits into
fork/devfrom
sync/upstream-2026-08-15

Conversation

@omegent-app

Copy link
Copy Markdown

15 upstream commits, fourteen conflicts. Most come from #6572 (open remote environments in your local editor over SSH), which lands squarely on surfaces this fork has rewritten.

The one that mattered

OpenInPicker. The fork replaced that component wholesale with its own "open with" system — 449 lines against upstream's 74 — so neither side could win outright. Upstream's remote path is ported into the fork's dispatch instead:

if(remote.mode==="remote-links"){consturl=buildRemoteOpenUrl({editor: option.id,host: remote.host.host,absolutePath: openInCwd});if(url===undefined)return;awaitopenRemoteEditorUrl(url);return;}

Without it, openInEditorMutation launches the editor on the server — for a remote environment, the wrong machine entirely. That matters more here than upstream, since this fork routinely drives several environments at once.

Other resolutions

  • ElectronShell — upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS, which returns any URL carrying one. The fork validates hostname and path first, and that check already permits upstream's <scheme>://vscode-remote/ssh-remote+… links, so the fork's stricter two-tier check stays — with the scheme list now derived from upstream's REMOTE_CAPABLE_EDITOR_IDS instead of hardcoded, so a new remote-capable editor is covered without another edit.
  • LegacySidebar — the shared context after the conflict was the fork's, so upstream's block could not be spliced in without breaking indentation and duplicating the Add-project button. Kept the fork's conditional structure and ported upstream's Button migration onto it by hand.
  • ChatView — upstream's glass Button styling for scroll-to-end, with the fork's unread-activity dot and label.
  • build-desktop-artifact — upstream's #5877 removed WINDOWS_ASAR_UNPACK, so the fork's assertion had no symbol left to assert against; took upstream's. Its linux assertion then exposed a real gap: the fork registered t3code-dev on mac but not linux, while also declaring an explicit MimeType. Both now cover the dev scheme, so dev deep links work on Linux.
  • PortExposure testfeat(web): open remote environments in your local editor over SSH pingdotgg/t3code#6572 added hasListenerOnHost to NetServiceShape; the fork's stub predated it.
  • IPC / ws / contracts / ChatHeader / toast / index.css — unions of independent additions, minus the duplicate imports the union produced (EditorId, ClientSettings, BackgroundPolicy, FileSystem), each of which typecheck caught.

Verification

All 15 upstream commits checked by comparing each commit's added lines against the merged tree. Thirteen are 100% present. Two flagged, both explained:

pnpm typecheck0 errors · pnpm test — 278 files pass · vp build in apps/web · vp check --fix.

One known flake: PreviewFaviconIcon.test.tsx fails under parallel load and passes in isolation (verified twice). Pre-existing, unrelated to this merge.

Merge with gh pr merge 405 --merge, not the button — the squash default cost us the upstream lineage on #401.

Co-authored-by: Patrick Roza 42661+patroza@users.noreply.github.com

🤖 Generated with Claude Code via T3 Chat on Discord

StiensWoutand others added 16 commits August 14, 2026 17:58
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Nickolas Kyryliuk <nickolaskyryliuk@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 upstream commits, fourteen conflicts. The bulk come from pingdotgg#6572 (open remote
environments in your local editor over SSH), which lands squarely on surfaces
this fork has rewritten.
The one that mattered: OpenInPicker. The fork replaced that component wholesale
with its own "open with" system (449 lines against upstream's 74), so neither
side could win outright. Upstream's remote path is ported into the fork's
dispatch instead: for a remote environment, openInEditorMutation launches the
editor on the *server*, which is the wrong machine — the viewing machine now
gets a Remote-SSH deep link. That matters more here than upstream, since this
fork routinely drives several environments at once.
Other resolutions:
- ElectronShell: upstream moved editor schemes into SAFE_EXTERNAL_PROTOCOLS,
which returns any URL carrying one. The fork validates hostname and path
first, and that check already permits upstream's
`<scheme>://vscode-remote/ssh-remote+…` links, so the fork's two-tier check
stays — with the scheme list now derived from upstream's constant rather than
hardcoded, so a new remote-capable editor is covered automatically.
- LegacySidebar: the shared context after the conflict was the fork's, so
upstream's block could not be spliced in; kept the fork's conditional
structure and ported upstream's Button migration onto it by hand.
- ChatView: took upstream's glass Button styling for scroll-to-end, kept the
fork's unread-activity dot and label.
- build-desktop-artifact: upstream's pingdotgg#5877 removed WINDOWS_ASAR_UNPACK, so the
fork's assertion had no symbol left to assert against; took upstream's. Its
linux assertion then exposed a real gap — the fork registered t3code-dev on
mac but not linux, while declaring an explicit MimeType. Both now cover the
dev scheme.
- PortExposure test: pingdotgg#6572 added hasListenerOnHost to NetServiceShape; the
fork's stub predated it.
- IPC, ws, contracts, ChatHeader, toast, index.css: unions of independent
additions, minus the duplicate imports the union produced.
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-appBot merged commit 7f554ea into fork/devAug 15, 2026
5 checks passed
@omegent-app
omegent-appBot deleted the sync/upstream-2026-08-15 branch August 15, 2026 08:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@StiensWout@SunkenInTime@UtkarshUsername@Lucenx9@maria-rcks@t3dotgg@Bil0000