fix(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e 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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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 \u003e 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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass
, '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(build): raise the standalone binary budget to 544 KiB - #1046

Merged
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget
Aug 10, 2026
Merged

fix(build): raise the standalone binary budget to 544 KiB#1046
Chemaclass merged 1 commit into
mainfrom
fix/1045-binary-size-budget

Conversation

@Chemaclass

Copy link
Copy Markdown
Member

🤔 Background

Related #1045

main is currently red. The standalone artifact is 513,422 bytes against a 512,000 limit. #1037 was merged while Build & Verify was failing on it, so every PR opened since inherits the red — including #1044.

💡 Changes

  • Raise the budget to 557,056 bytes (544 KiB) and record the measurements and reasoning next to the assertion, so the next raise is a decision rather than a silencing
  • Rename the test to match its number

Why raise rather than shrink

approachbytesverdict
as-is518,493over
strip blank lines515,249still over — and unsafe, a blank line inside a heredoc is content (the hazard #990 had to handle)
shfmt --minify471,673reaches it, by stripping every bit of indentation out of the shipped artifact

Blank-line stripping does not even get under the old line, so the real choice was minify-or-raise. Minifying trades away artifact readability permanently to buy back 0.3%; the growth here is ordinary feature accretion, not a builder regression.

Correcting the issue's premise

#1045 guessed that CI skipped this check. It does not — build.yml installs shfmt via go install and both runners ship jq, so the test runs. The gate worked and was merged past. Nothing to fix in the workflow.

main is red: the artifact is 513422 bytes against a 512000 limit, crossed by
ordinary feature growth (#1037 was merged while this check was failing, and
every PR opened since inherits the red).
Contrary to the issue's first guess, CI does run this check — build.yml
installs shfmt and both runners ship jq — so the gate worked and was merged
past. The gate is fine; the number was stale.
Raising rather than shrinking, because the alternatives are worse: stripping
blank lines saves 3244 bytes (still over) and is unsafe, since a blank line
inside a heredoc is content — the hazard #990 already had to handle; and
shfmt --minify reaches the old line only by stripping all indentation out of
the shipped artifact.
The reasoning and the measurements are recorded next to the assertion so the
next raise is a decision rather than a silencing.
Closes#1045
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugSomething isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@Chemaclass