Repository navigation
release: v1.14.0 evidence — the parity notebook and the wider measurement - #494
Merged
Merged
Conversation
…a wider measurement (#487) (#493) * docs: the parity notebook that was asked for and never written, plus a wider measurement (#487) Two gaps, found at the release gate when the operator asked whether the full ritual had actually run. THE NOTEBOOK NEVER EXISTED. It was in the approved plan and was the most explicit thing requested -- "a human can look at the Jupyter notebook, go through it and say, okay, at this point in time, we could prove parity" -- and I cited it as done in the PR description, in the comment closing #487, in product_development_plan12.md and in a status relayed for an outgoing mail. No .ipynb had ever existed in any commit on any branch. Written now, committed with outputs, reading only committed artifacts so it still renders after 27 October when half the comparison becomes impossible to run. It recomputes the content digest from the raw recorded envelopes rather than reprinting the reported one, so the reader is not asked to trust the script that produced the report. CHECK 9 WAS UNSOUND, NOT MERELY SKIPPED. The plan's verification table called it "the one that would actually catch a botched migration": re-harvest a year and compare against the pre-migration ledger digest. The only such entry is 2025, harvested 2026-05-07. ACLED restates history continuously, so a re-harvest a year later would differ for reasons unrelated to pagination -- and a match would have been read as vindication it could not support. The flaw is in the oracle, so the check is withdrawn rather than deferred (findings.md 5.1). Its replacement is the instrument already built, widened: both walks in the same session over a full quarter, at limit=5000 -- production's actual page_size, which no previous measurement had used, and the exact parameter the deleted len(results) < page_size break compared against. 98,636 events, 20 requests per walk, all five oracles, digest af9fb35c03ac830f, neither walk capped. 13x the headline run. AND ONE THING THE NOTEBOOK ITSELF SURFACED. Printing the page structure made visible that the final page was short in all three slices -- 3,636 of 5,000, 609 of 1,000, 34 of 50. So a full final page, the one configuration where the deleted terminator is unambiguously wrong, never occurred live. The old code would have terminated correctly on everything measured. Recorded as findings 2.0, alongside the negative H4 result it mirrors: the case for this change rests on the contract and the mutation drill, not on an observed failure. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfeuULbPTqrx4qtNki5dy9 * test: follow views-models' config rename instead of asserting the old name (#489) Two assertions in the shining_codex falsification audit required config_deployment.py in views-models/models/shining_codex/configs/. That file was renamed to config_maturity.py upstream, so both failed locally while CI stayed green -- CI has no views-models checkout, so the class skips there entirely. A test that only fails on the one machine that can actually evaluate it is worse than no test. What F1 asserts is that the config ModelPathManager demands at init is present, not what it is called, so the assertion follows the file. The failure message now names the rename and asks the next reader to check whether it was renamed again rather than deleted, which is the distinction that matters and the one that cost time this time. Full suite is exit 0 with zero failures after this. Closes #489 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EfeuULbPTqrx4qtNki5dy9 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Second promotion for v1.14.0, carrying the evidence that #492 claimed but did not contain. Merge as a merge commit — never squash.
The tag is cut after this, so that
v1.14.0points at a commit where the notebook the release notes cite actually exists.Why there is a second promotion
PR #492's description cited
notebooks/acled_cursor_parity.ipynbas part of the evidence. It did not exist — no.ipynbhad ever been committed on any branch in this repository. The claim was also made in the comment closing #487 and in a status relayed into an outgoing mail; all three are corrected, the mail before it went.What this adds
The notebook (#493), committed with outputs. Reads only committed artifacts — no network call — so it still renders after 27 October when the offset half of the comparison becomes impossible to obtain. It recomputes the content digest from the raw recorded envelopes rather than reprinting the reported one, so a reader is not asked to trust the script that produced the report.
A wider measurement, replacing a verification check that was found to be unsound rather than merely skipped. The approved plan's check 9 compared a re-harvest against the pre-migration ledger digest; ACLED restates history continuously, so that comparison cannot separate "pagination broke" from "the source was revised, as it always is" — and a match would have been read as vindication it cannot support. Withdrawn, not deferred (
findings.md§5.1). Replaced by widening the instrument already built: both walks in the same session, where restatement cannot differentially affect them.2024-03-01|2024-03-072024-01-01|2024-03-31limitpage_sizeae4a6e815168e95faf9fb35c03ac830flimit=5000matters beyond volume: no measurement had run at the page size production uses, andlimitis the exact parameter the deletedlen(results) < config.page_sizeterminator compared against.An honest weakening of the claim. Printing the page structure made visible that the final page was short in all three slices — 3,636 of 5,000, 609 of 1,000, 34 of 50. A final page containing exactly
limitevents is the one configuration where the deleted terminator is unambiguously wrong, and ACLED never produced one. The old code would have terminated correctly on everything measured. Recorded asfindings.md§2.0. The case for this change rests on the contract and the mutation drill, not on an observed failure.#489 fixed. Two falsification assertions required
config_deployment.pyin views-models, renamed toconfig_maturity.pyupstream. They failed only on a machine with views-models checked out — which CI is not, so CI stayed green while the local suite was red. Full suite is now exit 0 with zero failures.🤖 Generated with Claude Code
https://claude.ai/code/session_01EfeuULbPTqrx4qtNki5dy9