Phase 8 of 9 in the v2 go-live runbook — see #1804 (§10). Depends on phase 4. Reversible.
Everything that silently inverts when main becomes v2.
Current state of the branch model
Established and now documented in AGENTS.md / README.md / CONTRIBUTORS.md (#1866):
| Branch |
Role |
PRs target it? |
Publishes |
v2/main |
Develop — all active v2 work |
yes, every v2 PR |
— (reaches npm via main) |
main |
Release — default branch, latest released v2 |
no — milestone merges from v2/main only |
latest |
v1/main |
Maintenance — deprecated, fixes only |
yes, every v1 PR, directly |
v1-latest, straight from the branch |
Verified on npm: v1-latest: 1.0.1, latest: 2.0.0.
Correction, recorded here so it stops propagating. Several earlier PR and issue descriptions (#1851, #1864, #1865) claimed main and v2/main share no common git ancestor and that the tree swap created unrelated histories. That is wrong. It came from running git merge-base in a shallow clone, which truncates history so the base isn't reachable. The branches share merge base 4d30d1cd, established by the go-live merge (#1830). After git fetch --unshallow it resolves normally. No graft or stitch commit is needed, and --allow-unrelated-histories must never be used here.
Merged
All eight PRs are merged to v2/main, in this order, each squash-merged after a Copilot review loop reached a clean round:
| Order |
PR |
Landed as |
| 1 |
#1866 — branch model, PR policy, milestone rule, Copilot instructions |
3ac34e40 |
| 2 |
#1880 — converge README's Test-servers section |
2c24b82e |
| 3 |
#1884 — rename CONTRIBUTORS.md → CONTRIBUTING.md |
379a8a0a |
| 4 |
#1879 — unpin the branch-pinned links in the PR template |
7cc3c127 |
| 5 |
#1867 — SECURITY.md |
ff995473 |
| 6 |
#1869 — claude.yml + .mcp.json |
ee707db5 |
| 7 |
#1871 — dependabot, issue template, .gitattributes, CoC |
13e981e9 |
| 8 |
#1881 — rc-series dependency bumps (@hono/node-server 2.x, vite 8.1.5) |
694d013f |
Their issues (#1873, #1877, #1874, #1883, #1813, #1864, #1850, #1870, #1875) are closed and their cards are Done.
One conflict actually materialized, on #1884: GitHub flagged CONFLICTING for the rename/modify pair once #1866 landed (it renames CONTRIBUTORS.md while #1866 edited that file's contents), even though local git resolved it cleanly via rename detection. Resolved by merging v2/main into the branch — #1866's edits applied to the renamed file, CONTRIBUTORS.md gone, CONTRIBUTING.md carrying the new content. Worth remembering: GitHub's mergeability check is more conservative than git merge for rename/modify.
This phase is complete — all nine sub-issues are closed and their PRs merged.
The v2/main → main milestone merge is not part of this phase. It is tracked separately in #1876 as the last issue of the v2.1.0 milestone, because it ships everything in that milestone rather than only this phase's work. The merges above unblock it, and because #1880 landed it should now be conflict-free rather than needing the one-hunk README fallback.
Phase 8 of 9 in the v2 go-live runbook — see #1804 (§10). Depends on phase 4. Reversible.
Everything that silently inverts when
mainbecomes v2.Current state of the branch model
Established and now documented in
AGENTS.md/README.md/CONTRIBUTORS.md(#1866):v2/mainmain)mainv2/mainonlylatestv1/mainv1-latest, straight from the branchVerified on npm:
v1-latest: 1.0.1,latest: 2.0.0.Merged
All eight PRs are merged to
v2/main, in this order, each squash-merged after a Copilot review loop reached a clean round:3ac34e402c24b82eCONTRIBUTORS.md→CONTRIBUTING.md379a8a0a7cc3c127SECURITY.mdff995473claude.yml+.mcp.jsonee707db5.gitattributes, CoC13e981e9@hono/node-server2.x, vite 8.1.5)694d013fTheir issues (#1873, #1877, #1874, #1883, #1813, #1864, #1850, #1870, #1875) are closed and their cards are Done.
One conflict actually materialized, on #1884: GitHub flagged
CONFLICTINGfor the rename/modify pair once #1866 landed (it renamesCONTRIBUTORS.mdwhile #1866 edited that file's contents), even though local git resolved it cleanly via rename detection. Resolved by mergingv2/maininto the branch — #1866's edits applied to the renamed file,CONTRIBUTORS.mdgone,CONTRIBUTING.mdcarrying the new content. Worth remembering: GitHub's mergeability check is more conservative thangit mergefor rename/modify.This phase is complete — all nine sub-issues are closed and their PRs merged.
The
v2/main→mainmilestone merge is not part of this phase. It is tracked separately in #1876 as the last issue of the v2.1.0 milestone, because it ships everything in that milestone rather than only this phase's work. The merges above unblock it, and because #1880 landed it should now be conflict-free rather than needing the one-hunk README fallback.