Skip to content

Renewable rows and larger record histories (Pod 0.21.12) - #112

Merged
j3w1 merged 8 commits into
mainfrom
orca/pes-109-completed-closes
Oct 23, 2026
Merged

j3w1 merged 8 commits into
mainfrom
orca/pes-109-completed-closes

Conversation

@j3w1

@j3w1 j3w1 commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Pod 0.21.12: the records milestone of #109. Bookkeeping limits no longer strand a live objective: receipt histories hold 64, any row can be renewed identically, and a full map can still record its next required finding.

Closure without the owner (#109 R4, PoD#4) is the next milestone (0.21.13) and is not in this PR. This PR does not close #109.

What changes

  • R150, receipts (PoD#1). Each row retains up to 64 receipts; one write still selects at most 16. The 65th refuses atomically with the exact renewal request. A review admission reserves one receipt and 32 finding records for every pending serving attempt, so a consumable review result always fits. Ordinary checkpoint receipts cannot take reserved slots.
  • R151, identical renewal (PoD#2). A checkpoint renew entry replaces any row of any kind or provenance with an identical copy: a fresh id, a renews lineage and no owner decision. The old row becomes renewed, a terminal state, and keeps every receipt, finding, acceptance and decision. Waits, effective parents, correction order and the PoD mapping follow the new row. Renewal never copies proof, never ticks or unticks a PoD, and refuses any changed definition field. Renewal waits until every serving result is consumed or dispositioned.
  • R152, rows (PoD#3). A map holds 128 live rows and 512 in total. Withdrawn and renewed rows leave the live count, may be omitted from restatements, and move to immutable history positions, as do triaged findings. A report's update is normalized before triage, so a large map records a finding group from a small request. The physical 512 KiB context bound is unchanged.

Accepted limitation

A review whose report Pod keeps refusing for route mismatch still holds its reserved slots and the renewal hold. The existing route-decision rule already holds that objective, so this adds no new stranding. That route-decision hold is pre-existing and will be tracked separately.

Evidence (separate facts)

  • Implementation: done by supervised workers plus coordinator corrections. Worker success is not acceptance.
  • Local focused checks: 27 affected modules (470 tests) pass on Python 3.13 and 3.14 at the head commit. Skill validation, inventory, source audit, suite-lane check, compile and whitespace also pass.
  • Full local gate: tools/gates.py on the exact head passed on Python 3.13 (411 s) and 3.14 (423 s). Each run had 3107 tests with 0 failures, and all 11 gates passed.
  • Independent review: six rounds by fresh reviewers under the installed 0.21.11 mechanism, with required corrections fixed in between. The final audit of the head returned ACCEPT with two advisories.
  • #164 shape: a sanitized fixture with 96 rows, 53 corrections and a context near the physical bound. It consumes the same settled three-finding review into one correction group. After that, the next review asks for one mechanical renewal, and further groups record on the renewed row.
  • #208 shape (PoD#1, 16 → 17 receipts): proved by a disposable probe on the frozen head under both interpreters. No tracked test covers this exact shape yet; one follows in 0.21.13.
  • Hosted CI, merge, installation and live recovery (R6): not run yet.

🤖 Generated with Claude Code

j3w1 and others added 8 commits October 22, 2026 23:39
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A recorded route mismatch no longer releases a review's reserved capacity
or its renewal hold, because Pod still accepts a later report whose route
matches. The case stays an accepted limitation already held by the route
decision. An own-report overflow now names the remaining route instead of
asking the write to consume itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove the own-report overflow advice, which also fired for
implementation and reserved reports with false causes, and return the
exact renewal request when no other serving report is pending. Align
scenario A502 with R150's route-mismatch limitation and keep test
comments neutral.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@j3w1
j3w1 merged commit 2bbad93 into main Oct 23, 2026
8 checks passed
Sign up for free to 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.

PES: Completed work closes itself: renewable rows, larger histories, no owner step

1 participant