docs(plans): S32 retire the closed external gate and stale Step 11 entries

What

Corrects stale facts and ownership in the merged S32 container-virtual implementation plan. This MR changes no service behavior.

The plan now records the closed S13 gate, the settled Retry-After class, the virtual write-deadline budget, the remaining Step 10a work, and stale size figures. Step 10a waits for an S32 amendment that extends the data-error cause list. Step 11 now owns the resolve_timeout mapping and its test.

The review round settled three things the first pass got wrong:

  • The virtual write-deadline expression calls remote.RevalidationResponseBudget rather than restating its terms. The restated form dropped a token handshake and armed 185s against 200s of work, and it named detachedCacheOpTimeout, which internal/format/oci cannot reach.
  • Container adopts merged S31's budget_expired for the aggregate-budget verdict instead of coining a second scraped name for it. A scraped label value cannot be renamed after it ships.
  • The data-error cause list runs three to six, not three to five. Step 10b asserts a missing-binding cause the spec does not carry.

Why this is separate

!2240 changes the S32 specification contract for merged OCI tag and referrers collections. This MR changes the plan that assigns implementation work. Combining them would mix the required behavior with later implementation ownership and sequencing.

!2069 (merged) owned the Step 8, Step 9, and Step 10b corrections and has merged. This branch carries none of them.

Scope beyond the S32 plan

This MR edits docs/plans/2026-09-04-virtual-collection-mode.md. That merged plan cited a line of the S32 plan three times, and this branch is what moved the line. The citations now name the Step 11 Shared seams entry rather than a line number, so the same deletion cannot break them again. Fixing them here rather than in a follow-up keeps the merged plan from quoting text that is not there.

Size

The correction needs one coherent update of the S32 plan. Splitting it would leave stale ownership and dependency facts in the plan. The diff is 545 added and 341 removed lines, all documentation:

File Added Removed
docs/plans/2026-08-27-s32-container-virtual.md 533 331
docs/plans/2026-09-04-virtual-collection-mode.md 11 9
docs/plans/README.md 1 1

Checks

git diff --check passes. The full commit hook chain runs during the commit. markdownlint-cli2, lychee, and vale pass on all three files.

Related to #291

Edited by Radamanthus Batnag

Merge request reports

Loading
Loading