fix(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, '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(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, '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(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, '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(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, '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(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon
, '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(ci): allow sdk publish after partial native release - #101

Merged
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release
Apr 12, 2026
Merged

fix(ci): allow sdk publish after partial native release#101
Lythaeon merged 1 commit into
mainfrom
fix/ts-sdk-partial-release

Conversation

@Lythaeon

Copy link
Copy Markdown
Owner

Description

Make the TypeScript SDK release workflow continue to the main SDK publish even when one or more native runtime package jobs fail. This prevents the root SDK release from being skipped just because some platform-native package legs fail or lag.

Changes

  • .github/workflows/release-typescript-sdk.yml: add a job-level if: always() && needs.verify.result == success gate on publish-sdk so it still runs after failed native matrix legs
  • .github/workflows/release-typescript-sdk.yml: change the npm indexing wait loop to collect visible and missing native packages instead of hard-failing on the first missing package
  • .github/workflows/release-typescript-sdk.yml: emit a warning when some native packages are still missing, but continue with the SDK publish path
  • Architecture/runtime impact: release control-flow only; no runtime code or package API changes

For slice-related changes, include:

  • Affected slices: CI/release workflow only
  • Cross-slice communication changes (if any) and why: none
  • Migration requirements (if any): none; future tags can continue using the existing ts-sdk-vX.Y.Z flow

Motivation

Business motivation:

The root TypeScript SDK package needs to publish even when some platform-native package jobs fail, so release throughput is not blocked by partial platform breakage.

Technical motivation:

The previous workflow skipped publish-sdk whenever any publish-native matrix leg failed, and the npm wait step also hard-failed when any optional native package was missing.

Alternative approaches considered:

  • Mark all native jobs as non-fatal: rejected because it would hide platform-specific failures entirely
  • Remove native-package waiting entirely: rejected because successful native publishes should still be given time to index before the SDK publish

Scope and impact

  • Affected slices: .github/workflows/release-typescript-sdk.yml
  • Data/API changes: none
  • Backward compatibility: fully backward compatible
  • Performance impact: none on runtime paths; release workflow only
  • Security impact: none

Testing

  • Unit tests
  • Integration tests
  • Manual verification
  • Performance checks (if applicable)
  • Security checks (if applicable)

Commands/results:

act workflow_dispatch -W /tmp/act-publish-sdk-control.yml -j publish-sdk --container-architecture linux/amd64 -P ubuntu-latest=catthehacker/ubuntu:act-latest

Results:

  • Local act control harness: one native matrix leg succeeded, one failed, and the real publish-sdk pack step still executed successfully
  • Produced tarball: sdks/dist/npm/lythaeon-sof-sdk-0.1.1.tgz

Related issues and documentation

  • Fixes: root SDK publish being skipped when native matrix jobs partially fail
  • Related: ts-sdk-v0.1.1 release behavior
  • Architecture docs: docs/architecture/README.md
  • Relevant ARD/ADR:
  • Operations/runbook updates: none

Reviewer checklist

  • Code follows project standards and architecture constraints
  • Slice boundaries are respected (docs/architecture/ard/0003-slice-dependency-contracts.md)
  • Tests added/updated and passing
  • Documentation updated (README/docs/operations as needed)
  • No undocumented breaking change
  • Performance trade-offs documented where relevant
  • Security considerations addressed where relevant

Additional notes

This PR does not retrigger any release tag. It only changes the workflow behavior for future tag or manual release runs.

@Lythaeon
Lythaeon merged commit f59b796 into mainApr 12, 2026
3 checks passed
@Lythaeon
Lythaeon deleted the fix/ts-sdk-partial-release branch April 12, 2026 10:02
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.

1 participant

@Lythaeon