Skip to content

chore: retire dev as a standing integration branch (ADR-0022) - #1241

Merged
jack-champagne merged 1 commit into
mainfrom
chore/retire-dev-branch
Sep 16, 2026
Merged

jack-champagne merged 1 commit into
mainfrom
chore/retire-dev-branch

Conversation

@jack-champagne

Copy link
Copy Markdown
Member

What

Supersedes ADR-0021's branch model with ADR-0022. Mechanical parts of
the reconciliation already done directly (not code, so no diff here):

This PR's diff:

  • ci.yml: drop dev from the push trigger
  • docs/adr/0021-...md: amended with a superseded-status note
  • docs/adr/0022-retire-dev-branch.md: the new record — full rationale,
    evidence, and what's kept vs retired

Why (short version — see ADR-0022 for the full case)

  • dev regressed a shipped fix within 48 hours of ADR-0021 landing (wave-2's
    back-merge silently dropped the fix(app-bundle): drop messages with empty content array before API dispatch #1218 guard; CI stayed green because no CI
    job runs the overlay's own test suite). See fix(engine): port the #1218 empty-content guard onto main (currently only on dev) #1240 for the port back onto
    main.
  • dev was also the GitHub default branch — not just a git ref — which is
    why PRs opened without an explicit --base (including the fix for the
    regression above) and Dependabot silently targeted it instead of main,
    contradicting CONTRIBUTING.md.
  • No canary implementation was ever built against it — the only artifact
    from ADR-0021 was this same ci.yml trigger line.
  • The batching value a wave-branch provides doesn't need a standing
    branch — wave-2's actual peak divergence was 18 commits over ~1.5 days,
    which an ephemeral integration/wave-N branch (created per batch, deleted
    on merge) gets identically.

What's NOT rejected

The canary concept itself — continuous testing of a real in-place upgrade on
persistent fleet state, which CI's disposable runners structurally can't do —
is retargeted at main's own CI-green commits/tags, not deleted. ADR-0022
has the build-out sketch.

Sequencing

  1. This PR + the default-branch flip + PR retargets (done)
  2. fix(engine): port the #1218 empty-content guard onto main (currently only on dev) #1240 — port the fix(app-bundle): drop messages with empty content array before API dispatch #1218 guard onto main
  3. Delete origin/dev once fix(engine): port the #1218 empty-content guard onto main (currently only on dev) #1240 lands (its tip SHA will be recorded here
    first, so it's trivially recoverable if anyone needs it)

For Aaron/JJ

This reverses ADR-0021 two days after it landed — flagging explicitly
rather than landing it as a fait accompli. Happy to talk through the
evidence in the ADR if any of it reads differently from where you were
sitting when you wrote it.

- ci.yml: drop dev from the push trigger — CI runs on main + PRs only
- docs/adr: 0022 supersedes 0021's branch model; 0021 amended with a
  status note pointing to it

Companion to: flipping the GitHub default branch dev -> main (done),
retargeting #1235/#1226/#577 from dev to main (done), and #1240 (porting
the #1218 guard, missing on main, from dev). origin/dev deletion follows
once #1240 lands.
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 57 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 53375e15-f760-42b8-b46c-de0c8db0fda6

📥 Commits

Reviewing files that changed from the base of the PR and between 2f466d6 and 6910a14.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • docs/adr/0021-canary-fleet-arms-ci-artifacts.md
  • docs/adr/0022-retire-dev-branch.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jack-champagne
jack-champagne merged commit 43567b5 into main Sep 16, 2026
11 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.

1 participant