Skip to content

Tell the relay laptops about every commit a deploy brings, and release 3.0.1 - #36

Merged
muhammadmobi merged 4 commits into
mainfrom
fix-relay-update-check
Oct 29, 2026
Merged

muhammadmobi merged 4 commits into
mainfrom
fix-relay-update-check

Conversation

@muhammadmobi

@muhammadmobi muhammadmobi commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

The deploy's summary says when the relay laptops need their setup run again. It decided by comparing the newest commit with the one before it, but "Rebase and merge" brings a pull request's commits to main in one push: the 3.0.0 merge was twenty-seven commits, scripts/setup-relay.ps1 changed in an early one, and the summary said nothing.

  • The relay note now compares with the commit of the last successful Deploy run, asked of GitHub (the workflow gains actions: read), with the last release tag behind it, and a line in the summary when neither can be read. The checkout fetches all of history so the comparison reaches however far back that is.
  • The list under the note names only the files that run on the laptops, not every script a merge brings.
  • The deploy workflow's concurrency comment said its first line twice; now once.

Released as 3.0.1: the version in package.json, its lock and the guide, and the changelog section with its link. The guide's What is new card is titled by the release line, 3.0, so it does not credit 3.0's features to this fix.

Merging

Rebase and merge.

…ts last

The deploy's summary says when the relay laptops need their setup run again,
and it decided by comparing the newest commit with the one before it. "Rebase
and merge" brings a pull request's commits to main in one push, so that saw
only the last of them: the 3.0.0 merge was twenty-seven commits, it changed
scripts/setup-relay.ps1 in an early one, and the summary said nothing.

It now compares with what was live before this deploy. The version the job
remembers for a rollback is a Worker version, which names no commit, so the
commit comes from the last Deploy run that succeeded, asked of GitHub (the
workflow gains actions: read for it), with the last release tag behind it and
a line in the summary when neither can be read. The checkout fetches all of
history so the comparison reaches however far back that is.

Over a range of commits the list under the note grew to every script changed,
CI's own included; it now names only the files the trigger looks for, which
are the ones that run on the laptops.

Checked by running the step itself against the 3.0.0 commit: it compares with
2.11.0's and names scripts/setup-relay.ps1, falls back to v2.11.0 with the API
unreadable, says nothing on a redeploy of the commit already live, and says it
cannot tell when there is neither a deploy nor a tag to compare with.
The deploy workflow's comment on its concurrency group said its first line twice.
Copilot AI balanced review requested due to automatic review settings October 29, 2026 09:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The workflow can select skipped or stale runs and report a SHA different from the deployed commit, causing incorrect comparisons that miss relay changes and suppress warnings.

3 open issues
What changed in this PR

This PR updates the deploy summary’s relay-update detection to cover multi-commit merges rather than only the newest commit.

Changes:

  • Uses successful Deploy run history as the comparison baseline, with a release-tag fallback and a notice when no baseline is available.
  • Fetches full Git history and limits the changed-file list to relay-related files.
  • Documents the behavior and removes a duplicated workflow comment.
File Description
README.md Describes relay-update detection across commits since the last successful deploy.
docs/​handoff.md Records the missed relay update and the new comparison approach.
CHANGELOG.md Adds an Unreleased entry and relay setup guidance.
.github/​workflows/​deploy.yml Adds baseline lookup, full-history checkout, fallback handling, and relay-file filtering.

Review effort: Balanced

Comment thread .github/workflows/deploy.yml Resolved
Comment thread .github/workflows/deploy.yml Resolved
Comment thread .github/workflows/deploy.yml Resolved
- package.json, its lock and the guide's RELEASE at 3.0.1. The changelog's
  Unreleased section becomes 3.0.1's, with a word on the release and its link
  reference, so scripts/ci/release-notes.mjs accepts it and the release
  workflow can tag it.
- The guide's "What is new" card is titled by the release line, 3.0, not by
  the full version: 3.0.1 adds nothing to the dashboard, and the card would
  otherwise credit 3.0's features to it. The guide's own heading still names
  3.0.1.
- The handover's "Where things stand" says 3.0.1 is live.
Copilot AI balanced review requested due to automatic review settings October 29, 2026 09:14
@muhammadmobi muhammadmobi changed the title Tell the relay laptops about every commit a deploy brings Tell the relay laptops about every commit a deploy brings, and release 3.0.1 Oct 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The deployment baseline uses a potentially incorrect SHA and run creation order, so it can misidentify the live commit and omit required relay-update notices.

4 open issues

Review effort: Balanced

Comment thread tests/e2e/guide.spec.ts Resolved
Copilot's review: the relay note took "what was live" from the newest
successful Deploy run, which can be the wrong commit - a run whose deploy job
was skipped, a run GitHub records against a later commit than the one it
deployed, or an older deploy re-run after a newer one.

Each deploy now records its commit on the Worker version it makes
(`--message "From commit <sha>"`, the short form as its tag), and the next one
reads it back from the version serving before it changes anything
(scripts/ci/worker-version.mjs --commit, beside the rollback target it already
read). That is right after a rollback or a re-run too. A version deployed before
this records nothing, and the note falls back to the last release tag, as
before. The workflow no longer needs actions: read.

worker-version.mjs's parsing is exported and tested, with a test that the
workflow writes the message in the form the script reads back. The guide's
test asserts the "What is new" heading exactly, so a heading naming the full
version fails it. The changelog, the README and the handover say so. 909 unit
tests.
Copilot AI balanced review requested due to automatic review settings October 29, 2026 09:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues block the deployment-summary fix and 3.0.1 release updates.

No open issues 🎉

4 resolved since last review

Review effort: Balanced

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved automatically: every check passed on the newest commit, Copilot has reviewed it, and no review thread is open.

@muhammadmobi
muhammadmobi merged commit 13346b6 into main Oct 29, 2026
18 of 21 checks passed
Sign up for free to 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.

2 participants