Skip to content

docs(integration): record the branch retirement and audit the stale refs - #666

Open
RonenMars wants to merge 1 commit into
mainfrom
docs/integration-branch-retirement
Open

docs(integration): record the branch retirement and audit the stale refs#666
RonenMars wants to merge 1 commit into
mainfrom
docs/integration-branch-retirement

Conversation

@RonenMars

Copy link
Copy Markdown
Owner

Closes the decision left open by repo-health/06-integration-branch-decision.md, which asked for a decision to be recorded and for #575/#580 to get a path that is not manual conflict resolution.

Both are settled: the long-lived integration branch is retired, every open PR having been landed on main individually (20 merged, 4 closed unmerged), and #575/#580 were closed rather than conflict-resolved because their content was already on main via #578/#579.

Why no PR should ever be opened from the remaining branches

Sixteen integration-named refs still exist. Each shows 16–19 non-doc files that main does not have, which reads like unlanded work. It is not.

The test that settles it is not "is this ref merged" — none of them are ancestors of main, because every PR that fed them was squash-merged under a new SHA. The test is whether the ref holds a file main has never had:

git diff --diff-filter=A --name-only origin/main "$REF" | grep -v '^docs/' |
while read -r f; do
  [ -z "$(git log --diff-filter=D -1 --format=%h origin/main -- "$f")" ] && echo "NEVER on main: $f"
done

Across all sixteen refs the count is zero.
Their apparent unique content is the Maestro flows and stray logs that main deliberately removed in #531 (test(e2e): delete the maestro flows that nothing runs), #474 and #458.
A PR from any of them would revert those three merged PRs under a title that reads like recovery.

Also recorded

e2e/live-chat-tab.yaml carried an API key, removed from main when #531 deleted the flow — but the stale refs predate that deletion and still carry it, verified at 3 API_KEY lines each.
Retiring them reduces how many refs hold the blob; it does not remediate it, since any existing clone already has the history. Rotation is the fix.

The detached integration-merge-android-r8 worktree sits on a commit titled fix(android): pin expo-modules-core for R8 ColorCompat that contains no Android code — its whole diff is four ios/Podfile.lock SPEC CHECKSUM lines, the path-dependent noise CLAUDE.md documents. Worth knowing before someone goes looking for that fix.

Scope

Documentation only. This PR deletes nothing. The recommendation is to drop all sixteen, with two held back for an owner's call rather than an audit result: archive/26-07-2026.18-44-integration is explicitly named archive, and feat/in-chat-search-integration / feat/live-external-sessions-integration are feature branches that merely contain the word.

…efs [skip-ci]

Closes the decision left open by repo-health brief 06: the long-lived integration branch is retired, every open PR having been landed on main individually.
Records the six refs deleted, the two backups kept, and the file-level audit that made deletion safe — across sixteen surviving integration-named refs, not one holds a file main has never had.
Notes that their apparent unique content is the Maestro flows and stray logs main deliberately removed in #531, #474 and #458, so a PR from any of them would be a revert wearing a recovery title.

[skip-ci]
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