pgw#958: the three cell-identity counters restart at v1, and ck6 is reverted - #504
Merged
Conversation
…everted DESIGN-RULINGS §1.27(g) — "every version counter in this codebase starts at v1". `cell_key.KEY_SCHEME` ck6 -> ck1, `env_seal.SEAL_VERSION` 6 -> 1, `guard_closure.MANIFEST_VERSION` 3 -> 1, in ONE commit with every test pin that moves with them: all three are digest inputs, so splitting them means three fleet-wide re-keys instead of one. THE COLLISION WITH pgw#990, AS PAUL RULED IT (2026-08-07): *"the ck6 is wrong and can be removed / deleted just fine. The v1 is the correct one."* PR #512 landed `ck5` -> `ck6` on master (88ee170) while this branch was held. The bump is reverted rather than carried forward, and the cells it keyed are the deletable artifacts the ruling says they are. pgw#990's OTHER TWO DECISIONS ARE UNTOUCHED — the ruling is about the counter's VALUE, not about them, and both are load-bearing: * `code_closure` stays OUT of the key. Identity is the COMPUTATION; a 147-file content hash re-keyed the fleet for edits that cannot change a traced graph. * `is_key` stays scheme-AGNOSTIC, byte-identical to tensorhub's `compilecache.IsCellKey`, for the reason th#1183 gives. Reverting it to a ck1-only check — which is what this branch carried before the rebase — would answer every foreign-scheme cell `unreadable_cell_key`, a refusal on a LABEL that no axis justifies. The three test files that conflicted are resolved that way: ck1 is what this runtime MINTS, and ck2..ck6 tokens stay key-SHAPED and are ruled on by axes. THE PURGE IS DONE, NOT ASSUMED. Re-issuing `ck1` is only honest once the corpus that already used it is gone — the corrected 2026-08-06 census found 71 ck1 cells on the master stack and 2 on dev, minted 2026-07-21..29, so the collision this issue was filed about was already on disk. §1.27(g) requires a persisted counter be reset BY MIGRATION with a stated cost, and the hub exposes no DELETE for `cell_store` at all, so the purge could never be a pgw action: it is tensorhub migration `20260806T064516Z-e68cfe98` (th#1636, merged `b424c1eb`), and it has APPLIED to both standing stacks — dev 2026-08-06 07:11:33Z, master 2026-08-06 20:34:11Z, verified in `public.migrations` rather than inferred from the merge. Post-purge census, read the same way: master cell_store/receipts/demand/revocations all 0; dev holds ONE ck5 row re-minted 2026-08-06 14:43 by a 0.93.1 pod, which under ck1 can only MISS (`cell_key.py:55-59` — a wrong key is never a refusal) and is left for the `cas-gc` follow-up. `cell_mint_obligations` is deliberately untouched: no `cell_key` column, no ambiguity. Also here, because they are the same "no stale numeral" sweep: the `aot_wrapper_split` telemetry label `version="v2"` becomes `lever="runimpl"` (it names which split fired and was never a version), and the ck5/ck6 numerals left in prose across `aot_cells`, `aot_serve`, `aot_package`, `aot_flatten`, `graph_hash`, `compile_cache` and the unreached-surface baseline are retired. `warm_spans.py` keeps its `ck5-a53e02a7…` verbatim — that is a quoted pod observation, not a live scheme reference. No ordering comparison anywhere reads any of the three; the only version compare in the tree is `aot_resume.BANK_V`, already an equality check at 1. `COZY_CELL_EPOCH` remains the designed disown-everything lever, so these counters never move for recall reasons again.
PaulFidika
force-pushed
the
958-cell-counter-v1
branch
from
August 7, 2026 05:40
61f3b2f to
d5018b2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebased onto
masterand rewritten for Paul's 2026-08-07 ruling. This PR was held by pgw#958's own step-3 sequencing; that hold is now released (see Purge below).The ruling this executes
PR #512 landed
ck5→ck6on master (88ee1709) while this branch was blocked. That bump is reverted, not carried forward, and the cells it keyed are the deletable artifacts the ruling says they are.cell_key.KEY_SCHEMEck6→ck1,env_seal.SEAL_VERSION6→1,guard_closure.MANIFEST_VERSION3→1— in one commit with every test pin that moves with them, because all three are digest inputs and splitting them means three fleet-wide re-keys instead of one. DESIGN-RULINGS §1.27(g).pgw#990's other two decisions are deliberately KEPT
The ruling is about the counter's value, not about these, and both are load-bearing. The three test-file conflicts were resolved to preserve them:
code_closurestays OUT of the key. Identity is the COMPUTATION; a 147-file content hash re-keyed the whole fleet for edits that cannot change a traced graph.is_keystays scheme-AGNOSTIC, byte-identical to tensorhub'scompilecache.IsCellKey, for the reason th#1183 gives. Reverting it to the ck1-only check this branch carried before the rebase would answer every foreign-scheme cellunreadable_cell_key— a refusal on a label that no axis justifies. So:ck1is what this runtime MINTS, whileck2..ck6tokens stay key-SHAPED and are ruled on by axes.The purge is DONE, not assumed
Re-issuing
ck1is only honest once the corpus that already used it is gone — the corrected census found 71 ck1 cells on the master stack and 2 on dev, minted 2026-07-21..29, so the collision this issue was filed about was already on disk. §1.27(g) requires a persisted counter be reset by migration, and the hub exposes noDELETEforcell_storeat all, so this could never be a pgw action.It is tensorhub migration
20260806T064516Z-e68cfe98(th#1636, mergedb424c1eb), and it has applied to both standing stacks — verified inpublic.migrations, not inferred from the merge:ck5-a53e02a7…)Dev's single row was re-minted 2026-08-06 14:43 by a 0.93.1 pod, after the purge. Under
ck1it can only MISS (cell_key.py:55-59— a wrong key is never a refusal), so it is left for thecas-gcoperator follow-up rather than a second migration.cell_mint_obligationsis deliberately untouched: nocell_keycolumn, no ambiguity. No bucket outside the cell prefix is touched by anything here.Also in this sweep
aot_wrapper_split's telemetry labelversion="v2"→lever="runimpl"(it names which split fired and was never a version), and theck5/ck6numerals left in prose acrossaot_cells,aot_serve,aot_package,aot_flatten,graph_hash,compile_cacheand the unreached-surface baseline are retired.warm_spans.pykeeps itsck5-a53e02a7…verbatim — that is a quoted pod observation, not a live scheme reference.No ordering comparison anywhere reads any of the three; the only version compare in the tree is
aot_resume.BANK_V, already an equality check at 1.COZY_CELL_EPOCHremains the designed disown-everything lever, so these counters never move for recall reasons again.Gates
Conflicted files re-run after resolution:
test_cell_key.py+test_determinism_pgw694.py+test_recipe_identity.py— 47 passed. Fulltests/+tests_v2/reported in a follow-up comment.No version bump and no
CHANGELOG.mdedit —changelog.d/pgw958.mdis this lane's fragment.