Drop the Code update workflow - #6
Merged
Merged
Conversation
This was referenced Sep 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Code updates can come from coder/code-server, which runs this same scheduled job and refreshes the patch stack against each new release. Running our own copy means this fork owns that rebase instead of reviewing one upstream merge, so the workflow is removed.
It was also failing. The job ends in the same
gh pr createthat #4 removes frompublish.yaml, withsecrets.UPDATE_PR_TOKEN || github.tokenand no secrets set on this repository:It pushed
update/1.138.0on 2026-09-18 and could not open the PR. Every run since reports success while doing nothing: thecheckstep treats the existence ofupdate/$VERSIONas proof a PR is already open, so it short-circuits.That branch should not be merged, and it is worth saying why, because the failure is not in the PR step:
patches/csp-hashes.diffis missing frompatches/series, but the file itself is still there and byte-identical to main's (blob422ca3b6)CHANGELOG.mdis untouched, soadd_changelognever ran eitherupdate-vscode.shdeletes the CSP patch on purpose each run (delete_csp, "Hashes are always regenerated to avoid having to resolve conflicts") andupdate_cspis meant to recreate it with recomputed sha256 hashes. The delete landed; the regenerate did not, and the steps after it never ran.main()ends inrun-steps "${steps[@]}" || true, so the script exited 0 anyway andgit add .committed the half-finished tree.So the broken
gh pr createwas the only reason anyone noticed. Had it worked, this would have opened as a routine-looking draft PR with the webview CSP hashes silently missing.ci/build/update-vscode.shis kept — with noVERSIONit re-refreshes patches and regenerates CSP hashes, which is still what you want when an upstream merge leaves them conflicting.docs/CONTRIBUTING.mdnow says so, since the workflow was its only caller.Follow-ups, not in this PR:
origin/update/1.138.0is stale and should be deleted.update-vscode.sh(|| true) is worth fixing if the script stays in manual use, since it will hide the same thing when run by hand.🤖 Generated with Claude Code
Correction (added after merge). The diagnosis above is wrong about which step failed. The run log for 35404425408 shows:
refresh_patchesfailed — a patch did not apply against 1.138.0 — andrun-stepsthen skipped everything after it.update_cspnever ran at all, so the CSP patch was not "deleted but not regenerated"; it was deleted bydelete_cspand the regeneration step was skipped. One failure explains all three observations (CSP patch absent from the series,.node-versionunchanged,CHANGELOG.mduntouched).run-steps ... || trueis also not a defect.run-stepsrecords each step in.cache/checklistas- [X]or- [ ], and the workflow passed that file as the PR body, so failures were meant to surface as unchecked boxes in the draft PR. The|| trueis there so the script can still append the final "Verify changelog" line after a failure instead of aborting underset -e.The real defect is in
refresh_patches: it callsquiet quilt push, andquiet()is"$@" >/dev/null. quilt printsPatch <name> does not applyon stdout, so the name of the patch that broke is discarded while only the exit code survives. That is why the log saysFailedwithout saying what failed.