The taskgraph validator rejects impact: release (valid: isolated, component, phase, project). The residue task is minor doc remainders across the docs — component is the right categorical estimate. Pre-existing from wave 12's docs-consistency disposition; surfaced by the wave-13 graph validation.
3.1 KiB
3.1 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level |
|---|---|---|---|---|---|---|---|
| n-cleanup-residue | review-001 residue — the recorded N remainders (N-11/N-12/N-14) | pending | narrow | low | component | implementation |
Description
The recorded post-release home for review-001's N observations that neither landed in waves 8-11 nor were doc-trivial to close (2026-10-16 disposition — the full record is review-001's "Wave-12 disposition of the named residue" section). No urgency: each is minor, and none is a correctness defect. The items, re-verified against the post-split tree at disposition time:
- The three guarded
expects in the put handler (src/ops/put.rs:326, 375, 486 — each inside a match guard proving the value present). Closing them is an error-surface decision (an unreachable-arm error or a restructuring), not a mechanical swap. - The release-mode insert-over-collision posture (src/ops/tokens.rs:225, 244 — debug_assert-only; silently dropping a held guard). The CSPRNG collision posture (fail loudly in release vs. replace) is a contract decision on the mint path.
- The mint refusals' semantic borrow of
Error::Io(src/ops/tokens.rs:390-424 — fleet/custodial policy refusals are authorization-shape errors). N-12 unchanged in the variant; wave 10 already fixed the texts. sweep_window_fleetdiscardspin_reap's count (src/store/sweep.rs:535-536) — the GC-of-GC outcome is unobservable; surfacing it is aSweepReportpublic-shape change.RegistryCore::arbitrate's deadErr(src/gc.rs:610) — never returnsErr; the trait/error surface should say so.- The
FleetKvShape/FleetLargeShapederive asymmetry (src/store/construct.rs:148 vs :165 — one derivesPartialEq/Eq, the other does not, with no equality use in either). - sqlite's
nanos_to_timei64::MIN debug-panic trap (src/sqlite.rs:100-106) — the pg twins moved to testing.rs; this one is test-only used and still carries the latent negation overflow (worth relocating to the test module while there). - The nullable
value/visible_aftercolumns in sqlite's fresh schemas (src/sqlite.rs:166-170, 507-510) — cheap in the pre-release window (CREATE TABLE IF NOT EXISTSmeans only fresh databases pick the constraint up). put_handle's ~150-line body (src/ops/put.rs:254) — the 50-line guideline exceeded 3x; a restructure, deliberate and test-anchored.- The ops fleet-fixture boilerplate repeated across the pg test tree (src/ops/tests.rs's postgres harness arms, the pg_lo/postgres testing helpers, the conformance columns' fresh_site twins).
Acceptance Criteria
- Each recorded item above is either closed (with its named decision recorded on the site) or consciously re-recorded with the reason
- The public surface changes (
SweepReportshape, error variants) each carry their own note in the release-facing docs they touch
References
- docs/reviews/001-storage-surface-general-review.md (the wave-12 disposition section; the original N-8..N-14 observations)
- docs/plans/implementation.md (wave 12 context)
Notes
To be filled by implementation agent
Summary
To be filled on completion