Skip to content

docs: record full release-gate verification results - #126

Merged
BigSimmo merged 1 commit into
mainfrom
claude/lucid-hypatia-dfe6fd
Jul 2, 2026
Merged

docs: record full release-gate verification results#126
BigSimmo merged 1 commit into
mainfrom
claude/lucid-hypatia-dfe6fd

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

Docs-only: records in the redesign changelog that the full release-gate chain (equivalent to npm run verify:release, run stepwise) is green as of 2026-07-02:

  • check:runtime ✓ · lint ✓ · typecheck ✓ · vitest 688 passed / 2 skipped
  • next build
  • e2e: chromium 39/39 · firefox 35/35 · webkit 38 + 1 flaky passed on retry
  • production-readiness READY 5/5 ✓ · eval:quality:releasepassed thresholds

Also documents the pre-existing env-coupled upload drawer test expectation (fails only when .env.local local-auth is present; not theme-related).

🤖 Generated with Claude Code

All verify:release steps run stepwise and green on 2026-07-02: runtime,
lint, typecheck, vitest 688/2, build, e2e (chromium 39/39, firefox 35/35,
webkit 38+1 retry-pass), production-readiness 5/5, quality eval thresholds.
Notes the pre-existing env-coupled upload-drawer test expectation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 2, 2026 04:27
@BigSimmo
BigSimmo merged commit 2b70e53 into mainJul 2, 2026
1 check passed

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Docs-only update to the redesign changelog capturing that the full release-gate verification chain (equivalent to npm run verify:release, run stepwise) was successfully completed as of 2026-07-02, and documenting a known environment-coupled e2e expectation.

Changes:

  • Record stepwise full release-gate results (runtime/lint/typecheck/vitest/build/e2e/production-readiness/eval) as green on 2026-07-02.
  • Document the pre-existing .env.local-coupled ui-smoke.spec.ts “upload drawer exposes setup checklist” expectation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


- `npm run typecheck` and `npm run lint` pass; vitest 688 passed / 2 skipped; `tests/ui-smoke.spec.ts` 29/29 and `tests/ui-accessibility.spec.ts` 2/2 pass on Chromium; dev server serves 200 with 0 console errors; light/dark desktop + light mobile screenshots confirm the direction; contrast spot-checks pass (Aegean-on-white ≈5.8:1, command ≈16:1, semantics ≥4.5:1). `npm run verify:release` (full build + e2e + eval) not run.
- `npm run typecheck` and `npm run lint` pass; vitest 688 passed / 2 skipped; `tests/ui-smoke.spec.ts` 29/29 and `tests/ui-accessibility.spec.ts` 2/2 pass on Chromium; dev server serves 200 with 0 console errors; light/dark desktop + light mobile screenshots confirm the direction; contrast spot-checks pass (Aegean-on-white ≈5.8:1, command ≈16:1, semantics ≥4.5:1).
- **Full release-gate chain run stepwise on 2026-07-02 (equivalent to `verify:release`): all green.** check:runtime ✓ · lint ✓ · typecheck ✓ · vitest 688/2 skipped ✓ · `next build` ✓ · e2e chromium 39/39, firefox 35/35, webkit 38+1-flaky-passed-on-retry ✓ · production-readiness READY 5/5 ✓ · `eval:quality:release` passed thresholds ✓.
@BigSimmo
BigSimmo deleted the claude/lucid-hypatia-dfe6fd branch July 2, 2026 08:12
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
#125: spell out that ready_for_review must be added alongside the
existing pull_request.types defaults, not replace them.
#126: qualify the update-branch fallback push with the same
explicit user confirmation the provider boundary already requires.
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
docs/outstanding-issues.md conflicted again — main advanced 5 commits and took
#125 for itself. Resolved by taking main's file wholesale and re-appending my
three rows renumbered to #126/#127/#128, marker to 129, since those rows are
this branch's only change to the file.
This is #127 reproducing within minutes of being filed: the conflict was
entirely mechanical, and it had already silently stopped every
pull_request-triggered check on PR #1424 (3 check runs instead of 16) exactly
as #116 describes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
PR #1420 landed its own `#125` while this branch was allocating one —
exactly the unprotected read-modify-write race archived as #112. Both
rows are kept: theirs holds #125, the phone-scroll CI capture moves to
#126, and the marker advances to 127.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XrPbbfU9yWuEjEVypCr4ZQ
BigSimmo added a commit that referenced this pull request Jul 30, 2026
* fix: ledger merge driver dedupes exact rows on sync
Replace stock merge=union with a custom ledger driver that unions
concurrent appends and drops byte-identical twins, add ledger:dedupe
for checkouts without the driver, tighten Run PR babysit append policy,
and close#88 now that the residual exact-dupe class is gated.
* feat: rotate branch-review ledger into quarterly archives (L4)
Add ledger:rotate to move older dated rows into
docs/archive/branch-review-ledger-<yyyy-qN>.md, teach lookup/sweep/check
to read the archive corpus, bootstrap by archiving pre-2026-07-29 rows,
and mark maturity backlog L4 done. Also fix the CLI entry guard so
check-branch-review-ledger no longer falsely matches as the ledger CLI.
* fix: harden ledger CLI entry guards against suffix false-match
check-branch-review-ledger.mjs ends with branch-review-ledger.mjs, so a
bare endsWith guard can execute the wrong CLI when modules import each
other. Match on a path segment instead.
* fix: add JSDoc types for ledger rotate helpers
TypeScript inferred calendarQuarterStart(value = new Date()) as Date-only
and dropped `before` from rotateLedgerMarkdown's options object, which
failed Static PR typecheck on the hygiene tests.
* issues: drop L4 from #86 Remaining; capture #126 quarterly rotate
L4 shipped in #1418. Track a quarterly ledger:rotate reminder so the live
table does not grow unbounded again.
* docs: mark L4 DONE and clarify ledger merge/rotate residual risks
Progress summary table still said OPEN after L4 shipped. Document exact-only
dedupe, install-required merge driver, and quarterly rotate practice.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
PR #1418 landed its own `#126` (quarterly ledger rotation) on main while
this branch was carrying one — the same unprotected read-modify-write
race archived as #112, hit for the second time in an hour. Main holds
first claim, so its row keeps #126, the phone-scroll CI capture moves to
#127, and the marker advances to 128. Both rows are kept.
check:outstanding-issues: 125 rows (62 open, 63 archived), unique ids,
next-id=128 above the highest.
check:branch-review-ledger: 90 live + 1206 archived, ledger merge active.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XrPbbfU9yWuEjEVypCr4ZQ
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
main's #1418 (ledger merge dedupe + L4 quarterly archive rotation) and #1413
both edited docs/outstanding-issues.md, so this was a real content conflict
rather than staleness: git merge-tree --write-tree confirmed CONFLICT before
any resolution was attempted.
Resolved by taking main's version of the ledger wholesale and re-applying this
branch's five-row archive move on top, so neither side's work is lost:
- from main: #88 and #97 archived, new open row #126 (quarterly ledger
rotation) with queue order 35, the #23 "When" update (release-browser-matrix
no longer blocked by pr-required), the #86 detail update, and the
issues:next-id bump to 127.
- from this branch: #95, #96, #104, #109 and #115 moved from Open items to
Resolved / archive.
No row from either side was dropped, and no id appears in both tables.
Verified: 121 rows (52 open, 69 archived), marker next-id=127 above the highest;
each of #88, #97, #95, #96, #104, #109, #115 resolves to exactly one archive
row and #126 to one open row; zero conflict markers remain.
npm run verify:cheap -> EXIT=0; "Gate-manifest OK: all 29 verify:cheap gates are
enforced in CI"; "Test Files 431 passed (431)"; "Tests 4496 passed | 4 skipped
(4500)". npx prettier --check . -> "All matched files use Prettier code style!"
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011YdPS2KhKqz2buzsUgmX3c
BigSimmo pushed a commit that referenced this pull request Jul 30, 2026
Fourth conflict in this file today. main advanced 30 commits and took #126 and
#127 for itself, so my rows renumber again to #128/#129/#130, marker 131.
Resolution is mechanical as always: main's file plus this branch's three
appended rows.
That is now four conflicts and four rounds of ID collision in one session,
which is the evidence #129 (the padding recommendation) rests on.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
BigSimmo added a commit that referenced this pull request Jul 30, 2026
… PR babysitting (#1421)
* issues: capture two CI/merge operational findings from PR babysitting
#117: this repo's CI (on: pull_request with default types) doesn't
retrigger on the draft-to-ready transition, only on
opened/synchronize/reopened — a marked-ready PR can sit with a
minimal check set until an actual new commit lands. #118: GitHub's
update-branch API doesn't honor the merge=union .gitattributes driver
on docs/branch-review-ledger.md, so it can 422 with a false conflict
that a local git merge resolves cleanly. Both observed today on PR
#1406.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Re9ERtQwJ82ErbAnahAhsa
* Address Codex review: clarify ledger rows #125/#126 wording
#125: spell out that ready_for_review must be added alongside the
existing pull_request.types defaults, not replace them.
#126: qualify the update-branch fallback push with the same
explicit user confirmation the provider boundary already requires.
* docs(issues): capture #1396's unaddressed physical-device chrome gate
PR #1396 repeatedly declared physical-device Safari/PWA acceptance
(docs/phone-chrome-physical-acceptance.md) as required before merge
because headless Chromium cannot certify Safari chrome minimisation
or cold-launch PWA paint, then merged with the checklist still blank.
Also notes a related missing pre-paint/cold-load hydration test the
same PR's review flagged but never filed.
* style: fix table padding drift from the main merge
npx prettier --write after merging main (9e2fe44) — a table cell
width shifted during the merge and format:check would have caught it.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
BigSimmo added a commit that referenced this pull request Jul 30, 2026
…indings (#1424)
* docs(ledger): record PR #1400 closeout and capture three unrecorded findings
Documentation only — two ledger files, no code.
**Review closeout for PR #1400** appended with `ledger:append` (never
hand-written), recording the 17 findings fixed, the verification behind each,
and the post-merge check that all 8 commits are ancestors of main with the 4
changed files byte-identical.
**Three findings from that session that nothing else records:**
- `#125` — `@codex fix` produced 11 commits across a branch named `work`,
none fetchable, the same finding rewritten four times. It reads as success
while the branch is unchanged, which is the actual hazard.
- `#126` — both client-side push guards are inert for agent pushes:
`gh` absent makes the auto-merge sentinel fail open, and `core.hooksPath`
is set only by a local install. They protect the environment least likely to
need them.
- `#127` — this ledger's fixed-width padding makes one row's edit re-pad all
59, so it conflicts on nearly every main advance; each conflict silently
stopped all CI on #1400 via `#116`. Records that `merge=union` is the wrong
fix, with the evidence.
CircleCI was deliberately not filed — already captured as `#122`. Checked
before writing rather than after.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
* docs(issues): correct unsafe pull_request_target advice in #129
Review caught a real problem in the guidance I filed, not in code: #129's
next-action suggested moving *both* push guards server-side into a
`pull_request_target` job. That context carries secrets and a write token, and
a format check must execute PR-head code — including the dynamic
`prettier.config.*` this very PR taught the guard to load. That is the classic
privileged-context vector, and `.github/workflows/pr-policy.yml` already avoids
it deliberately by checking out only `github.workflow_sha`.
Corrected, and the row now records why the whole idea was unnecessary:
formatting is already enforced server-side by `Static PR checks` running
`format:check` on ordinary `pull_request` CI, so the guard's only unique value
is failing fast before the push. Only the metadata-only auto-merge sentinel
could safely live in a target job.
Bad advice in a durable ledger is worse than no advice — someone would have
acted on it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
* fix(issues): repair the duplicated table from the sixth main merge
Sixth conflict today, and the first that auto-merged *wrongly*: git's text
merge concatenated both tables, duplicating all 63 open rows. PR #1421 had
landed on main using #128/#129/#130 — the exact id collision #112 describes —
so both sides had those ids with different content and the merge kept both.
`npm run check:outstanding-issues` caught it and stated the correct resolution
verbatim: renumber the incoming rows above the marker and bump it, rather than
taking one side wholesale and dropping the other's rows. Done exactly that —
main's table is authoritative, this branch's four rows renumber to
#131/#132/#133/#134, marker to 135. Verified both sides' rows survive:
main's #128-#130 and mine are all present and distinct.
Worth noting main's new #129 (`update-branch` API does not honour the
`merge=ledger` driver) is the server-side twin of my #134 (the driver is absent
wherever `npm install` was skipped). Same root cause from two directions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Akwz3Sdms8uJ5AkDt3CduY
* docs: record PR 1424 review
---------
Co-authored-by: Claude <noreply@anthropic.com>
BigSimmo added a commit that referenced this pull request Jul 30, 2026
…t did (#1427)
* test(phone-scroll): prove the drag delivered before asserting the chrome hid
CI run 30518866604 failed `ui-phone-scroll.spec.ts:423` on
expect(getByTestId('universal-header-collapse'))
.toHaveAttribute('data-scroll-hidden', 'true') // received ""
after the full 10s auto-retry, and the classifier recorded it as "needs
investigation". The assertion was right; the scroll never happened.
`dragScrollBy` moved the scroller with `scrollTop +=`, which clamps silently
at the end of the range, and returned nothing. When a page lays out shorter
than the test assumed — content still settling under full-suite CI load — a
720px request delivers a fraction of that, the chrome correctly stays visible
because document-detail chrome only hides past `scrollTop > 120`, and the
failure surfaces ten seconds later looking like a product regression. The
helper also resolved the scroll owner once up front, so a mid-drag layout
change left it pushing an element that had stopped scrolling.
- `dragScrollBy` now re-resolves the owner each step and returns the distance
actually travelled.
- `dragScrollUntilHidden` waits for the remaining downward runway (a condition
wait, not a settle sleep), drags, and fails naming the shortfall if the drag
could not cross the threshold. Used at the four sites that assert a hide
immediately after a fixed-distance drag.
- `addPhoneScrollRunway` waits for its 1600px filler to reach layout instead of
sleeping 50ms. All 14 call sites already depend on that runway existing.
Every assertion is byte-identical: a genuinely stuck header still fails exactly
as before, once the drag is proven to have happened. No `.first()` was added
(#93's stop rule) and no tolerance was relaxed.
* ci: shard Production UI across three runners
Measured on 2026-07-30 from the Actions API, two full UI-scope PR runs
(30520443076, 30519912667): `Production UI` took 15m26-16m31 of a 16.8-18.6
minute run — 83-89% of wall clock — while every other job finished by minute 4
and then waited. Playwright itself reported `339 passed (13.5m)`; the balance is
the isolated production build.
That single job is also where the churn cost lands: 42% of PR runs in the
sampled window were cancelled (25 of 60 completed), almost all superseded
mid-Production-UI.
Sharding is across runners, not workers. `workers: 1`, `fullyParallel: false`
and `retries: 0` are unchanged inside each shard, so determinism is identical
and per-runner load falls — which matters because #93's duplicate page root is
load-dependent. `run-playwright.mjs` already forwards argv to `playwright test`,
so `--shard` needed no runner change.
The shard count is measured, not chosen. `fullyParallel: false` makes a spec
file indivisible, so shard sizes are lumpy and more shards is not monotonically
faster. Over the 340 required chromium tests:
N=3 -> 121/106/113 largest 121
N=4 -> 121/106/96/17 largest 121 (same critical path, one more runner)
N=6 -> 65/56/106/5/91/17 largest 106
N=5 -> 121/106/0/96/17 and N=8 -> two empty shards
N=4 buys nothing over N=3, and any N with an empty shard would go red because
`test:e2e:pr` deliberately omits `--pass-with-no-tests`. Expected critical path
~15.5 -> ~7 min, assuming per-test cost is roughly uniform.
`fail-fast: false` so a failing shard cannot cancel its siblings and re-create
the cancelled-vs-failed ambiguity #95 removed. Artifact names are shard-scoped
because upload-artifact runs with `overwrite: false`. Branch protection requires
only the `pr-required` aggregate, and `needs` on a matrix job yields the roll-up
of all shards, so the aggregate is unchanged.
Also adds `restore-keys` to both Playwright browser caches: without a prefix
fallback a lockfile bump forced a cold browser download in every UI job at once,
now three times over.
* ci: bound the codex auto-resolve jobs and serialise the visual config
Two inconsistencies found while mapping the pipeline, neither load-bearing but
both silent:
- `codex-autofix-review-comments.yml` was the only workflow in the repo with no
`timeout-minutes` on either job, so both inherited GitHub's 360-minute default
for work that reads PR metadata and posts one comment.
- `playwright.visual.config.ts` set neither `workers` nor `fullyParallel`, so it
inherited Playwright's default `workers = 50% of CPUs`. The production config
pins both to serial deliberately; the visual lane was quietly opting out of
the anti-flake posture the rest of the suite is configured for.
* chore(gates): pin the documented gate count to the real chain
Both numbers were wrong. `CLAUDE.md` said 24 static/consistency gates against an
actual 25 — `check:assets` landed before that line was written, so it was wrong
at authoring — and the `gates` skill said "check 2 of 26" against an actual 28.
A stale count is not cosmetic here. The skill's whole point at that line is that
`verify:cheap` stops at the first failure and everything after it never ran; an
agent that believes the chain is 26 long cannot say how much a mid-chain failure
skipped.
`check:gate-manifest` already derives the real count from
`verify:cheap:internal`, so it now asserts the documented numbers against it.
The assertions fail closed: if the anchor phrasing disappears, the guard reports
a lost anchor rather than passing on a document it no longer checks.
Mutation-proven: reverting the skill to "26" fails with
".claude/skills/gates/SKILL.md says 26 where the chain has 28".
* docs(issues): capture the CI review's deferred findings
Five items from the CI/testing review that should not be changed blind:
- #125 `ui_changed` matches all of `src/app`, so an API-only diff pays the
15-minute UI gate. Narrowing it can hide a real regression, so it needs a
decision plus a compensating check rather than a quieter filter.
- #126 the Playwright build writes to a per-run distDir, so Next's build cache
is cold every run (~2 min, now ~29% of the sharded critical path). Fixing it
means suppressing the runner's documented always-cleanup, which must not ship
without executing the runner.
- #127 the advisory UI lane spends ~3 min per UI PR on 5 mockup tests; there are
currently zero `@quarantine` tests for it to cover.
- #128 CI Triage is complete and self-tested but inert pending a repo variable.
- #129 four `changes` outputs are computed and consumed by nothing, and
`coverage_changed` fires on any non-doc file.
* docs(ledger): record the ci-testing-review pass at this HEAD
* ci: re-measure the shard split on the merged tree and refresh stale gate counts
The merge changed both numbers this branch had recorded.
Shard balance, re-measured against 342 required chromium tests (was 340):
N=3 -> 121/111/110 largest 121
N=4 -> 121/106/98/17 largest 121
N=3 remains correct — one 121-test spec group bounds both, so N=4 spends an
extra runner for the same critical path. The re-measure command is now in the
workflow comment so the next person does not have to rediscover it.
Gate counts: merging main added `check:gitleaks-pinned` and
`check:pr-mergeability` to `verify:cheap:internal`, so the documented counts
went stale the moment the merge landed — 25 -> 27 static, 28 -> 30 total. The
guard added earlier in this branch caught it immediately rather than letting the
docs drift again, which is the whole reason it exists.
Also records the `ui-critical-fast` interaction: the UI critical path is now that
15-test fail-fast job plus the slowest shard, not the full 13.5-minute suite, so
neither of this branch's pre-merge timings can be read on its own.
* docs(issues): rebuild the ledger after a union-merge duplication
The `merge=union` driver on `docs/outstanding-issues.md` preserves concurrent
appends, but when both sides restructure the same region it concatenates them
wholesale. Merging the latest main did exactly that: every open row appeared
twice and both `issues:next-id` markers survived — 66 duplicate-id errors from
`check:outstanding-issues`, which is precisely the failure that gate exists to
catch (#112).
Resolved by rebuilding on main's canonical file rather than by hand-editing the
duplicated table: reset to `origin/main`, then re-apply this branch's five
captured rows at #131-#135 (main had advanced its allocation to #130 while this
branch was open, so the earlier #128-#132 numbering collided again) and
re-apply the #127 narrowing note. Marker bumped to 136.
Union merge cannot allocate unique ids; only the structural gate can catch when
it has produced an invalid file. It did.
* ci: record the measured shard result, correcting the predicted one
First real run of the sharded shape (CI 30530618838, all green, whole run
13m39 against a 16.8-18.6 min unsharded baseline):
ui-critical-fast 15 tests 3m14
Production UI (1) 121 tests 9m36
Production UI (2) 111 tests 6m54
Production UI (3) 110 tests 6m20
The prediction was wrong by ~40%. ~6.8 min was expected for the largest shard
from 121/342 tests x 13.5 min; 9m36 happened. Per-test cost is not uniform —
111 tests took 6m54 while 121 took 9m36 — so a count-balanced split understates
the slowest shard whenever the slow specs land in one group. `--shard` can only
balance by count; balancing by duration would mean splitting the slow spec files
themselves.
The win is real but smaller than claimed, and the workflow comment and
process-hardening now carry the measured numbers plus the reason the arithmetic
misleads, so the next person re-measures instead of re-deriving.
Also merges origin/main. The ledger conflict was GitHub-visible only: that file
carries merge=union locally, which GitHub does not honour (#129). Resolved by
keeping the one genuinely new record and dropping three that main already had
elsewhere in the file — append-only forbids dropping a record that exists once,
not keeping a second copy. Superseding record appended for this HEAD, since the
prior one asserted a root cause that #127's trace evidence refutes.
* docs(issues): renumber this branch's rows above main's concurrent allocation
CI caught what I did not: `static-pr` failed on `check:outstanding-issues` with
#131-#134 duplicated and two `issues:next-id` markers.
Cause: main's PR #1424 allocated #131-#134 for its own findings at the same time
this branch held #131-#135, and `merge=union` did what union does — kept both
sides under the same ids. That is #112's documented limit: union preserves
concurrent appends but cannot allocate unique ids, so the structural gate is the
only thing that catches it.
My error was pushing without re-running that gate. The previous push resolved a
`docs/branch-review-ledger.md` conflict, and I validated only that file before
pushing to win the race against main — but the same merge also touched
`docs/outstanding-issues.md`. `verify:cheap` would have caught it locally.
Main's rows keep #131-#134 (already merged and referenced elsewhere); this
branch's five renumber to #136-#140, one marker at 141, and the cold-cache
cross-reference in process-hardening follows its row.
Two of main's new rows also make a planned addition here redundant: #134 is the
absent ledger merge driver and #133 is the outstanding-issues merge churn — both
hit during this branch's work, both already captured upstream, so nothing new is
filed for them.
* docs(issues): rebuild against main's current id allocation
The union merge duplicated the whole open and archive tables again (two header
rows, every id twice) because main restructured the file while this branch held
rows in it. Same resolution as before and for the same reason: rebuild on main's
canonical file rather than hand-editing a doubled table, then re-apply this
branch's five rows.
Main is now at next-id=135, so they land as #135-#139 with the marker at 140.
None of the five is duplicated upstream — checked by summary before re-applying.
This is the third renumber of the same five rows in one PR. That is not a
mistake being repeated, it is #133 ("outstanding-issues conflicts on nearly
every main advance") happening: any branch that holds rows in this file
re-collides every time main lands one. Worth weighing whether captures should
land in their own PR ahead of the work rather than riding along with it.
* docs: record PR 1427 review
---------
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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

@BigSimmo