Skip to content

Use legacy changelog action for non-stable channels#10940

Open
vikvang wants to merge 2 commits into
masterfrom
oz/fix-dev-changelog-fallback
Open

Use legacy changelog action for non-stable channels#10940
vikvang wants to merge 2 commits into
masterfrom
oz/fix-dev-changelog-fallback

Conversation

@vikvang
Copy link
Copy Markdown
Contributor

@vikvang vikvang commented May 14, 2026

Summary

Fixes the dev in-app changelog regression from #10832 without re-running the Oz agent on every non-stable cut.

  • Stable: unchanged — keeps the new Oz changelog-draft agent flow.
  • Dev / preview / beta: restores the legacy warpdotdev/generate-changelog action, so a fresh changelog.json is uploaded to GCS for every cut.
  • A small bridge step picks whichever path ran and re-emits the result as steps.generate_changelog.outputs.changelog, so the downstream Slack post + GCS upload steps work unchanged.

Background

#10832 gated generate_changelogs to stable-only to save agent tokens. That broke the dev in-app changelog: the dev client fetches changelog.json from GCS first (app/src/autoupdate/changelog.rs:84should_fetch_changelog_json is true only for Channel::Dev) and falls back to channel_versions.json's changelogs.dev.latest on 404. Skipping the upload for dev releases caused the client to surface a 2021-era [TEST] fixture from channel_versions.json in the in-app "What's new in Oz" section.

Preview/stable read straight from channel_versions.json (no GCS), so they were never exposed to the bug. The follow-up cleanup of the stale changelogs.dev.latest fixture in warpdotdev/channel-versions is in flight separately and is good hygiene regardless.

Why hybrid instead of "new flow everywhere"

  • Saves ~27-min agent invocation × daily dev cuts + preview/beta RCs
  • Dogfooding signal on the Oz flow is preserved on stable cuts (where output quality matters most) plus the existing workflow_dispatch changelog_draft.yml for ad-hoc runs
  • Existing battle-tested generate-changelog action keeps running for the channels users consume daily

Test plan

  • Watch the next dev release cut and confirm warp-releases/dev/<release_tag>/changelog.json is uploaded
  • Confirm dev client renders the new release notes (not the [TEST] fixtures)
  • Confirm next stable cut still runs through Oz and produces a sensible Slack post + GCS changelog.json
  • Confirm preview RC cut runs the legacy path and posts to Slack as before

🤖 Generated with Claude Code

PR #10832 gated the generate_changelogs job to stable-only to save
agent tokens on dev/preview/beta cuts. That gating broke the dev
in-app changelog: the dev client fetches changelog.json from GCS
first (app/src/autoupdate/changelog.rs:84) and falls back to
channel_versions.json's changelogs.dev.latest on 404. Skipping the
upload for dev releases caused the client to fall back to a stale
2021 test fixture in channel_versions.json containing "[TEST]"
oz_updates entries, which then surfaced in the in-app "What's new
in Oz" section for the most recent dev release.

Reverting the gate restores the prior behavior where every release
(stable/preview/dev) gets a fresh changelog.json uploaded to GCS,
preventing the fallback path from ever being hit for dev.

The stale channel_versions.json fixture should also be cleaned up
separately in the warpdotdev/channel-versions repo.
@cla-bot cla-bot Bot added the cla-signed label May 14, 2026
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 14, 2026

@vikvang

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@vikvang vikvang requested a review from danielpeng2 May 14, 2026 19:44
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This restores the generate_changelogs job to run for every published release channel instead of only stable, so each channel can upload a fresh changelog.json.

Concerns

  • No blocking correctness or security concerns found in the changed workflow condition.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Member

@danielpeng2 danielpeng2 left a comment

Choose a reason for hiding this comment

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

Can we use the old (non-agent) changelog generation step for non-stable runs, instead of running the new agent flow?

Splits generate_changelogs to fan out by channel:
- Stable: runs the Oz changelog-draft agent (new flow from #10832)
- Non-stable (dev/preview/beta): restores the legacy
  warpdotdev/generate-changelog action

A small bridge step picks the right source and re-emits it as
outputs.changelog, so the downstream Slack/GCS steps are unchanged.

This fixes the dev in-app changelog regression introduced by #10832
(dev clients fall back to a stale channel_versions.json fixture when
the GCS changelog.json upload is skipped — see
app/src/autoupdate/changelog.rs:84) without spending Oz agent tokens
on daily dev cuts and preview RCs. The Oz flow stays in the loop on
stable, where the higher-quality output matters most.
@vikvang vikvang changed the title Restore changelog generation for all release channels Use legacy changelog action for non-stable channels May 14, 2026
@vikvang vikvang requested a review from danielpeng2 May 14, 2026 21:58
@vikvang
Copy link
Copy Markdown
Contributor Author

vikvang commented May 14, 2026

Sure, I updated here as suggested. Non-stable channels use the old changelog action

@vikvang vikvang force-pushed the oz/fix-dev-changelog-fallback branch from 74fac75 to ba7257e Compare May 15, 2026 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants