fix(ci): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation
, '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): publish from release branch instead of base branch - #1049

Closed
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch
Closed

fix(ci): publish from release branch instead of base branch#1049
aidandaly24 wants to merge 1 commit into
mainfrom
fix/publish-from-release-branch

Conversation

@aidandaly24

@aidandaly24aidandaly24 commented Apr 29, 2026

Copy link
Copy Markdown
Contributor

Description

The publish jobs were checking out main/preview which could serve a stale git ref that didn't include the version bump commit. This caused 0.12.1 to be published with the 0.12.0 package.json.

Now the publish jobs checkout release/v<version> directly, which is guaranteed to have the correct version. Added a version verification step before npm publish as a safety check.

Prior art — how other OSS repos handle this

RepoPatternPublishes from main?
TurborepoCreates a staging branch, publishes from itNo — staging branch
NxDynamic ref resolution, dedicated publish branchNo — PR branch or publish branch
Next.jsClones canary branch explicitlyNo — canary branch
ViteTag-triggered, checks out tag refNo — tag ref
Vue.jsTag-triggered, checks out tag refNo — tag ref

None of these projects publish from the base branch HEAD — they all publish from a release branch, staging branch, or tag ref.

Related Issue

Closes #

Documentation PR

N/A

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Other (please describe):

Testing

How have you tested the change?

  • I ran npm run test:unit and npm run test:integ
  • I ran npm run typecheck
  • I ran npm run lint
  • If I modified src/assets/, I ran npm run test:update-snapshots and committed the updated snapshots

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the
terms of your choice.

The publish jobs were checking out main/preview which could serve a
stale ref without the version bump commit. Now they checkout the
release branch directly (release/v<version>) which is guaranteed to
have the correct version. Added version verification before publish
as a safety check.
@aidandaly24
aidandaly24 requested a review from a teamApril 29, 2026 21:12
@github-actionsgithub-actionsBot added size/s PR size: S agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Apr 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

StatusCategoryPercentageCovered / Total
🔵Lines43%7778 / 18086
🔵Statements42.4%8230 / 19407
🔵Functions40.33%1340 / 3322
🔵Branches40.66%5103 / 12548
Generated in workflow #2159 for commit a0eb504 by the Vitest Coverage Report Action

@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@agentcore-cli-automation

Copy link
Copy Markdown

Publish will fail if the release branch is deleted after merge

Looking at recent merged release PRs, the release/v<version> branches are deleted after merge — only release/v0.9.2 remains out of all past releases. So this is either auto-delete-on-merge being enabled, or reviewers manually deleting the branch when clicking Merge (both are very common defaults).

The new publish flow depends on the release branch still existing at publish time:

- name: Checkout release branchuses: actions/checkout@v6with:
ref: release/v${{ needs.prepare-main.outputs.version }}

But publish-main runs after verify-merges, which only passes once the release PR has been merged into main. If the branch gets deleted as part of (or right after) that merge, actions/checkout won't be able to resolve the ref and the publish step will fail — right after the approval gate, with a released-but-unpublished state that's annoying to recover from.

Since verify-merges already confirms the bump commit is on origin/main, a few ways to fix this:

Option 1 — Pin to a SHA captured at prepare time. Have prepare-main/prepare-preview output the SHA of the bump commit they pushed, then check that out in the publish jobs. This is the most robust — the SHA stays reachable from main (merge-commit strategy is in use, so the release-branch tip is preserved) even after the branch is deleted.

# in prepare-main, after git push origin $BRANCH_NAMEecho "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
# in publish-mainwith:
ref: ${{ needs.prepare-main.outputs.sha }}

Option 2 — Go back to checking out main/preview but force a fresh fetch. Since verify-merges has already proven origin/main contains the bump commit, checking out main should be safe. The original stale-ref problem can be avoided by setting fetch-depth: 0 and explicitly git fetch origin main && git reset --hard origin/main in a follow-up step, or by using the merge commit SHA of the release PR.

Option 3 — Keep this PR's approach but prevent branch deletion. Disable auto-delete-on-merge for the repo, and/or add a note/comment on the release PR asking reviewers not to delete the branch. This is the most fragile option since it relies on human discipline.

I'd recommend Option 1 — it's the smallest change and doesn't depend on branch retention or repo settings.


A related but smaller concern: the tag creation step also runs against the release-branch checkout, so the tag ends up on the bump commit (e.g. c097232) rather than on the merge commit on main. Since merge-commit strategy is in use, that commit is reachable from main, so this is fine in practice — just worth being aware of if you ever switch to squash merges.

@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Apr 30, 2026
@aidandaly24

Copy link
Copy Markdown
ContributorAuthor

Closing: fresh run with CI fix improvements

@aidandaly24
aidandaly24 deleted the fix/publish-from-release-branch branch May 13, 2026 14:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sPR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@aidandaly24@agentcore-cli-automation