docs(plans): amend Step 11 to ship as a three-MR stack

Amends ### Step 11 of the upload-session-concurrency-cap plan, which ruled the step unsplittable, so that it ships as a three-MR stack instead.

What is overturned

The scope bullet said of the signature change: "The signature change is what pulls in the rest, and it cannot be staged either". That is right about two things, and both still hold in the new shape:

  • A Go method signature changes for every implementer and every narrowed redeclaration in one commit or the tree does not build. 29 files declare a NewSession method or a narrowed interface.
  • The acquire and its release have to land together at every call site, or main carries a cap that leaks.

It over-reached on the new test functions. Those carry no production line and do stage: a test function whose name is absent at the merge base moves to a later part together with the helpers only it calls, and unused proves the placement. That is measured rather than argued, by building the parts.

The measured split

# MR Target Reviewable LOC
gate !2881 (merged) (this one) main 81
1 !2882 (merged) main 2,853
2 !2883 (merged) part 1's branch 1,228
3 !2884 (merged) part 2's branch 1,117

Reviewable LOC is added + removed, each row measured against its own target's merge base, at the heads ce0b7b998, ab6a259da, e9536ca98 and 368126733. The rows are read per part and never summed, because the nested targets make a sum double-count churn a later part rewrites. Part 3's row is measured against 334a50ccf, the part 2 commit it is stacked on, which part 2's branch has since moved past, so that row is re-derived once part 3 rebases onto part 2's head. Re-derive when a part moves: a rebase moves a part's head and its merge base together.

Part 1 keeps all 890 production lines, 470 doc lines, and the 1,493 test lines the signature forces. Parts 2 and 3 are five _test.go files each, with no production line and no doc line between them.

The cost this records

## Dependencies gains a bullet stating it: part 1 reaches main without the new leak-path coverage, which deviates from the step's own Acceptance, and the window closes when part 3 merges. That deviation is the reason this amendment exists rather than the split just happening.

The bullet also states that the split does not touch the ADR-003 gate below it. Part 1 turns the acquire on, so handbook!21192 gates part 1 exactly as it gated the unsplit step.

Merge order

This MR before !2882 (merged), since it is what authorises the shape !2882 (merged) ships in. It does not touch the ## Status table, whose rows stay batch-filled by their single writer; Step 11's row is owed once the parts are recorded.

Related to #1035

Edited by Dzmitry (Dima) Meshcharakou

Merge request reports

Loading
Loading