fix(readme): the paragraph still argued the premise our own commit retired
README.md opened the egress gap with "It is not an id question at all -- the two
runtimes carry different tables, cut at different granularities", and sent the
reader to scope_planned.blockers as the authority. Since 4356caa that blocker
opens reason (1) with "NO ID SPACE ON THE COMMONS SIDE. This is the hard
blocker." Before 0.7.2 the README was out of date; after it, two files on a
public remote disagreed, and it was our commit that made them.
The paragraph now carries the three measured, independent reasons from
docs/secret-egress-divergence.md. The counts survived the falsification, so
"different tables" and 19-against-25 are kept; only "cut at different
granularities" and the pending-reconciliation claim are gone. It deliberately
omits the outgoing question's status (true on the day written, untested by
anything, and dated in the manifest) and the standing entry_points_by_scope
requirement (a requirement, not a fourth reason).
conformance/manifest.json 0.5.1 -> 0.5.2 in the same release: the blocker
misquoted the contract it cites, rendering the value without the backticks the
field carries around `order`. The data file is unchanged and was never wrong.
Round-trip proved byte-neutrality before the edit; the read-back matched the
decoded string against the data file that owns it, since json.tool passes on
wrong escaping.
No case minted, no data file touched, no id proposed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SZ5vrpu2kxcRktiW59b7s3
This commit is contained in:
parent
4356caa689
commit
c6c22de70f
3 changed files with 54 additions and 8 deletions
35
CHANGELOG.md
35
CHANGELOG.md
|
|
@ -9,6 +9,41 @@ Versioning note: the repository tag versions **the contract** (file set, key nam
|
|||
case ids, disposition semantics). Each JSON file additionally carries its own
|
||||
`"version"` field, bumped when that file changes.
|
||||
|
||||
## [0.7.3] — 2026-08-13
|
||||
|
||||
**The README still argued the premise 0.7.2 retired, and the two files sat on a public remote
|
||||
disagreeing.** `README.md` opened the egress gap with "It is not an id question at all"; the
|
||||
blocker it sends the reader to for authority now opens reason (1) with "NO ID SPACE ON THE
|
||||
COMMONS SIDE. This is the hard blocker." Before 0.7.2 the README was merely out of date. After
|
||||
it, our own commit had made it contradictory — the same defect class 0.7.1 existed to close. No
|
||||
data moves, no case is minted, no id is proposed.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **The README now carries the three measured reasons instead of the retired one.** (1) No id
|
||||
space on the commons side — the hard blocker, and the only one an answer can resolve; the
|
||||
answer belongs to the runtimes that own the seeds. (2) Match semantics disagree, and an id
|
||||
space would not close it. (3) Membership diverges in both directions and the divergence is
|
||||
inherited: the two sides hold 19 entries and 25, and they are ports of two *different* source
|
||||
tables in one source repository. The counts survived the falsification; only the causal claim
|
||||
fell, so `different tables` is kept and "cut at different granularities" is gone. The
|
||||
paragraph deliberately does **not** restate the outgoing question's status: that is true on
|
||||
the day it is written, nothing tests README prose, and `conformance/manifest.json` already
|
||||
carries the date. The standing `entry_points_by_scope` requirement is likewise left out rather
|
||||
than printed as a fourth reason.
|
||||
|
||||
- **`conformance/manifest.json` 0.5.1 → 0.5.2: the blocker misquoted the contract it cites.** It
|
||||
rendered the field as `match_semantics: "… evaluated in ascending order"`; the value in
|
||||
`signatures/secret-egress.json` ends ``ascending `order` `` — the backticks are the field's
|
||||
own. A blocker that misquotes the semantics it is blocking on invites a consumer to implement
|
||||
the wrong one. The data file is
|
||||
unchanged and was never wrong — only the quotation of it was, which `scope_planned.$comment`
|
||||
now records. Verified by reading the edited file back from disk and matching the decoded
|
||||
string against the data file that owns it; `json.tool` passes on wrong escaping.
|
||||
|
||||
Known and deliberately left: `docs/secret-egress-divergence.md` renders the same value without
|
||||
its backticks. That document is `Status: informative` and was outside this release's scope.
|
||||
|
||||
## [0.7.2] — 2026-08-13
|
||||
|
||||
**`scope_planned.blockers` named the premise that `docs/secret-egress-divergence.md`
|
||||
|
|
|
|||
21
README.md
21
README.md
|
|
@ -109,11 +109,22 @@ number would misreport all three:
|
|||
missing **name** rather than a missing capability. It lapses the moment that runtime names
|
||||
its label and the alias is added.
|
||||
|
||||
One case remains unshipped, for the secret-egress table, and it is not blocked on effort.
|
||||
It is not an id question at all — the two runtimes carry *different tables*, 19 entries
|
||||
against 25, cut at different granularities, and a shared id space presupposes a reconciliation
|
||||
nobody has performed. `conformance/manifest.json` records that blocker under
|
||||
`scope_planned.blockers`, measured, so the gap is visible rather than inferred.
|
||||
One case remains unshipped, for the secret-egress table, and it is not blocked on effort. The
|
||||
reasons are three, they were measured, and they are independent — none of them dissolves under
|
||||
anything this repository can run alone. **(1) There is no id space on the commons side.** The
|
||||
seed this table was ported from carries a name and a pattern per entry and nothing else, so its
|
||||
entries are keyed by human-readable name while the other runtime emits `egress:<id>` labels —
|
||||
and a fixture names labels. This is the hard blocker, and the only one of the three that an
|
||||
answer can resolve; the answer belongs to the runtimes that own the seeds, not to a name coined
|
||||
here. **(2) Match semantics disagree**, and an id space would not close it: this table declares
|
||||
first-match-wins with `ordering.normative: true`, the other runtime reports every match, and one
|
||||
witness — an `Authorization` header holding a three-part JWT — produces one label here and two
|
||||
there. That difference is exactly what an `expected.json` encodes. **(3) Membership diverges in
|
||||
both directions, and the divergence is inherited rather than introduced.** The two sides hold 19
|
||||
entries and 25, but they are ports of two *different* source tables in one source repository, so
|
||||
re-measuring either port cannot close it. `conformance/manifest.json` records all three under
|
||||
`scope_planned.blockers`, and the method behind every number is in
|
||||
[the divergence measurement](docs/secret-egress-divergence.md).
|
||||
|
||||
The carrier blocker closed in v0.5.0 and is kept, with its retired text, under
|
||||
`scope_planned.blockers_resolved` — including the correction one runtime volunteered against
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue