persona-harness 0.8.0-beta.21 → 0.8.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ not become current merely because they remain under `docs/current/`.
41
41
  [`docs/releases/package-index.md`](../releases/package-index.md).
42
42
  - Release operations and workflow-compatible release notes:
43
43
  [`release/README.md`](release/README.md) and
44
- [`release/v0.8.0-beta.19-release-notes.md`](release/v0.8.0-beta.19-release-notes.md).
44
+ [`release/v0.8.0-beta.23-release-notes.md`](release/v0.8.0-beta.23-release-notes.md).
45
45
  - P3 integrity roadmap and release hold:
46
46
  [`p3-integrity-roadmap.md`](p3-integrity-roadmap.md).
47
47
  - P3-2 closure authority candidate:
@@ -118,23 +118,29 @@ not become current merely because they remain under `docs/current/`.
118
118
  policy artifact verifier remains read-only/non-authoritative, while local or
119
119
  caller-provided staged-package evidence remains
120
120
  `artifact-provenance-unavailable`.
121
- - `0.8.0-beta.1` through `0.8.0-beta.17` are historical staging-only Consumer
121
+ - `0.8.0-beta.1` through `0.8.0-beta.20` are historical staging-only Consumer
122
122
  Authority Beta evidence. Beta.16's external observer accepted an exit-zero
123
123
  artifact download without an exact nonempty ZIP postcondition, so it
124
- provides no reusable beta.19 transport, verification, Finish, consumption, or
125
- replay fact. Beta.17's Node20/npm10 registry PUT was authorization-shaped,
126
- not a package-absence claim. Beta.18 is immutable staging evidence: its
127
- registry version, selected tag, SHA-1/SRI, raw SHA-256, and portable content
128
- identity matched frozen canonical facts, but its readback incorrectly required
129
- an unsupported registry `gitHead` metadata field. `0.8.0-beta.19` is the current source-preparation
130
- candidate. It makes no package, tag, staging mapping,
131
- GitHub release, original signed consumer artifact, promotion, Stable/GA, or
132
- Finish authority claim. Its pre-fixture gate requires a package-visible
133
- observer credential-preflight, separate caller/reusable signer binding,
134
- portable canonical package-content identity, and
135
- the complete public Java/Spring lifecycle to reach only
136
- `trusted-authority-required` in
137
- [`release/v0.8.0-beta.19-release-notes.md`](release/v0.8.0-beta.19-release-notes.md).
124
+ provides no reusable transport, verification, Finish, consumption, or replay
125
+ fact. Beta.17's Node20/npm10 registry PUT was authorization-shaped, not a
126
+ package-absence claim. Beta.18 is immutable staging evidence: its registry
127
+ version, selected tag, SHA-1/SRI, raw SHA-256, and portable content identity
128
+ matched frozen canonical facts, but its readback incorrectly required an
129
+ unsupported registry `gitHead` metadata field. `0.8.0-beta.21` is
130
+ non-reusable temporal final-observer evidence because online crypto and
131
+ identity bindings completed only after the leaf certificate window expired.
132
+ `0.8.0-beta.22` is historical non-reusable final-observer evidence: host
133
+ `gh`/XDG state created an untracked `.local` entry after the final commit.
134
+ `0.8.0-beta.23` is the current procedure-only source candidate. It makes no
135
+ package, tag, staging mapping, GitHub release, original signed consumer
136
+ artifact, promotion, Stable/GA, or Finish authority claim. Its pre-fixture
137
+ gate requires source-bound bootstrap before one final fixture commit, retention
138
+ of that same unpushed commit as the installed consumer CWD/HEAD, a
139
+ package-visible observer credential preflight, separate caller/reusable signer
140
+ binding, portable canonical package-content identity, and the complete public
141
+ Java/Spring lifecycle to reach only `trusted-authority-required`, plus v3
142
+ host-state isolation outside the consumer realpath, in
143
+ [`release/v0.8.0-beta.23-release-notes.md`](release/v0.8.0-beta.23-release-notes.md).
138
144
  - P3-9 permits separately dispatched P2 source, measurement, or report-only
139
145
  investigation. The sole product-scope exception is
140
146
  [`korean-cli-help-scope-authorization.md`](korean-cli-help-scope-authorization.md)
@@ -57,8 +57,12 @@ current decision inputs.
57
57
  | 0.8.0-beta.17 acceptance record | `docs/current/release/consumer-authority-beta17-acceptance.json` | Historical machine-readable source/packed lifecycle, package-root, canonical tar/content identity, bounded command/transport parser preflights, safe ZIP handoff, modeled exact-once Finish/replay, privacy, and one superseded current-version artifact residual. |
58
58
  | 0.8.0-beta.18 Consumer Authority Beta | `docs/current/release/v0.8.0-beta.18-release-notes.md` | Historical staging evidence: registry bytes matched canonical facts, but an unsupported registry gitHead predicate blocked workflow readback. |
59
59
  | 0.8.0-beta.18 acceptance record | `docs/current/release/consumer-authority-beta18-acceptance.json` | Historical machine-readable source/packed lifecycle and Node20 packer to Node24 publisher contract. |
60
- | 0.8.0-beta.19 Consumer Authority Beta | `docs/current/release/v0.8.0-beta.19-release-notes.md` | Current source-preparation record for workflow-bound canonical source to registry-byte reconciliation and sanitized failed-readback evidence. |
61
- | 0.8.0-beta.19 acceptance record | `docs/current/release/consumer-authority-beta19-acceptance.json` | Machine-readable source/packed lifecycle, package-root, canonical publisher, bounded observer plans, and one hosted registry reconciliation residual. |
60
+ | 0.8.0-beta.19 Consumer Authority Beta | `docs/current/release/v0.8.0-beta.19-release-notes.md` | Historical staging evidence; its registry/original artifact checks do not supply current-version authority completion. |
61
+ | 0.8.0-beta.19 acceptance record | `docs/current/release/consumer-authority-beta19-acceptance.json` | Historical machine-readable source/packed lifecycle, package-root, canonical publisher, bounded observer plans, and one superseded hosted residual. |
62
+ | 0.8.0-beta.22 Consumer Authority Beta | `docs/current/release/v0.8.0-beta.22-release-notes.md` | Historical non-reusable procedure evidence: host gh/XDG state created an untracked `.local` entry after the final commit. |
63
+ | 0.8.0-beta.22 acceptance record | `docs/current/release/consumer-authority-beta22-acceptance.json` | Historical machine-readable beta22 procedure record; it changes no product authority behavior. |
64
+ | 0.8.0-beta.23 Consumer Authority Beta | `docs/current/release/v0.8.0-beta.23-release-notes.md` | Current procedure-only candidate: v3 isolates all fifteen host-state roots outside the consumer realpath and verifies clean consumer state after every pre-push stage. |
65
+ | 0.8.0-beta.23 acceptance record | `docs/current/release/consumer-authority-beta23-acceptance.json` | Machine-readable v3 procedure, package, observer, and one hosted residual contract; it changes no product authority behavior. |
62
66
  | Consumer Authority Beta lifecycle | `docs/current/release/consumer-authority-beta.md` | Fixed tag-bound staging, exact package readback, original-artifact consumer boundary, and separately approved `next` promotion sequence. |
63
67
  | 0.7.0-rc.3 published capsule | `docs/releases/v0.7.0-rc.3/README.md` | Current npm `next` candidate with matching registry gitHead, tag, GitHub prerelease, and workflow provenance. |
64
68
  | 0.7.0-rc.2 published capsule | `docs/releases/v0.7.0-rc.2/README.md` | Previous npm `next` candidate with registry gitHead/tag/workflow provenance. |
@@ -220,7 +220,9 @@ Total indexed files: 336
220
220
  | `docs/current/release/v0.8.0-beta.16-release-notes.md` | version-specific release note | v0.8.0-beta.16 | Historical Consumer Authority Beta staging evidence. Its observer accepted an exit-zero API download without proving a nonempty exact ZIP, so it supplies no beta.17 transport or authority evidence. |
221
221
  | `docs/current/release/v0.8.0-beta.17-release-notes.md` | version-specific release note | v0.8.0-beta.17 | Historical Consumer Authority Beta source-preparation record. Its canonical tar/provenance observation ended at an authorization-shaped registry response and makes no package-absence, promotion, or Finish authority claim. |
222
222
  | `docs/current/release/v0.8.0-beta.18-release-notes.md` | version-specific release note | v0.8.0-beta.18 | Historical immutable staging evidence. Registry bytes matched canonical facts, but an unsupported registry gitHead predicate blocked workflow readback. |
223
- | `docs/current/release/v0.8.0-beta.19-release-notes.md` | version-specific release note | v0.8.0-beta.19 | Current Consumer Authority Beta source-preparation record for workflow-bound canonical source to registry-byte reconciliation; it makes no live publish, tag, release, promotion, or Finish authority claim. |
223
+ | `docs/current/release/v0.8.0-beta.19-release-notes.md` | version-specific release note | v0.8.0-beta.19 | Historical Consumer Authority Beta staging evidence; it makes no current-version authority, consumption, replay, promotion, or Finish authority claim. |
224
+ | `docs/current/release/v0.8.0-beta.22-release-notes.md` | version-specific release note | v0.8.0-beta.22 | Historical non-reusable procedure evidence: host gh/XDG state created an untracked `.local` entry after the final commit. |
225
+ | `docs/current/release/v0.8.0-beta.23-release-notes.md` | version-specific release note | v0.8.0-beta.23 | Current procedure-only Consumer Authority Beta candidate: v3 isolates all fifteen host-state roots outside the consumer realpath and verifies clean state after every pre-push stage. |
224
226
  | `docs/current/release/consumer-authority-beta7-acceptance.json` | machine-readable release contract | v0.8.0-beta.7 | Historical source/packed lifecycle record retained with beta.7 staging evidence; it cannot satisfy beta.10 current-version authority. |
225
227
  | `docs/current/release/consumer-authority-beta8-acceptance.json` | machine-readable release contract | v0.8.0-beta.8 | Historical source/packed lifecycle and beta.7 expiry record. The later beta.8 original-artifact discovery failure is recorded by the beta.9 acceptance contract. |
226
228
  | `docs/current/release/consumer-authority-beta9-acceptance.json` | machine-readable release contract | v0.8.0-beta.9 | Historical source/packed lifecycle record for beta.8 discovery-to-binding; beta.9's independently verified original artifact and endpoint failure are recorded by the beta.10 acceptance contract. |
@@ -233,7 +235,9 @@ Total indexed files: 336
233
235
  | `docs/current/release/consumer-authority-beta16-acceptance.json` | machine-readable release contract | v0.8.0-beta.16 | Historical source/packed public initialization, root-bound exact-tar package proof, canonical no-token gh parser preflight, and modeled authority-backed Finish readiness contract. |
234
236
  | `docs/current/release/consumer-authority-beta17-acceptance.json` | machine-readable release contract | v0.8.0-beta.17 | Source/packed public initialization, root-bound exact-tar package proof, canonical no-token command and transport parser preflights, safe external ZIP handoff, and authority-backed Finish readiness contract with modeled exact-once consumption/replay and one future current-version artifact residual. |
235
237
  | `docs/current/release/consumer-authority-beta18-acceptance.json` | machine-readable release contract | v0.8.0-beta.18 | Source/packed lifecycle and package-root contract extended with the strict Node20 canonical packer, isolated Node24 publisher, exact canonical-tar dry-run, and one hosted registry PUT/readback residual. |
236
- | `docs/current/release/consumer-authority-beta19-acceptance.json` | machine-readable release contract | v0.8.0-beta.19 | Source/packed lifecycle and package-root contract extended with workflow-bound canonical source-to-registry-byte reconciliation and sanitized failed-readback evidence. |
238
+ | `docs/current/release/consumer-authority-beta19-acceptance.json` | machine-readable release contract | v0.8.0-beta.19 | Historical source/packed lifecycle and package-root contract extended with workflow-bound canonical source-to-registry-byte reconciliation and sanitized failed-readback evidence. |
239
+ | `docs/current/release/consumer-authority-beta22-acceptance.json` | machine-readable release contract | v0.8.0-beta.22 | Historical procedure-only source/packed observer contract binding the beta22 final-observer record. |
240
+ | `docs/current/release/consumer-authority-beta23-acceptance.json` | machine-readable release contract | v0.8.0-beta.23 | Current v3 source/packed observer contract binding the immutable host-state isolation record, source-bound pre-push commit, and one hosted residual. |
237
241
  | `docs/current/release/consumer-authority-beta.md` | operational stable | - | Staging-first Consumer Authority Beta lifecycle boundary with fixed tag/readback, original-artifact consumer verification, and separately approved next promotion. |
238
242
  | `docs/current/release/production-integrity-audit.md` | operational stable | - | Fixed protected-main read-only Actions audit contract with sanitized digest-bound durable output; it cannot mutate release state or grant authority. |
239
243
  | `docs/current/rule-curation.md` | current compatibility doc | - | Compatibility/current-era doc retained in place; migrate by summary and pointer before moving. |
@@ -81,33 +81,54 @@ incorrectly required an unsupported registry `gitHead` metadata field.
81
81
  `0.8.0-beta.20` is immutable staging-only evidence: live authority fetch reached
82
82
  `trusted/unconsumed`, then Finish correctly blocked before consumption because
83
83
  the observer had not initialized the same consumer workflow state.
84
- `0.8.0-beta.21` is the next strict-prerelease source-preparation candidate; it
85
- has no source-level claim of a tag, publish, channel movement, GitHub release,
86
- or original signed consumer artifact. Its release contract requires
87
- package-visible observer credential preflight, separate caller/reusable signer
88
- binding, and a complete public Java/Spring readiness route whose default Finish
89
- is blocked only by `trusted-authority-required` before a fixture may be
90
- authorized. Beta21 binds that readiness to one exact Git-backed consumer
91
- CWD/HEAD and isolated HOME/store, requires trusted/unconsumed recheck in that
92
- same consumer before one Finish/replay, and forbids lifecycle reset or consumer
93
- switch after fetch. The preflights use a host-derived credential only inside its fixed
94
- read-only GitHub Actions worker; they do not pass that credential to `ph`, npm,
95
- archive tooling, or the consumer HOME. Its package evidence also starts from the
96
- exact complete-history bundle, not an ambient working directory: detached
97
- checkout, Git/manifest/lock/npm-prefix binding, normal prepack, and fresh
98
- installed CLI identity must all agree before the tarball is eligible for
99
- independent package review. The beta21 release contract additionally owns
100
- no-token/no-artifact attestation and artifact transport parser preflights. The
101
- transport plan binds the caller repository/run/artifact endpoint, exact ZIP
102
- bytes, and safe members before it hands an original ZIP to the separate reusable
103
- signer command plan. The package proof invokes plain `npm` from that bound
104
- detached checkout, never `npm --prefix ... pack`, and uses the exact resulting
105
- tarball for both source-built and fresh installed consumer contracts. Its release
106
- handoff keeps the Node20/npm10 canonical packer separate from the isolated
107
- Node24/npm11 publisher, which dry-runs and then publishes the same canonical
108
- tarball only. Postpublish reconciliation binds protected workflow source
109
- preflight to registry version, selected tag, SHA-1/SRI, raw SHA-256, and portable
110
- content identity; it does not require registry `gitHead`.
84
+ `0.8.0-beta.21` is non-reusable temporal final-observer evidence: its online
85
+ crypto and identity bindings passed only after the leaf certificate window
86
+ expired, so authenticated fetch, Finish consumption, and replay were not run.
87
+ `0.8.0-beta.22` is non-reusable final-observer evidence: host `gh`/XDG state
88
+ created an untracked `.local` entry after the final commit. `0.8.0-beta.23` is
89
+ the next strict-prerelease procedure-only source candidate;
90
+ it has no source-level claim of a tag, publish, channel movement, GitHub
91
+ release, or original signed consumer artifact. Beta23 records the governed v3
92
+ future final-observer procedure without changing product fetch, authority,
93
+ Finish, transport, workflow, or CI behavior.
94
+
95
+ The beta23 release contract requires package-visible observer credential
96
+ preflight, separate caller/reusable signer binding, and a complete public
97
+ Java/Spring readiness route whose default Finish is blocked only by
98
+ `trusted-authority-required` before a fixture may be authorized. Source-bound
99
+ bootstrap must finish before the final fixture commit. That one commit may
100
+ contain only declared source-bound bootstrap outputs and the immutable reusable
101
+ pin; the same unpushed final fixture commit is retained as the installed
102
+ consumer CWD/HEAD. Later slow preparation may modify only excluded runtime or
103
+ build state. Immediately before its one normal push, the remote parent, CWD,
104
+ Git top-level, HEAD, and source identity must still bind to that final commit.
105
+ No lifecycle reinitialization, consumer switch, or source reset is permitted
106
+ after fetch. It also requires `env -i`, explicit absolute `gh`/Git/Node/npm
107
+ paths, and fifteen external host-state roots outside the consumer realpath.
108
+ At baseline, source-bound preparation, credential handoff, observer child, and
109
+ immediately before push, CWD/Git top-level/HEAD/source identity plus empty
110
+ porcelain and `git clean -ndx` must remain unchanged. `.local`, `.config`, and
111
+ `.cache` are never allowlisted; slow preparation completes before the one push,
112
+ and the certificate validity deadline is non-relaxable.
113
+
114
+ The preflights use a host-derived credential only inside their fixed read-only
115
+ GitHub Actions worker; they do not pass that credential to `ph`, npm, archive
116
+ tooling, or the consumer HOME. Beta23 retains the no-token/no-artifact
117
+ attestation and artifact transport parser preflights. The transport plan binds
118
+ the caller repository/run/artifact endpoint, exact ZIP bytes, and safe members
119
+ before it hands an original ZIP to the separate reusable signer command plan.
120
+ Its package evidence starts from the exact complete-history bundle, not an
121
+ ambient working directory: detached checkout, Git/manifest/lock/npm-prefix
122
+ binding, normal prepack, and fresh installed CLI identity must all agree before
123
+ the tarball is eligible for independent package review. The package proof uses
124
+ plain `npm` from that bound detached checkout, never `npm --prefix ... pack`,
125
+ and uses the exact resulting tarball for both source-built and fresh installed
126
+ consumer contracts. Its release handoff keeps the Node20/npm10 canonical packer
127
+ separate from the isolated Node24/npm11 publisher, which dry-runs and then
128
+ publishes the same canonical tarball only. Postpublish reconciliation binds
129
+ protected workflow source preflight to registry version, selected tag, SHA-1/SRI,
130
+ raw SHA-256, and portable content identity; it does not require registry
131
+ `gitHead`.
111
132
  `0.7.0-rc.2` remains an earlier published `next` record.
112
133
 
113
134
  The staged-package artifact producer is a controlled future-run source:
@@ -6,17 +6,22 @@ user-scoped consumer authority route; neither one automatically promotes a
6
6
  package or makes Finish pass.
7
7
 
8
8
  `0.8.0-beta.1` through `0.8.0-beta.20` are immutable staging-only evidence.
9
- Their registry and provenance observations cannot be reused as beta.21
10
- current-version consumer authority evidence. Beta.16's final observer accepted
9
+ Their registry and provenance observations cannot be reused as current-version
10
+ consumer authority evidence. Beta.16's final observer accepted
11
11
  an exit-zero API download without proving a nonempty exact ZIP, so it stopped
12
12
  before ZIP validation. Beta.17 created a canonical tarball and provenance but
13
13
  its Node20/npm10 registry PUT received an authorization-shaped E404; that is not
14
14
  a package-absence claim, and beta.16 remains present in the public registry.
15
15
  Beta.18 is immutable staging evidence: its registry bytes matched canonical
16
16
  facts, but its postpublish checker incorrectly required an unsupported registry
17
- `gitHead` metadata field. The active `0.8.0-beta.21` source candidate has no
18
- package, tag, channel movement, GitHub release, or signed consumer-project
19
- artifact at source preparation time.
17
+ `gitHead` metadata field. Beta.21 is non-reusable temporal final-observer
18
+ evidence: online crypto and identity bindings completed only after the leaf
19
+ certificate window expired, so fetch, Finish, and replay did not run. The active
20
+ `0.8.0-beta.22` is non-reusable procedure evidence: host `gh`/XDG state created
21
+ an untracked `.local` entry after the final commit. The active
22
+ `0.8.0-beta.23` procedure-only source candidate has no package, tag, channel
23
+ movement, GitHub release, or signed consumer-project artifact at source
24
+ preparation time.
20
25
 
21
26
  The prior beta candidates are retained as staging-only NO-GO or
22
27
  source-preparation evidence: none qualifies for promotion or issue closure
@@ -24,9 +29,10 @@ because it did not complete the full current-version public consumer route.
24
29
  Beta.20 reached a live `trusted/unconsumed` fetch but then correctly stopped at
25
30
  `workflow-state-uninitialized` because the observer had not prepared the same
26
31
  consumer's public lifecycle. That result consumed nothing and is not reusable.
27
- Beta21 binds the missing immutable same-consumer observer order. It cannot
28
- inherit beta.16's observer failure, beta.17's registry PUT result, beta.18's
29
- failed metadata predicate, an earlier lifecycle, or an earlier authority result.
32
+ Beta23 binds the immutable same-consumer observer order, pre-push source
33
+ identity, and v3 host-state isolation procedure. It cannot inherit beta.16's observer failure, beta.17's
34
+ registry PUT result, beta.18's failed metadata predicate, beta.21's expired
35
+ temporal result, an earlier lifecycle, or an earlier authority result.
30
36
 
31
37
  The consumer must create its own workflow state through public bootstrap and
32
38
  report/evidence commands in the exact project that later fetches authority.
@@ -37,6 +43,20 @@ After public initialization the same command must reach only
37
43
  artifact then proves one real Finish consumption and immediate replay block
38
44
  without standing in for hosted crypto evidence.
39
45
 
46
+ For the final public fixture, source-bound bootstrap must complete before the
47
+ final fixture commit. That one commit contains only declared source-bound
48
+ bootstrap outputs and the immutable reusable workflow pin. The same unpushed
49
+ final fixture commit is retained as the installed consumer CWD/HEAD; subsequent
50
+ slow preparation may change only excluded runtime and build state. Immediately
51
+ before the one normal push, the fixture remote parent, CWD, Git top-level, HEAD,
52
+ and source identity must still match the final commit. Every host process uses
53
+ `env -i` with explicit absolute `gh`, Git, Node, and npm paths. All fifteen
54
+ host-state roots are outside the consumer realpath, and the observer verifies
55
+ empty porcelain plus empty `git clean -ndx` after baseline, source-bound
56
+ preparation, credential handoff, observer child, and immediately before push.
57
+ `.local`, `.config`, and `.cache` are never allowlisted. No lifecycle or source
58
+ reinitialization, consumer switch, or state reset is permitted after fetch.
59
+
40
60
  ## Fixed Sequence
41
61
 
42
62
  1. An approved protected-main source candidate has strict prerelease SemVer
@@ -139,12 +159,12 @@ authority artifact or Finish PASS.
139
159
 
140
160
  The external-attested fixture must pin the exact current package revision. The
141
161
  verifier binds the signed receipt `phVersion` to its installed CLI version, so
142
- an original artifact from `0.8.0-beta.1` through `0.8.0-beta.20` is a bounded
143
- binding mismatch or historical-evidence block for `0.8.0-beta.21`; only a future
162
+ an original artifact from `0.8.0-beta.1` through `0.8.0-beta.22` is a bounded
163
+ binding mismatch or historical-evidence block for `0.8.0-beta.23`; only a future
144
164
  original signed artifact for the current immutable version can exercise
145
165
  enrollment, fetch, explicit consumption, and replay rejection. The complete
146
166
  source/packed acceptance contract is the structured
147
- [`consumer-authority-beta21-acceptance.json`](consumer-authority-beta21-acceptance.json)
167
+ [`consumer-authority-beta23-acceptance.json`](consumer-authority-beta23-acceptance.json)
148
168
  record; it names the exact public Java/Spring readiness route, the separate
149
169
  caller and reusable certificate identities, the independent observer credential
150
170
  and no-token command/transport plan preflights, the immutable same-consumer
@@ -157,7 +177,7 @@ than caller project source. The profile, Gradle descriptors, Git identity,
157
177
  reports, and evidence remain bound. This does not relax caller enrollment,
158
178
  reusable SHA/SAN, repository, source, run, original-archive, or digest checks.
159
179
 
160
- Before beta.21 package evidence is accepted, the verifier materializes the
180
+ Before beta.23 package evidence is accepted, the verifier materializes the
161
181
  exact complete-history bundle in a detached no-local checkout. It binds one
162
182
  explicit canonical `refs/heads/...` candidate ref and
163
183
  `refs/remotes/origin/main`; the candidate ref must equal the expected candidate
@@ -205,7 +225,7 @@ is not retained.
205
225
 
206
226
  ## Live Verification Deadline
207
227
 
208
- Before the one natural beta.21 fixture push, an independent observer must prepare
228
+ Before the one natural beta.23 fixture push, an independent observer must prepare
209
229
  one exact Git-backed registry consumer CWD/HEAD and one private consumer `HOME`.
210
230
  It must first complete the public bootstrap/Gradle/report/evidence/plan route and
211
231
  confirm default Finish is blocked only by `trusted-authority-required`; it may