Uh oh!
There was an error while loading. Please reload this page.
[codex] Preserve Windows shell for desktop release builds - #7
Conversation
Uh oh!
There was an error while loading. Please reload this page.
') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })();
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
What this PR does
Fixes the follow-up Windows failure in the Desktop Release workflow by removing the build job's global bash default shell. The version bump/check steps now receive the normalized release version through GitHub Actions expression interpolation, while the signing-secret setup step keeps its explicit bash shell because it uses bash syntax.
Why it's needed
Run https://github.com/modelstudioai/openwork/actions/runs/27130552884 showed that the previous fix worked for macOS, Linux, and the Windows version steps, but Windows packaging then ran under Git Bash. During
electron:vendor:qwen,tar.exe -xzf C:\...\qwen-code-0.15.11.tgzwas interpreted as a remotehost:pathvalue and failed withCannot connect to C: resolve failed. Windows packaging should run in the runner default shell instead of inheriting bash from unrelated workflow steps.Reviewer Test Plan
How to verify
Re-run the Desktop Release workflow for version
0.0.2. The Windows job should keep the version bump/check success from the previous run, then proceed pastelectron:vendor:qwenwithout theCannot connect to Ctar error. macOS and Linux should continue using their default shell behavior and remain green.Evidence (Before & After)
Before: GitHub Actions run https://github.com/modelstudioai/openwork/actions/runs/27130552884 failed in Build Windows at
tar.exe -xzf C:\Users\RUNNER~1\AppData\Local\Temp\...\qwen-code-0.15.11.tgzwithCannot connect to C: resolve failed.After: Local workflow validation passed with
actionlint, YAML parsing,git diff --check, andbun run bump-desktop-version --dry-run 0.0.2.Tested on
Environment (optional)
Local macOS shell in
/Users/dragon/Documents/openwork; hosted Windows failure inspected withgh.Risk & Scope
shell: bashexplicitly.Linked Issues
References https://github.com/modelstudioai/openwork/actions/runs/27130552884
中文说明
What this PR does
这个 PR 修复 Desktop Release workflow 的后续 Windows 失败:去掉 build job 级别的全局 bash 默认 shell。版本 bump/check 步骤现在通过 GitHub Actions 表达式直接拿到标准化后的版本号;签名 secret 配置步骤因为使用 bash 语法,继续单独指定
shell: bash。Why it's needed
Run https://github.com/modelstudioai/openwork/actions/runs/27130552884 说明上一个修复已经让 macOS、Linux 和 Windows 版本步骤通过,但 Windows packaging 继承了 Git Bash。执行
electron:vendor:qwen时,tar.exe -xzf C:\...\qwen-code-0.15.11.tgz被当成远程host:path解析,最终报Cannot connect to C: resolve failed。Windows 打包应该回到 runner 默认 shell,而不是继承和它无关的 bash 设置。Reviewer Test Plan
How to verify
重新运行 Desktop Release workflow,版本填
0.0.2。Windows job 应该保留上一次 run 里版本 bump/check 通过的结果,并继续跑过electron:vendor:qwen,不再出现Cannot connect to C的 tar 错误。macOS 和 Linux 应该继续使用各自默认 shell 并保持绿色。Evidence (Before & After)
Before: GitHub Actions run https://github.com/modelstudioai/openwork/actions/runs/27130552884 的 Build Windows 在
tar.exe -xzf C:\Users\RUNNER~1\AppData\Local\Temp\...\qwen-code-0.15.11.tgz处失败,错误是Cannot connect to C: resolve failed。After: 本地已通过
actionlint、YAML 解析、git diff --check,以及bun run bump-desktop-version --dry-run 0.0.2。Tested on
Environment (optional)
本地 macOS shell,目录
/Users/dragon/Documents/openwork;托管 Windows 失败日志通过gh查看。Risk & Scope
shell: bash。Linked Issues
References https://github.com/modelstudioai/openwork/actions/runs/27130552884