Section 02 swapped: a resolution record now checks with the version the page tells you to install - #101
Closed
BTCBoyd wants to merge 4 commits into
Closed
Conversation
Committed alone, ahead of the copy change, because npmLatest is compared by several markers and mixing the two makes the copy commit unreviewable. npmLatest 1.0.0-rc.12 -> 1.0.0-rc.21 npmLatestExports now includes resolutionPayload The withdrawal band is unchanged: resolutionPayload is still absent from rc.9 through rc.12. What changed is that latest no longer points inside it.
…he page tells you to install
All six parts in one commit, because no ordering buys anything and part 4
without parts 1-3 is green and wrong. No check reads the words, so writing them
together is the only thing that makes the set atomic.
1 heading "You cannot check a resolution record with the
version this page tells you to install" becomes
"A resolution record now checks ... It did not, for
four releases."
2 consequence sentence 1 "The version npm install serves does not export it"
becomes "serves exports it. For four releases it
did not."
3 consequence sentence 2 the reader-cannot-check sentence becomes the record
of who could and who could not: the 122 signed
resolution records were always rebuildable by
someone who installed @rc, and were not by someone
who followed the instruction on this page.
4 marker, both sites latest-does-not-export -> latest-exports
5 "What to do about it" it told a reader to accept the gap and said the gap
closes when latest moves past the band. It has. The
paragraph now says nothing needs doing and why the
page stays pinned to latest regardless.
6 npmLatest spans 1.0.0-rc.12 -> 1.0.0-rc.21, both
THE FOUR-RELEASE GAP IS RECORDED, NOT DELETED. The section stays because a
section that vanishes when a defect clears leaves a reader unable to tell a page
that was always right from a page that was corrected. resolutionPayload was
still absent from rc.9 through rc.12 and the withdrawal still appears in no
changelog; what changed is which release a reader receives.
Verified in the INDEX before committing, per CONVENTIONS 18: all six present in
the staged bytes, the old heading gone, and zero occurrences of the old marker
or the old span value.
…ation
The held plan enumerated six parts and named the two dependents that must change
with them. IT MISSED TWO SENTENCES, ON TWO PAGES, AND ONE OF THEM WAS INSIDE THE
SECTION BEING SWAPPED.
verify.html "We hold 122 signed resolution records that a reader on
1.0.0-rc.21 has no route to."
That is the failure the whole mechanism was built to prevent, in the one place
it was supposed to be watched: the data-measured SPAN inside the sentence
updated itself to rc.21 while the SENTENCE inverted in meaning and did not.
Part 6 moved the span. Nothing moved the words around it.
index.html "A further 122 resolution records are rebuildable at some
published version but not at the one npm install serves."
Both rewritten. The count is now 0 and both pages say so in the past tense, with
the four-release history kept rather than deleted.
RE-MEASURED signed-record-coverage against the stores, which are reachable:
resolution.rebuildableAtNpmLatest false -> true
notRebuildableAtNpmLatest kinds [resolution] count 122
-> kinds [] count 0
neverRebuildable UNCHANGED, instructed and report, 3089,
27.0%. No route at ANY version, so the tag
move cannot touch it.
AND THE CHECK CAUGHT ME DROPPING A DECLARED FIGURE. Rewriting index.html removed
the kinds span, and check-measured-figures refused: "Dropping a measured claim
must not be something an edit does quietly." Correct. The kinds list is now empty
because the count is 0, so there is no class name to show and the declaration's
own reason -- a count with no class name cannot be acted on -- no longer has a
subject. Removed in this commit with that reason recorded, which is what the
check's message asks for.
The count declaration is KEPT AT ZERO rather than dropped: a page that stops
citing a figure when it clears cannot show a reader that it ever was not zero.
…85 BOTH FOUND BY THE NEW INSTRUMENT, not by reading. sentences-at-risk.mjs, run against the pre-move baseline, enumerated three sentences containing a span whose value the tag move changed. Two were the ones already fixed. The third was live on this branch and false: "npm's latest tag SITS INSIDE THAT BAND, at 1.0.0-rc.21" rc.21 is not inside rc.9 through rc.12. The span updated itself to rc.21 and the sentence around it did not, which is the exact class this branch already corrected twice and missed a third time. Now reads "no longer points inside that band". THE INSTRUMENT FOUND IN ONE RUN WHAT THREE READINGS OF THE SAME SECTION DID NOT. AND A MALFORMED TAG, ON MASTER, SINCE #85: <p data-derived-claim="...latest-does-not-export(resolutionPayload)" <strong> The closing angle bracket is missing. #85 added the marker by replacing '<p>' with '<p ' + attribute + ' ', which drops the '>'. The sibling <h4> marker was added by a different substitution and is well formed, which is why one is broken and one is not. It has been on the served page since #85 merged. NOTHING CAUGHT IT: no check in this repository parses HTML, so a broken tag is invisible to all fourteen. A browser recovers from it, which is why it is invisible to a reader too. Found only because the sentence beside it was being read for a different reason. That is not a method.
This was referenced Aug 23, 2026
Member
Author
|
Closing in favour of #104, which carries this branch's commits unchanged. Ruling from Boyd: #101 and #103 are combined because they are one change to the world. A repository state with one landed and not the other is a state that should not exist, so they land together or not at all. The branch protection is correct and was not relaxed. The measurement that forced it: each was red for the other's reasons.
Neither could go green first, so neither could merge first. Combined, the merge is clean and the suite passes. Nothing from this branch is dropped; its commits are in #104's history. |
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.
The held swap, run after the tag moved. Stacked on
check/latest-exports-predicate(#96) — that PR carries thelatest-exportspredicate this branch names. Merge #96 first.Before: red, which is the starting condition the rewrite assumes
Three findings, exactly as the rc.21 simulation predicted last block.
After: green, and both markers assert the affirmative
13 of 14 checks green. The one red is
sync-engine-version— precondition 6, thescripts/package.jsonpin still at rc.12. That is a separate change and the check's own output says why: re-verify the credential expectations against rc.21 first.The six parts were not all of them
The held plan enumerated six and named two dependents. It missed two sentences, and one was inside the section being swapped:
That is the failure the mechanism exists to prevent, in the one place it was supposed to be watched. The
data-measuredspan updated itself to rc.21 while the sentence inverted in meaning and did not. Part 6 moved the span; nothing moved the words around it.index.htmlcarried the same shape. Both rewritten, count now 0, four-release history kept rather than deleted.The check caught me dropping a declared figure
Rewriting
index.htmlremoved thekindsspan, andcheck-measured-figuresrefused: "Dropping a measured claim must not be something an edit does quietly."Correct. The kinds list is empty now that the count is 0, so the declaration's own reason — a count with no class name cannot be acted on — has no subject. Removed in this commit, with that reason recorded, which is what the check's message asks for.
The count declaration is kept at zero rather than dropped: a page that stops citing a figure when it clears cannot show a reader it ever was not zero.
Commits
engine-payload-exports— alone, ahead of the copy