Repository navigation
feat(desktop): publish the production app on merge, and say what changed - #120
Merged
Merged
Conversation
A merge to bkmain built the production app and then waited for a human to approve the publish, so the team's download lagged the deploy by however long that took. The required-reviewer rule is removed and both channels now publish the moment their build is green. That rule lived in the `bk-desktop-production` environment's settings, not in this workflow — protection rules are repository settings and no workflow file can express their absence. The comment says so, so the next reader looking for a gate that is not in the YAML knows where it went and how to put it back. Release notes now open with the commits since the previous build of the same channel: subject lines only, merge commits dropped so each change is listed once rather than twice, duplicates collapsed, and a tail summary past fifteen. Resolved through the compare API because the publish job checks out at depth 1 and has no history to walk, and never fatal — a release without its change list is cosmetic, a release that does not ship is an outage of the update channel. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
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.
Lands on
expbkmainso it joins the open promotion PR #119 intobkmain.Auto-publish
A merge to
bkmainbuilt the production desktop app and then waited on a manual approval before publishing, so the team's download lagged the server deploy.The gate was
required_reviewers: tusharbhardwaj-bkon thebk-desktop-productionenvironment — a repository setting, not workflow YAML. I removed it via the API; the environment now matchesbk-desktop-stagingexactly (no protection rules, no branch policy), which is the config that has always auto-published staging.Nothing in this diff can express that removal, which is exactly why the workflow comment now records where the gate lived and how to restore it. Please sanity-check the environment settings alongside this diff — the diff alone cannot show you the change that matters most.
One correction worth flagging: my first API call also set
deployment_branch_policy.protected_branches: true.bkmainis not a protected branch, so that would have blocked production publishing outright — worse than the gate it replaced. Caught and corrected before any release ran; both environments now read{"rules": [], "branchPolicy": null}.Signing is unaffected: the key lives in the build job, which has no environment.
Compact change list in the release
Release notes previously carried only build metadata. They now open with what changed since the previous build of the same channel:
…and N more commits.Resolved through the compare API rather than
git log, because the publish job checks out at depth 1 and has no history to walk. Every failure path returns an empty list rather than throwing: a release without its change list is cosmetic; a release that does not ship is an outage of the update channel.Verification
8 tests passedinscripts/publish-bk-desktop-dmg.test.ts, covering subject extraction, merge-commit removal, dedupe, the overflow tail, and the empty case.tsgo --noEmitclean forscripts(0 errors), lint andcheck-fork-markers.tspass.Not verifiable locally: the publish itself runs on GitHub-hosted macOS with the signing key. The first real proof is the next release's body.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.