persona-harness 0.8.21 → 0.8.22
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.
- package/dist/cli/authority-command-surface.js +7 -2
- package/dist/cli/authority-command-surface.js.map +1 -1
- package/docs/current/release/consumer-authority-v0822-acceptance.json +1215 -0
- package/docs/current/release/history.md +7 -5
- package/docs/current/release/project-finish-attestation-verifier.md +5 -1
- package/docs/current/release/v0.8.21-release-notes.md +8 -10
- package/docs/current/release/v0.8.22-release-notes.md +28 -0
- package/package.json +3 -1
- package/packages/shared-skills/package.json +1 -1
- package/scripts/consumer-authority-v0822-acceptance-schema.d.mts +40 -0
- package/scripts/consumer-authority-v0822-acceptance-schema.mjs +83 -0
- package/scripts/preflight-consumer-authority-external-artifact-transport.mjs +2 -2
- package/scripts/preflight-consumer-authority-external-attestation.mjs +2 -2
|
@@ -0,0 +1,1215 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "consumer-authority-v0822-acceptance.1",
|
|
3
|
+
"package": {
|
|
4
|
+
"channel": "unpublished",
|
|
5
|
+
"scope": "source-candidate",
|
|
6
|
+
"version": "0.8.22"
|
|
7
|
+
},
|
|
8
|
+
"packageBoundary": {
|
|
9
|
+
"bundle": {
|
|
10
|
+
"requiredRefs": [
|
|
11
|
+
"explicit-single-refs-heads-candidate-must-match-expected-head",
|
|
12
|
+
"refs/remotes/origin/main"
|
|
13
|
+
],
|
|
14
|
+
"verification": "git-bundle-verify-and-exact-ref-binding",
|
|
15
|
+
"baseComparison": "independent-no-local-base-checkout-under-the-same-npm-policy"
|
|
16
|
+
},
|
|
17
|
+
"cleanCheckout": {
|
|
18
|
+
"requiredBindings": [
|
|
19
|
+
"checkout-cwd",
|
|
20
|
+
"git-toplevel",
|
|
21
|
+
"npm-prefix",
|
|
22
|
+
"resolved-package-json-path",
|
|
23
|
+
"resolved-package-lock-path",
|
|
24
|
+
"HEAD-package-json-bytes",
|
|
25
|
+
"HEAD-package-lock-bytes"
|
|
26
|
+
],
|
|
27
|
+
"sourceFallback": "forbidden"
|
|
28
|
+
},
|
|
29
|
+
"npm": {
|
|
30
|
+
"invocation": "plain-npm-from-bound-detached-checkout-cwd",
|
|
31
|
+
"packPrefixFlag": "forbidden",
|
|
32
|
+
"global": false,
|
|
33
|
+
"ignoreScriptsBeforePack": false,
|
|
34
|
+
"install": "npm-ci-ignore-scripts",
|
|
35
|
+
"workspaces": false
|
|
36
|
+
},
|
|
37
|
+
"pack": {
|
|
38
|
+
"metadata": "name-version-filename-must-match-frozen-package-and-lock",
|
|
39
|
+
"prepack": "package-root-build-script-derived-from-its-own-package-root",
|
|
40
|
+
"postcondition": "fresh-installed-cli-version-must-match-tarball-version"
|
|
41
|
+
},
|
|
42
|
+
"authoritativeBundleContract": {
|
|
43
|
+
"command": "node scripts/verify-clean-package-boundary.mjs --exercise-contract",
|
|
44
|
+
"baseAndTarget": "fresh-detached-no-local-checkouts-from-the-same-complete-bundle",
|
|
45
|
+
"candidateRef": "explicit-single-refs-heads-candidate-must-match-expected-head",
|
|
46
|
+
"headAlias": "optional-head-mapping-must-match-the-same-expected-head",
|
|
47
|
+
"sourceCandidateRef": "refs/heads/clean-package-source",
|
|
48
|
+
"rejectBeforePack": "launcher-cwd-or-manifest-outside-bound-checkout",
|
|
49
|
+
"sourceContract": "built-cli-package-exercise-contract-under-the-same-executable",
|
|
50
|
+
"installedContract": "fresh-installed-package-exercise-uses-the-exact-canonical-target-tarball-sha256-and-package-content-identity-before-the-separate-node24-publisher-handoff",
|
|
51
|
+
"fullJavaGradleContract": "source-and-fresh-installed-full-contract-on-a-provisioned-java-gradle-host",
|
|
52
|
+
"partialCloneSourceHydration": "only-a-blob-none-promisor-clone-with-the-exact-canonical-origin-may-no-filter-hydrate-the-retained-origin-main-sha-before-local-bundle-materialization-without-moving-refs",
|
|
53
|
+
"rootPolicy": "the-git-bound-authoritative-bundle-verifier-runs-only-from-a-complete-source-materialization-and-requires-git; fresh-installed-contracts-load-observer-stage-and-package-record-only-from-the-exact-tarball-without-src-git-or-source-verifier-fallback",
|
|
54
|
+
"exercisePhaseProtocol": {
|
|
55
|
+
"authorityDiscoveryResult": {
|
|
56
|
+
"marker": "authority-discovery-exercise-result",
|
|
57
|
+
"placement": "exactly-one-trusted-unconsumed-persisted-record-immediately-after-the-ready-authority-discovery-phase-for-the-matching-source-built-or-fresh-tar-surface",
|
|
58
|
+
"result": "trusted-unconsumed-persisted",
|
|
59
|
+
"schemaVersion": "consumer-authority-discovery-exercise.1"
|
|
60
|
+
},
|
|
61
|
+
"childOutput": "each-source-built-and-fresh-tar-package-exercise-phase-emits-one-ordered-exact-nonreflective-ready-record-or-one-terminal-blocked-record-before-the-terminal-pass-marker",
|
|
62
|
+
"freshTar": [
|
|
63
|
+
"tarball-materialization",
|
|
64
|
+
"fresh-install",
|
|
65
|
+
"package-identity",
|
|
66
|
+
"package-content-identity",
|
|
67
|
+
"opencode-interview-observation",
|
|
68
|
+
"repository-only-files",
|
|
69
|
+
"canonical-publisher",
|
|
70
|
+
"observer-credential",
|
|
71
|
+
"producer-intake",
|
|
72
|
+
"producer-action-topology",
|
|
73
|
+
"verifier-no-source",
|
|
74
|
+
"project-finish-verifier-no-source",
|
|
75
|
+
"prearmed-observer",
|
|
76
|
+
"v4-cleanliness",
|
|
77
|
+
"observer-gh-selector",
|
|
78
|
+
"attestation-parser",
|
|
79
|
+
"artifact-transport",
|
|
80
|
+
"authority-discovery",
|
|
81
|
+
"authority-lifecycle",
|
|
82
|
+
"staged-artifact-verifier",
|
|
83
|
+
"doctor-registry",
|
|
84
|
+
"evidence-read-write",
|
|
85
|
+
"report-stdin",
|
|
86
|
+
"workflow-lifecycle",
|
|
87
|
+
"bootstrap-workspace-intake",
|
|
88
|
+
"installed-package-test"
|
|
89
|
+
],
|
|
90
|
+
"parentAcceptance": "the-clean-bundle-parent-requires-the-complete-ordered-ready-transcript-and-exact-terminal-pass-marker; marker-only-malformed-out-of-order-foreign-or-success-after-blocked-output-is-a-bounded-phase-envelope-block",
|
|
91
|
+
"schemaVersion": "clean-package-exercise-phase.1",
|
|
92
|
+
"sourceBuilt": [
|
|
93
|
+
"cli-binding",
|
|
94
|
+
"opencode-interview-observation",
|
|
95
|
+
"producer-intake",
|
|
96
|
+
"producer-action-topology",
|
|
97
|
+
"canonical-publisher",
|
|
98
|
+
"prearmed-observer",
|
|
99
|
+
"v4-cleanliness",
|
|
100
|
+
"observer-gh-selector",
|
|
101
|
+
"attestation-parser",
|
|
102
|
+
"artifact-transport",
|
|
103
|
+
"observer-credential",
|
|
104
|
+
"authority-discovery",
|
|
105
|
+
"authority-lifecycle",
|
|
106
|
+
"doctor-registry",
|
|
107
|
+
"evidence-read-write",
|
|
108
|
+
"report-stdin",
|
|
109
|
+
"workflow-lifecycle",
|
|
110
|
+
"bootstrap-workspace-intake"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"contentIdentity": {
|
|
115
|
+
"aggregate": "sorted-package-relative-path-type-normalized-allowed-mode-size-sha256",
|
|
116
|
+
"allowedMemberTypes": [
|
|
117
|
+
"regular"
|
|
118
|
+
],
|
|
119
|
+
"allowedModes": [
|
|
120
|
+
"0600",
|
|
121
|
+
"0644",
|
|
122
|
+
"0700",
|
|
123
|
+
"0755"
|
|
124
|
+
],
|
|
125
|
+
"canonicalPacker": {
|
|
126
|
+
"environment": [
|
|
127
|
+
"isolated-HOME",
|
|
128
|
+
"isolated-npm-cache",
|
|
129
|
+
"isolated-npm-config",
|
|
130
|
+
"isolated-git-config",
|
|
131
|
+
"umask-0022",
|
|
132
|
+
"LANG-C",
|
|
133
|
+
"LC_ALL-C",
|
|
134
|
+
"TZ-UTC",
|
|
135
|
+
"SOURCE_DATE_EPOCH-0"
|
|
136
|
+
],
|
|
137
|
+
"node": "20.19.0",
|
|
138
|
+
"npm": "10.8.2",
|
|
139
|
+
"publish": "handoff-one-exact-canonical-tarball-to-isolated-node24-npm11-publisher"
|
|
140
|
+
},
|
|
141
|
+
"crossEnvironment": "compare-package-content-identity-not-generic-independent-npm-pack-raw-tar-sha256",
|
|
142
|
+
"rawTarballSha256": "valid-only-for-the-exact-canonical-supplied-tarball-or-postpublish-registry-blob",
|
|
143
|
+
"registryReadback": "require-protected-main-tag-source-preflight-and-registry-version-sha1-sri-raw-sha256-and-package-content-identity-to-match-frozen-canonical-package-facts-without-registry-githead",
|
|
144
|
+
"retainedExternalDiagnostics": {
|
|
145
|
+
"beta16": {
|
|
146
|
+
"contentOnlySha256": "9bb1c7eaeceb79d198d7baafdaea9c8bc73cd8750209ea5aa76cfc46070e0832",
|
|
147
|
+
"entryCount": 1191,
|
|
148
|
+
"identitySha256": "9eac0bdc041e8e616bd6e4de3ba49e8490b8a269f3f0d3e520027833b927c332",
|
|
149
|
+
"modeCounts": {
|
|
150
|
+
"0600": 296,
|
|
151
|
+
"0644": 887,
|
|
152
|
+
"0700": 7,
|
|
153
|
+
"0755": 1
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"beta17": {
|
|
157
|
+
"contentOnlySha256": "d411a23a2343cd21e33ac30250ed903934968e214b7f198ccd0ea91a7d6bf580",
|
|
158
|
+
"entryCount": 1200,
|
|
159
|
+
"identitySha256": "5771dc973dd95e5d3f8b01a9e17becf3c17223b3d94aed692e5248e0c3054c5e",
|
|
160
|
+
"modeCounts": {
|
|
161
|
+
"0600": 305,
|
|
162
|
+
"0644": 887,
|
|
163
|
+
"0700": 7,
|
|
164
|
+
"0755": 1
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"headerClassification": "normalized-gzip-tar-headers-do-not-explain-the-retained-content-or-mode-identity-delta",
|
|
168
|
+
"reuse": "diagnostic-only-not-acceptance-evidence"
|
|
169
|
+
},
|
|
170
|
+
"schemaVersion": "package-content-identity.1",
|
|
171
|
+
"publisherRuntime": "node24.18.0-npm11.16.0-dry-run-and-real-publish-use-identical-canonical-tarball-argv"
|
|
172
|
+
},
|
|
173
|
+
"registryReadback": {
|
|
174
|
+
"failureEvidence": "sanitized-readback-is-uploaded-even-when-postpublish-reconciliation-blocks",
|
|
175
|
+
"sourceBinding": "workflow-verified-canonical-tar",
|
|
176
|
+
"unsupportedMetadata": "registry-githead-is-neither-required-nor-reflected"
|
|
177
|
+
},
|
|
178
|
+
"currentVersionAuthority": "current-package-json-package-lock-and-current-versioned-acceptance-manifest-must-bind-one-identical-prerelease-version; historical-versioned-acceptance-records-remain-strict-and-never-define-current-package-identity"
|
|
179
|
+
},
|
|
180
|
+
"preAuthorityReadiness": {
|
|
181
|
+
"consumer": "exact-registry-installed-java-spring-gradle",
|
|
182
|
+
"commands": [
|
|
183
|
+
"ph bootstrap backend --strict --no-developer-mcp",
|
|
184
|
+
"ph plan --accept",
|
|
185
|
+
"ph bearshell ./gradlew test",
|
|
186
|
+
"ph bearshell ./gradlew compileJava",
|
|
187
|
+
"ph bearshell ./gradlew clean",
|
|
188
|
+
"ph evidence read README.md",
|
|
189
|
+
"ph evidence read .persona/project-profile.jsonc",
|
|
190
|
+
"ph evidence read src/main/java/example/cooperative/GreetingService.java",
|
|
191
|
+
"ph plan --report-filled implementation --stdin",
|
|
192
|
+
"ph plan --report-filled review --stdin"
|
|
193
|
+
],
|
|
194
|
+
"expectedDefaultFinish": {
|
|
195
|
+
"absentBlockers": [
|
|
196
|
+
"implementation-report-missing",
|
|
197
|
+
"review-report-missing",
|
|
198
|
+
"evidence-missing",
|
|
199
|
+
"report-coverage-missing",
|
|
200
|
+
"profile-read-coverage-missing",
|
|
201
|
+
"java-role-read-coverage-missing",
|
|
202
|
+
"workflow-loop-state-absent",
|
|
203
|
+
"ralph-loop-state-absent"
|
|
204
|
+
],
|
|
205
|
+
"primaryBlocker": "trusted-authority-required",
|
|
206
|
+
"status": "blocked"
|
|
207
|
+
},
|
|
208
|
+
"publicOutput": {
|
|
209
|
+
"absoluteWorkspacePaths": "omitted",
|
|
210
|
+
"stableReferences": [
|
|
211
|
+
".persona/workflow/plan.md",
|
|
212
|
+
".persona/workflow/implementation-report.md",
|
|
213
|
+
".persona/workflow/review-report.md"
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"initialization": {
|
|
217
|
+
"acceptedPlan": "ph plan --accept",
|
|
218
|
+
"binding": {
|
|
219
|
+
"consumerRoot": "same-canonical-project-root",
|
|
220
|
+
"profile": ".persona/project-profile.jsonc",
|
|
221
|
+
"reportsAndEvidence": "public-command-created-only",
|
|
222
|
+
"sourceIdentity": "current-git-source-identity"
|
|
223
|
+
},
|
|
224
|
+
"inactiveFinish": {
|
|
225
|
+
"blocker": "workflow-state-uninitialized",
|
|
226
|
+
"status": "blocked"
|
|
227
|
+
},
|
|
228
|
+
"loopState": [
|
|
229
|
+
".persona/workflow/workflow-loop-state.json",
|
|
230
|
+
".persona/workflow/ralph-loop-state.json"
|
|
231
|
+
],
|
|
232
|
+
"sameConsumer": true,
|
|
233
|
+
"retainedDraftPlan": "bootstrap preserves an existing draft plan; public readiness must accept it explicitly"
|
|
234
|
+
},
|
|
235
|
+
"negativeCases": [
|
|
236
|
+
"absolute-workspace-or-temp-path-public-output",
|
|
237
|
+
"missing-or-malformed-report",
|
|
238
|
+
"repeated-control-or-oversized-report",
|
|
239
|
+
"missing-unsafe-replaced-or-identity-drifted-evidence",
|
|
240
|
+
"workflow-or-ralph-loop-missing-malformed-or-unsafe",
|
|
241
|
+
"default-finish-has-no-authority-side-effect"
|
|
242
|
+
],
|
|
243
|
+
"proof": "source-built-and-fresh-packed-installed-public-cli"
|
|
244
|
+
},
|
|
245
|
+
"authority": {
|
|
246
|
+
"binding": {
|
|
247
|
+
"callerEnrollment": {
|
|
248
|
+
"repositoryId": 1304576182,
|
|
249
|
+
"repositorySlug": "jyt6640/persona-harness-attestation-claim-fixture",
|
|
250
|
+
"workflowPath": ".github/workflows/research-attestation.yml",
|
|
251
|
+
"workflowRef": "refs/heads/main"
|
|
252
|
+
},
|
|
253
|
+
"reusableSigner": {
|
|
254
|
+
"certificateSanIdentity": "reusable-producer-workflow",
|
|
255
|
+
"workflowPath": ".github/workflows/persona-harness-project-finish.yml"
|
|
256
|
+
},
|
|
257
|
+
"runtimeSourceProjection": {
|
|
258
|
+
"excludedRuntimeMetadata": [
|
|
259
|
+
".persona/.ph-init-manifest.json",
|
|
260
|
+
".persona/workflow"
|
|
261
|
+
],
|
|
262
|
+
"reason": "bootstrap-local ownership metadata contains the consumer real path and is not caller project source",
|
|
263
|
+
"stillBound": [
|
|
264
|
+
".persona/project-profile.jsonc",
|
|
265
|
+
"root-gradle-build-and-settings",
|
|
266
|
+
"git-source-identity",
|
|
267
|
+
"public-reports-and-evidence"
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"required": [
|
|
271
|
+
"caller-workflow-filename-ref-and-sha",
|
|
272
|
+
"reusable-workflow-sha-and-certificate-SAN",
|
|
273
|
+
"repository-id-and-slug",
|
|
274
|
+
"source-head-and-source-identity",
|
|
275
|
+
"workflow-run-and-attempt",
|
|
276
|
+
"artifact-id-and-sha256",
|
|
277
|
+
"original-archive-members"
|
|
278
|
+
],
|
|
279
|
+
"storeSchema": "consumer-authority-original-artifact.2"
|
|
280
|
+
},
|
|
281
|
+
"modeledContract": {
|
|
282
|
+
"acceptedTopology": "separate-enrolled-caller-and-reusable-signer",
|
|
283
|
+
"proof": "source-built-and-fresh-packed-installed-public-bootstrap-bound-discovery-exact-once-finish-and-replay-test",
|
|
284
|
+
"rejected": [
|
|
285
|
+
"caller-workflow-mismatch",
|
|
286
|
+
"reusable-workflow-or-certificate-SAN-mismatch",
|
|
287
|
+
"repository-source-or-run-mismatch",
|
|
288
|
+
"artifact-digest-or-archive-mismatch",
|
|
289
|
+
"stale-or-replayed-terminal-record"
|
|
290
|
+
],
|
|
291
|
+
"authorityClaim": "none-before-a-current-original-artifact-is-verified-online"
|
|
292
|
+
},
|
|
293
|
+
"fixturePlan": {
|
|
294
|
+
"artifact": "project-finish-attestation",
|
|
295
|
+
"consumer": "public-java-spring-gradle",
|
|
296
|
+
"postmergeAction": "normal-push-to-main",
|
|
297
|
+
"registryInstall": "requires-authorized-release-before-registry-install-persona-harness@0.8.22"
|
|
298
|
+
},
|
|
299
|
+
"hostedFixture": {
|
|
300
|
+
"callerWorkflowPath": ".github/workflows/research-attestation.yml",
|
|
301
|
+
"certificateSanIdentity": "reusable-producer-workflow",
|
|
302
|
+
"event": "push",
|
|
303
|
+
"ref": "refs/heads/main",
|
|
304
|
+
"repository": "jyt6640/persona-harness-attestation-claim-fixture",
|
|
305
|
+
"reusableWorkflowPath": ".github/workflows/persona-harness-project-finish.yml",
|
|
306
|
+
"revision": "v0822-source-candidate-head-before-authorized-release"
|
|
307
|
+
},
|
|
308
|
+
"verification": {
|
|
309
|
+
"predicate": "project-finish-attestation.1",
|
|
310
|
+
"route": "fixed-product-owned-online",
|
|
311
|
+
"unavailable": "bounded-non-authoritative"
|
|
312
|
+
},
|
|
313
|
+
"fetchDiagnostic": {
|
|
314
|
+
"allowedCodes": [
|
|
315
|
+
"authority-fetch-evidence",
|
|
316
|
+
"authority-fetch-invalid",
|
|
317
|
+
"authority-fetch-network",
|
|
318
|
+
"authority-fetch-policy"
|
|
319
|
+
],
|
|
320
|
+
"childEnvelope": "only-exit-one-fixed-code-ok-false",
|
|
321
|
+
"persistence": "blocked-child-leaves-no-artifact-or-authority-state",
|
|
322
|
+
"privacy": "no-token-path-url-or-raw-child-output",
|
|
323
|
+
"publicState": "missing"
|
|
324
|
+
},
|
|
325
|
+
"fetchBindingReason": {
|
|
326
|
+
"allowedReasons": [
|
|
327
|
+
"artifact",
|
|
328
|
+
"package-version",
|
|
329
|
+
"source",
|
|
330
|
+
"enrollment",
|
|
331
|
+
"run",
|
|
332
|
+
"signer",
|
|
333
|
+
"freshness",
|
|
334
|
+
"consumption",
|
|
335
|
+
"verification",
|
|
336
|
+
"unknown"
|
|
337
|
+
],
|
|
338
|
+
"output": "fixed-enum-only-no-values-paths-tokens-urls-or-raw-output",
|
|
339
|
+
"publicState": "binding-mismatch",
|
|
340
|
+
"schemaVersion": "consumer-authority-fetch-binding-reason.1"
|
|
341
|
+
},
|
|
342
|
+
"fetchSelection": {
|
|
343
|
+
"requiredTuple": [
|
|
344
|
+
"artifactId",
|
|
345
|
+
"runId",
|
|
346
|
+
"sourceHead",
|
|
347
|
+
"artifactDigest"
|
|
348
|
+
],
|
|
349
|
+
"repositoryOnly": "blocked-before-enrollment-or-fetch",
|
|
350
|
+
"returnedArtifact": "must-match-all-four-fields-before-verifier-or-store",
|
|
351
|
+
"receipt": "explicit-secret-free-verified-tuple-or-retained-verified-receipt"
|
|
352
|
+
},
|
|
353
|
+
"fetchResult": {
|
|
354
|
+
"schemaVersion": "consumer-authority-fetch.4",
|
|
355
|
+
"sourceReason": [
|
|
356
|
+
"head",
|
|
357
|
+
"inputs",
|
|
358
|
+
"identity",
|
|
359
|
+
"status",
|
|
360
|
+
"index",
|
|
361
|
+
"content",
|
|
362
|
+
"working-tree",
|
|
363
|
+
"workspace",
|
|
364
|
+
"unknown"
|
|
365
|
+
],
|
|
366
|
+
"sourceReasonWhen": "present-only-with-bindingReason-source",
|
|
367
|
+
"nonSourceReasons": "existing-binding-reasons-omit-sourceReason",
|
|
368
|
+
"privacy": "fixed-enum-only-no-receipt-path-digest-certificate-artifact-credential-or-raw-diagnostic"
|
|
369
|
+
},
|
|
370
|
+
"readOnlyVerify": {
|
|
371
|
+
"command": "ph authority verify",
|
|
372
|
+
"input": [
|
|
373
|
+
"archive",
|
|
374
|
+
"artifactId",
|
|
375
|
+
"runId",
|
|
376
|
+
"sourceHead",
|
|
377
|
+
"artifactDigest"
|
|
378
|
+
],
|
|
379
|
+
"schemaVersion": "consumer-authority-verify.2",
|
|
380
|
+
"output": [
|
|
381
|
+
"authorityEligible",
|
|
382
|
+
"consumptionState",
|
|
383
|
+
"reason",
|
|
384
|
+
"schemaVersion",
|
|
385
|
+
"sourceFallback",
|
|
386
|
+
"sourceReason",
|
|
387
|
+
"state"
|
|
388
|
+
],
|
|
389
|
+
"sourceReason": [
|
|
390
|
+
"head",
|
|
391
|
+
"inputs",
|
|
392
|
+
"identity",
|
|
393
|
+
"status",
|
|
394
|
+
"index",
|
|
395
|
+
"content",
|
|
396
|
+
"working-tree",
|
|
397
|
+
"workspace",
|
|
398
|
+
"unknown"
|
|
399
|
+
],
|
|
400
|
+
"sourceReasonWhen": "present-only-with-reason-source-mismatch",
|
|
401
|
+
"nonSourceReasons": "existing-verify-reasons-omit-sourceReason",
|
|
402
|
+
"trustUnavailable": [
|
|
403
|
+
"dns-unavailable",
|
|
404
|
+
"network-unavailable",
|
|
405
|
+
"trust-root-unavailable",
|
|
406
|
+
"verification-timeout"
|
|
407
|
+
],
|
|
408
|
+
"noCredentialFetchStoreConsumeFinishReplay": true,
|
|
409
|
+
"malformedMismatchSymlinkSourceStaleRuntime": "blocked",
|
|
410
|
+
"archiveInput": {
|
|
411
|
+
"arbitrarySymlinkAncestorOrLeaf": "blocked-before-verifier-or-store",
|
|
412
|
+
"darwinSystemTemporaryAlias": "only-root-owned-/tmp-symlink-to-private-tmp-is-canonicalized-before-no-follow-validation",
|
|
413
|
+
"nonDarwin": "uses-input-absolute-path-without-temporary-alias-canonicalization",
|
|
414
|
+
"ancestorDirectoryChurn": "same-no-follow-directory-location-and-mode-required-while-unrelated-entry-metadata-may-change",
|
|
415
|
+
"directParentIntegrity": "full-no-follow-identity-remains-required-before-read"
|
|
416
|
+
},
|
|
417
|
+
"artifactDigestInput": "canonical-sha256-prefix-or-exact-64-hex-normalized-before-archive-verification"
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"externalAttestationCommandPlan": {
|
|
421
|
+
"certificateOidcIssuer": "https://token.actions.githubusercontent.com",
|
|
422
|
+
"command": [
|
|
423
|
+
"attestation",
|
|
424
|
+
"verify"
|
|
425
|
+
],
|
|
426
|
+
"denySelfHostedRunners": true,
|
|
427
|
+
"exitClassification": {
|
|
428
|
+
"authenticationRequired": 4,
|
|
429
|
+
"normalVerificationFailure": 1,
|
|
430
|
+
"verified": 0
|
|
431
|
+
},
|
|
432
|
+
"format": "json",
|
|
433
|
+
"predicateType": "https://github.com/jyt6640/persona-harness/attestations/project-finish-attestation.1",
|
|
434
|
+
"repositorySelector": {
|
|
435
|
+
"flag": "--repo",
|
|
436
|
+
"source": "caller-enrollment.repositorySlug"
|
|
437
|
+
},
|
|
438
|
+
"schemaVersion": "consumer-authority-external-attestation-command-plan.1",
|
|
439
|
+
"signerDigest": {
|
|
440
|
+
"flag": "--signer-digest",
|
|
441
|
+
"source": "reusable-signer.workflowSha"
|
|
442
|
+
},
|
|
443
|
+
"signerSelector": {
|
|
444
|
+
"flag": "--signer-workflow",
|
|
445
|
+
"source": "reusable-signer.workflowPath"
|
|
446
|
+
},
|
|
447
|
+
"sourceDigest": {
|
|
448
|
+
"flag": "--source-digest",
|
|
449
|
+
"source": "caller-source.sourceSha"
|
|
450
|
+
},
|
|
451
|
+
"sourceRef": {
|
|
452
|
+
"flag": "--source-ref",
|
|
453
|
+
"source": "caller-source.ref"
|
|
454
|
+
},
|
|
455
|
+
"tokenIsolation": {
|
|
456
|
+
"artifactAccess": "forbidden-during-preflight",
|
|
457
|
+
"credential": "absent",
|
|
458
|
+
"output": "bounded-classification-only"
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"prearmedExternalHandoff": {
|
|
462
|
+
"prepare": {
|
|
463
|
+
"allowedBeforeFixture": [
|
|
464
|
+
"prepare-one-exact-git-backed-fixture-clone-and-isolated-consumer-home-store",
|
|
465
|
+
"source-bound-bootstrap-before-final-fixture-commit",
|
|
466
|
+
"retain-identical-unpushed-final-fixture-commit-as-the-installed-consumer-cwd-head",
|
|
467
|
+
"post-commit-excluded-runtime-build-only-preparation",
|
|
468
|
+
"v4-immutable-tracked-binding-and-stage-scoped-residue-cleanliness-after-every-prepush-stage",
|
|
469
|
+
"workflow-selected-observer-gh-tool-preflight-without-package-path-lookup-token-or-artifact",
|
|
470
|
+
"public-pre-authority-readiness",
|
|
471
|
+
"public-initialized-finish-state",
|
|
472
|
+
"observer-credential-preflight",
|
|
473
|
+
"external-attestation-command-plan-preflight",
|
|
474
|
+
"external-artifact-transport-plan-preflight",
|
|
475
|
+
"enroll-after-prefetch-readiness",
|
|
476
|
+
"status-and-explain-on-ready-same-consumer"
|
|
477
|
+
],
|
|
478
|
+
"consumer": "isolated-exact-registry-install",
|
|
479
|
+
"credentialPreflight": {
|
|
480
|
+
"acquisition": "host-gh-auth-token-read-once",
|
|
481
|
+
"command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-observer.mjs --json",
|
|
482
|
+
"consumerHome": "isolated-ephemeral",
|
|
483
|
+
"hostCredential": "host-gh-only",
|
|
484
|
+
"logging": "forbidden",
|
|
485
|
+
"observerWorker": "github-actions-read-only",
|
|
486
|
+
"persistence": "forbidden",
|
|
487
|
+
"productFallback": "forbidden",
|
|
488
|
+
"scope": "fixed-authenticated-user-and-empty-sentinel-actions-metadata",
|
|
489
|
+
"tokenEnvironment": "PH_OBSERVER_PREFLIGHT_GITHUB_TOKEN"
|
|
490
|
+
},
|
|
491
|
+
"attestationCommandPreflight": {
|
|
492
|
+
"command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-attestation.mjs --json",
|
|
493
|
+
"credential": "absent",
|
|
494
|
+
"input": "no-artifact-grammar-sentinel-only",
|
|
495
|
+
"output": "bounded-exit-classification-only",
|
|
496
|
+
"productFallback": "forbidden"
|
|
497
|
+
},
|
|
498
|
+
"prohibitedBeforeArtifact": [
|
|
499
|
+
"artifact-download",
|
|
500
|
+
"online-crypto-validation",
|
|
501
|
+
"authority-fetch",
|
|
502
|
+
"finish-consumption",
|
|
503
|
+
"replay-observation"
|
|
504
|
+
],
|
|
505
|
+
"requiredBeforeFixtureAuthorization": "public-initialized-finish-blocked-only-on-trusted-authority-required",
|
|
506
|
+
"artifactTransportPreflight": {
|
|
507
|
+
"command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-artifact-transport.mjs --json",
|
|
508
|
+
"credential": "absent",
|
|
509
|
+
"input": "no-artifact-fixed-topology-and-metadata-sentinel-only",
|
|
510
|
+
"output": "bounded-parser-classification-only",
|
|
511
|
+
"productFallback": "forbidden"
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"trigger": {
|
|
515
|
+
"onlyAfter": "immutable-prepush-fixture-commit-v4-tracked-binding-and-stage-scoped-residue-cleanliness-and-workflow-selected-observer-gh-tool-ready-and-natural-current-version-original-artifact",
|
|
516
|
+
"steps": [
|
|
517
|
+
"pre-push-fixture-parent-cwd-head-source-identity-and-v4-cleanliness-ready",
|
|
518
|
+
"normal-push-of-the-same-final-fixture-commit-to-main",
|
|
519
|
+
"current-original-artifact-transport-and-online-crypto",
|
|
520
|
+
"verify-online-before-leaf-certificate-notAfter-without-validity-relaxation",
|
|
521
|
+
"authority-fetch-discovers-and-binds-original-artifact",
|
|
522
|
+
"same-consumer-trusted-unconsumed-no-readiness-blocker",
|
|
523
|
+
"finish-consume-once",
|
|
524
|
+
"finish-replay-blocked"
|
|
525
|
+
]
|
|
526
|
+
},
|
|
527
|
+
"nonAuthority": [
|
|
528
|
+
"preflight-does-not-self-validate",
|
|
529
|
+
"readiness-does-not-authorize-fixture",
|
|
530
|
+
"readiness-does-not-grant-authority",
|
|
531
|
+
"readiness-does-not-persist-or-log-host-credential",
|
|
532
|
+
"command-plan-preflight-does-not-access-artifact-or-network",
|
|
533
|
+
"command-plan-preflight-does-not-reuse-beta15-artifact",
|
|
534
|
+
"transport-plan-preflight-does-not-access-an-artifact-or-network",
|
|
535
|
+
"transport-model-safety-is-not-online-crypto-or-authority-evidence"
|
|
536
|
+
],
|
|
537
|
+
"finalObserverProcedure": {
|
|
538
|
+
"credentialHandoff": "retrieve-host-gh-credential-silently-outside-the-consumer-and-pass-it-only-to-one-fixed-read-only-observer-child",
|
|
539
|
+
"execution": {
|
|
540
|
+
"environment": "env-i-with-only-fixed-allowlisted-variables",
|
|
541
|
+
"toolPaths": [
|
|
542
|
+
"absolute-gh",
|
|
543
|
+
"absolute-git",
|
|
544
|
+
"absolute-node",
|
|
545
|
+
"absolute-npm"
|
|
546
|
+
]
|
|
547
|
+
},
|
|
548
|
+
"failureHandling": {
|
|
549
|
+
"afterFetch": "do-not-reinitialize-switch-reset-or-retry",
|
|
550
|
+
"beforeFetch": "abandon-and-recreate-the-consumer-before-any-live-fetch"
|
|
551
|
+
},
|
|
552
|
+
"hostStateIsolation": {
|
|
553
|
+
"externalStateRoots": [
|
|
554
|
+
"HOME",
|
|
555
|
+
"GH_CONFIG_DIR",
|
|
556
|
+
"XDG_CONFIG_HOME",
|
|
557
|
+
"XDG_DATA_HOME",
|
|
558
|
+
"XDG_STATE_HOME",
|
|
559
|
+
"XDG_CACHE_HOME",
|
|
560
|
+
"XDG_RUNTIME_DIR",
|
|
561
|
+
"TMPDIR",
|
|
562
|
+
"APPDATA",
|
|
563
|
+
"LOCALAPPDATA",
|
|
564
|
+
"USERPROFILE",
|
|
565
|
+
"GIT_CONFIG_GLOBAL",
|
|
566
|
+
"GIT_CONFIG_SYSTEM",
|
|
567
|
+
"NPM_CONFIG_USERCONFIG",
|
|
568
|
+
"NPM_CONFIG_CACHE"
|
|
569
|
+
],
|
|
570
|
+
"forbiddenConsumerPaths": [
|
|
571
|
+
".local/**",
|
|
572
|
+
".config/**",
|
|
573
|
+
".cache/**"
|
|
574
|
+
],
|
|
575
|
+
"rootBinding": "all-fifteen-absolute-state-roots-must-remain-outside-the-consumer-realpath"
|
|
576
|
+
},
|
|
577
|
+
"liveSteps": [
|
|
578
|
+
"normal-push-of-the-same-final-fixture-commit-to-main",
|
|
579
|
+
"current-original-artifact-transport-and-online-crypto-within-leaf-window-without-validity-relaxation",
|
|
580
|
+
"authenticated-fetch-once",
|
|
581
|
+
"same-consumer-status-and-explain-trusted-unconsumed-with-no-readiness-blocker",
|
|
582
|
+
"Finish-consume-once",
|
|
583
|
+
"immediate-Finish-replay-blocked"
|
|
584
|
+
],
|
|
585
|
+
"noReinitializationAfterFetch": [
|
|
586
|
+
"consumer-cwd-git-head-or-source-profile-change",
|
|
587
|
+
"consumer-home-or-authority-store-replacement",
|
|
588
|
+
"bootstrap-plan-report-evidence-or-loop-state-reset",
|
|
589
|
+
"consumer-switch-or-copied-state"
|
|
590
|
+
],
|
|
591
|
+
"postCommitPreparation": {
|
|
592
|
+
"allowedMutations": [
|
|
593
|
+
".persona/.ph-init-manifest.json",
|
|
594
|
+
".persona/evidence/**",
|
|
595
|
+
".persona/workflow/**",
|
|
596
|
+
".gradle/**",
|
|
597
|
+
"build/**",
|
|
598
|
+
"node_modules/**"
|
|
599
|
+
],
|
|
600
|
+
"forbiddenSourceBoundMutations": [
|
|
601
|
+
".github/workflows/research-attestation.yml",
|
|
602
|
+
".gitignore",
|
|
603
|
+
".local/**",
|
|
604
|
+
".config/**",
|
|
605
|
+
".cache/**",
|
|
606
|
+
".opencode/opencode.json",
|
|
607
|
+
".persona/conventions/**",
|
|
608
|
+
".persona/harness.jsonc",
|
|
609
|
+
".persona/policies/**",
|
|
610
|
+
".persona/project-profile.jsonc",
|
|
611
|
+
".persona/rules/**",
|
|
612
|
+
"AGENTS.md",
|
|
613
|
+
"root-gradle-build-and-settings",
|
|
614
|
+
"src/**"
|
|
615
|
+
]
|
|
616
|
+
},
|
|
617
|
+
"prePushCommit": {
|
|
618
|
+
"cwd": "must-be-exact-fixture-git-toplevel-and-canonical-project-root",
|
|
619
|
+
"finalCommit": "one-final-commit-contains-only-allowed-source-bound-bootstrap-outputs-and-reusable-pin",
|
|
620
|
+
"head": "must-remain-the-identical-unpushed-final-fixture-commit",
|
|
621
|
+
"remoteParent": "must-remain-unchanged-immediately-before-normal-push",
|
|
622
|
+
"sourceBoundBootstrap": "must-complete-before-final-commit",
|
|
623
|
+
"sourceIdentity": "immutable-tracked-source-head-parent-reusable-pin-and-digest-map-with-v4-stage-scoped-runtime-residue-projection"
|
|
624
|
+
},
|
|
625
|
+
"prefetchSteps": [
|
|
626
|
+
"one-exact-git-backed-fixture-clone-cwd-head-and-isolated-consumer-home-store",
|
|
627
|
+
"baseline-v4-immutable-tracked-binding-and-normalized-residue-projection",
|
|
628
|
+
"source-bound-bootstrap-before-final-fixture-commit",
|
|
629
|
+
"source-bound-preparation-v4-constrained-final-diff-and-normalized-residue-projection",
|
|
630
|
+
"one-final-commit-with-only-source-bound-bootstrap-allowlist-and-reusable-pin",
|
|
631
|
+
"post-commit-excluded-runtime-build-only-slow-preparation-before-push-without-arbitrary-outer-timeout",
|
|
632
|
+
"credential-handoff-v4-immutable-binding-and-normalized-residue-projection",
|
|
633
|
+
"observer-child-v4-immutable-binding-and-normalized-residue-projection",
|
|
634
|
+
"immediately-pre-push-v4-immutable-binding-and-normalized-residue-projection",
|
|
635
|
+
"workflow-selected-observer-gh-tool-dpkg-ownership-byte-strict-record-qualified-regular-nonsymlink-policy-primary-optional-known-completion-mode-independent-and-strict-secondary-inert-or-block-copyfile-excl-private-copy-reassessment-version-compatible-runner-temp-isolated-token-free-state-root-fixed-selector-stage-and-package-record-shape-without-package-path-lookup",
|
|
636
|
+
"public-bootstrap-current-loop-state",
|
|
637
|
+
"public-plan-accept-retained-or-draft-plan",
|
|
638
|
+
"public-Gradle-test-compileJava-and-clean",
|
|
639
|
+
"public-README-profile-and-Java-evidence",
|
|
640
|
+
"public-implementation-and-review-report-ingress",
|
|
641
|
+
"public-plan-status",
|
|
642
|
+
"public-bootstrap-current-loop-state",
|
|
643
|
+
"public-bootstrap-current-loop-state",
|
|
644
|
+
"public-plan-accept-retained-or-draft-plan"
|
|
645
|
+
],
|
|
646
|
+
"procedureRecord": {
|
|
647
|
+
"location": "coordinator-governed-immutable-external-procedure-record-no-local-path",
|
|
648
|
+
"sha256": "5389c027b21f72f325a5d9e467ecd4d150f672e14da1d04f51774602a284c57d"
|
|
649
|
+
},
|
|
650
|
+
"stageCleanliness": [
|
|
651
|
+
"baseline",
|
|
652
|
+
"source-bound-preparation",
|
|
653
|
+
"credential-handoff",
|
|
654
|
+
"observer-child",
|
|
655
|
+
"immediately-pre-push"
|
|
656
|
+
],
|
|
657
|
+
"timeBounds": {
|
|
658
|
+
"certificateValidity": "non-relaxable-verify-online-before-leaf-certificate-notAfter",
|
|
659
|
+
"outerTimeout": "forbidden-no-arbitrary-outer-timeout",
|
|
660
|
+
"slowPreparation": "complete-before-one-normal-push"
|
|
661
|
+
},
|
|
662
|
+
"schemaVersion": "consumer-authority-final-observer-procedure.4",
|
|
663
|
+
"cleanliness": {
|
|
664
|
+
"constrainedFinalDiff": "exact-v4-record-final-diff-only-with-immutable-reusable-pin",
|
|
665
|
+
"finalDiffPolicy": "only-documented-source-bound-bootstrap-paths-plus-the-required-immutable-reusable-pin",
|
|
666
|
+
"diagnostic": "normalized-clean-diagnostic-equals-stage-expected-residue-set",
|
|
667
|
+
"enumeration": "nul-safe-untracked-and-ignored-only",
|
|
668
|
+
"forbiddenConsumerPaths": [
|
|
669
|
+
".local/**",
|
|
670
|
+
".config/**",
|
|
671
|
+
".cache/**"
|
|
672
|
+
],
|
|
673
|
+
"immutableTrackedBinding": "exact-cwd-git-toplevel-head-parent-remote-parent-reusable-pin-digest-and-source-identity-digest-map",
|
|
674
|
+
"residueInspection": "lstat-and-realpath-contained-for-every-residue-and-ancestor",
|
|
675
|
+
"sourceProjection": "only-source-identity-and-project-finish-runtime-exclusions",
|
|
676
|
+
"stageResidueProjection": "exact-normalized-v4-record-residue-set-for-each-of-the-five-fences",
|
|
677
|
+
"policy": {
|
|
678
|
+
"allowedSourceBoundFinalDiffPaths": [
|
|
679
|
+
".gitignore",
|
|
680
|
+
".opencode/opencode.json",
|
|
681
|
+
".persona/conventions/**",
|
|
682
|
+
".persona/harness.jsonc",
|
|
683
|
+
".persona/policies/**",
|
|
684
|
+
".persona/project-profile.jsonc",
|
|
685
|
+
".persona/rules/**",
|
|
686
|
+
"AGENTS.md",
|
|
687
|
+
"build.gradle",
|
|
688
|
+
"build.gradle.kts",
|
|
689
|
+
"gradle.properties",
|
|
690
|
+
"settings.gradle",
|
|
691
|
+
"settings.gradle.kts"
|
|
692
|
+
],
|
|
693
|
+
"allowedResidues": [
|
|
694
|
+
{
|
|
695
|
+
"kind": "directory",
|
|
696
|
+
"path": ".gradle"
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"kind": "file",
|
|
700
|
+
"path": ".persona/.ph-init-manifest.json"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"kind": "directory",
|
|
704
|
+
"path": ".persona/evidence"
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"kind": "directory",
|
|
708
|
+
"path": ".persona/workflow"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"kind": "directory",
|
|
712
|
+
"path": "build"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"kind": "directory",
|
|
716
|
+
"path": "node_modules"
|
|
717
|
+
}
|
|
718
|
+
],
|
|
719
|
+
"cleanDiagnostic": "git-clean-ndx-normalized-against-the-nul-safe-status-projection",
|
|
720
|
+
"forbiddenConsumerPaths": [
|
|
721
|
+
".local/**",
|
|
722
|
+
".config/**",
|
|
723
|
+
".cache/**"
|
|
724
|
+
],
|
|
725
|
+
"requiredReusablePinPath": ".github/workflows/research-attestation.yml",
|
|
726
|
+
"schemaVersion": "consumer-authority-final-observer-cleanliness.1",
|
|
727
|
+
"stageResidueProjection": {
|
|
728
|
+
"baseline": [],
|
|
729
|
+
"source-bound-preparation": [
|
|
730
|
+
".persona/.ph-init-manifest.json",
|
|
731
|
+
".persona/workflow"
|
|
732
|
+
],
|
|
733
|
+
"credential-handoff": [
|
|
734
|
+
".gradle",
|
|
735
|
+
".persona/.ph-init-manifest.json",
|
|
736
|
+
".persona/evidence",
|
|
737
|
+
".persona/workflow",
|
|
738
|
+
"build",
|
|
739
|
+
"node_modules"
|
|
740
|
+
],
|
|
741
|
+
"observer-child": [
|
|
742
|
+
".gradle",
|
|
743
|
+
".persona/.ph-init-manifest.json",
|
|
744
|
+
".persona/evidence",
|
|
745
|
+
".persona/workflow",
|
|
746
|
+
"build",
|
|
747
|
+
"node_modules"
|
|
748
|
+
],
|
|
749
|
+
"immediately-pre-push": [
|
|
750
|
+
".gradle",
|
|
751
|
+
".persona/.ph-init-manifest.json",
|
|
752
|
+
".persona/evidence",
|
|
753
|
+
".persona/workflow",
|
|
754
|
+
"build",
|
|
755
|
+
"node_modules"
|
|
756
|
+
]
|
|
757
|
+
},
|
|
758
|
+
"stages": [
|
|
759
|
+
"baseline",
|
|
760
|
+
"source-bound-preparation",
|
|
761
|
+
"credential-handoff",
|
|
762
|
+
"observer-child",
|
|
763
|
+
"immediately-pre-push"
|
|
764
|
+
],
|
|
765
|
+
"statusEnumeration": "git-status-porcelain-v1-z-untracked-all-ignored-matching"
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
"observerGhTool": {
|
|
769
|
+
"executable": "workflow-selected-absolute-regular-non-symlink",
|
|
770
|
+
"invocation": "direct-exec-no-shell-no-path-lookup",
|
|
771
|
+
"output": "bounded-version-classification-only",
|
|
772
|
+
"provisioning": "workflow-owned-runner-package-record-to-private-regular-copy",
|
|
773
|
+
"schemaVersion": "consumer-authority-observer-gh-tool.2",
|
|
774
|
+
"version": ">=2.96.0 <3.0.0"
|
|
775
|
+
},
|
|
776
|
+
"observerGhSelection": "source-and-protected-ubuntu-ci-only-workflow-owned-dpkg-ownership-and-byte-strict-package-record-qualified-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-inert-or-block-policy-copyfile-excl-private-copy-reassessment-with-runner-temp-isolated-token-free-state-root-and-fixed-nonreflective-selector-stage-and-package-record-shape",
|
|
777
|
+
"attestationCommandPreflight": {
|
|
778
|
+
"command": "node node_modules/persona-harness/scripts/preflight-consumer-authority-external-attestation.mjs --json --observer-gh <workflow-private-copy>",
|
|
779
|
+
"credential": "absent",
|
|
780
|
+
"input": "fixed-nonmaterialized-placeholder-exact-rendered-command-plan-and-help-only",
|
|
781
|
+
"output": "bounded-parser-classification-only",
|
|
782
|
+
"parser": "direct-absolute-gh-attestation-verify-placeholder-exact-plan-arguments-help",
|
|
783
|
+
"productFallback": "forbidden",
|
|
784
|
+
"stateIsolation": "same-explicit-token-free-home-gh-xdg-temp-git-and-npm-state-root-as-direct-version-assessment",
|
|
785
|
+
"timeout": "short-parser-only-bound"
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
"hostedResidual": {
|
|
790
|
+
"id": "v0822-current-package-acceptance-and-authorized-current-artifact-observation",
|
|
791
|
+
"requiredEvidence": "one separately authorized normal push of the v4-prepared exact fixture commit; immediate current-version original-artifact transport, online verification before leaf-certificate-notAfter without validity relaxation, one authenticated fetch, one Finish consumption, and immediate replay rejection occur in the same unchanged consumer",
|
|
792
|
+
"whyLocalCannotClose": "A real current signed artifact, leaf-certificate validity window, isolated external credential, online verification, and GitHub Actions discovery cannot be produced locally. Source and CI-shaped packed exercise prove v4 tracked-binding, stage-scoped residue cleanliness, workflow-selected observer-gh ownership, byte-strict primary package-record selector lifecycle, COPYFILE_EXCL private-copy reassessment, one runner-temp isolated token-free state root, fixed-placeholder exact-plan help parser preflight without artifact or network access, strict secondary validation, fixed stage and shape diagnostics. Package acceptance separately proves current package-lock-acceptance binding, exact-tar provenance, normal installation, installed-only no-source fallback, CLI approval-before-mutation behavior, complete source and fresh-installed fixture import closure, explicit public acceptance of a retained draft plan, exact Linux authority-fetch child envelope behavior, trusted-unconsumed-persisted discovery result binding, public readiness, privacy, trusted modeled fetch, one Finish consumption, and replay block without accessing a live artifact."
|
|
793
|
+
},
|
|
794
|
+
"mutationBoundary": {
|
|
795
|
+
"performed": false,
|
|
796
|
+
"prohibited": [
|
|
797
|
+
"npm-publish",
|
|
798
|
+
"tag-or-dist-tag-mutation",
|
|
799
|
+
"release-creation",
|
|
800
|
+
"artifact-download-or-live-verification",
|
|
801
|
+
"Finish-consumption",
|
|
802
|
+
"fixture-push-or-workflow-dispatch"
|
|
803
|
+
]
|
|
804
|
+
},
|
|
805
|
+
"beta16HistoricalExternal": {
|
|
806
|
+
"outcome": "external-gh-artifact-download-exit-zero-with-zero-byte-output-before-zip-validation",
|
|
807
|
+
"reusableForBeta17": false,
|
|
808
|
+
"version": "0.8.0-beta.16"
|
|
809
|
+
},
|
|
810
|
+
"externalArtifactTransportPlan": {
|
|
811
|
+
"api": {
|
|
812
|
+
"accept": "application/vnd.github+json, application/octet-stream",
|
|
813
|
+
"origin": "https://api.github.com",
|
|
814
|
+
"version": "2022-11-28"
|
|
815
|
+
},
|
|
816
|
+
"artifact": {
|
|
817
|
+
"maximumBytes": 8388608,
|
|
818
|
+
"source": "validated-actions-artifact-metadata"
|
|
819
|
+
},
|
|
820
|
+
"endpoint": {
|
|
821
|
+
"method": "GET",
|
|
822
|
+
"path": "/repos/{caller-enrollment.repositorySlug}/actions/artifacts/{artifact.id}/zip"
|
|
823
|
+
},
|
|
824
|
+
"output": {
|
|
825
|
+
"files": [
|
|
826
|
+
"original.zip",
|
|
827
|
+
"bundle.json"
|
|
828
|
+
],
|
|
829
|
+
"root": "private-observer-mkdtemp",
|
|
830
|
+
"write": "no-follow-reserved-and-promote-after-validation"
|
|
831
|
+
},
|
|
832
|
+
"redirect": {
|
|
833
|
+
"authorization": "api-origin-only",
|
|
834
|
+
"maximum": 1,
|
|
835
|
+
"permittedHosts": [
|
|
836
|
+
"pipelines.actions.githubusercontent.com",
|
|
837
|
+
"results-receiver.actions.githubusercontent.com",
|
|
838
|
+
"*.blob.core.windows.net"
|
|
839
|
+
]
|
|
840
|
+
},
|
|
841
|
+
"response": {
|
|
842
|
+
"contentTypes": [
|
|
843
|
+
"application/octet-stream",
|
|
844
|
+
"application/zip"
|
|
845
|
+
],
|
|
846
|
+
"status": 200,
|
|
847
|
+
"timeoutMs": 15000
|
|
848
|
+
},
|
|
849
|
+
"schemaVersion": "consumer-authority-external-artifact-transport-plan.1"
|
|
850
|
+
},
|
|
851
|
+
"beta17HistoricalPublish": {
|
|
852
|
+
"beta16Registry": "present-in-public-registry",
|
|
853
|
+
"outcome": "canonical-tar-and-provenance-completed-before-authorization-shaped-registry-put-e404",
|
|
854
|
+
"reusableForBeta18": false,
|
|
855
|
+
"version": "0.8.0-beta.17"
|
|
856
|
+
},
|
|
857
|
+
"canonicalPackagePublisherPlan": {
|
|
858
|
+
"canonicalPackerRuntime": {
|
|
859
|
+
"node": "20.19.0",
|
|
860
|
+
"npm": "10.8.2"
|
|
861
|
+
},
|
|
862
|
+
"canonicalTar": {
|
|
863
|
+
"handoff": "exact-canonical-tarball-sha256-and-package-content-identity",
|
|
864
|
+
"source": "canonical-package-packer-output-and-package-facts"
|
|
865
|
+
},
|
|
866
|
+
"preflight": {
|
|
867
|
+
"argv": [
|
|
868
|
+
"npm",
|
|
869
|
+
"publish",
|
|
870
|
+
"<canonical-tarball>",
|
|
871
|
+
"--access",
|
|
872
|
+
"public",
|
|
873
|
+
"--tag",
|
|
874
|
+
"<selected-dist-tag>",
|
|
875
|
+
"--provenance",
|
|
876
|
+
"--dry-run"
|
|
877
|
+
],
|
|
878
|
+
"credentials": "no-custom-token-exchange-or-auth-state-output",
|
|
879
|
+
"mode": "node24-npm11-exact-canonical-tarball-dry-run"
|
|
880
|
+
},
|
|
881
|
+
"publisherEnvironment": {
|
|
882
|
+
"canonicalPackerConfigInheritance": "forbidden",
|
|
883
|
+
"isolated": [
|
|
884
|
+
"HOME",
|
|
885
|
+
"NPM_CONFIG_CACHE",
|
|
886
|
+
"NPM_CONFIG_GLOBALCONFIG",
|
|
887
|
+
"NPM_CONFIG_USERCONFIG"
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
"publisherRuntime": {
|
|
891
|
+
"node": "24.18.0",
|
|
892
|
+
"npm": "11.16.0"
|
|
893
|
+
},
|
|
894
|
+
"npmTrustedPublishingMinimum": {
|
|
895
|
+
"node": "22.14.0",
|
|
896
|
+
"npm": "11.5.1"
|
|
897
|
+
},
|
|
898
|
+
"registryPut": {
|
|
899
|
+
"evidence": "hosted-only",
|
|
900
|
+
"historicalBeta17": "authorization-shaped-registry-response-not-package-absence"
|
|
901
|
+
},
|
|
902
|
+
"schemaVersion": "canonical-package-publisher-plan.1"
|
|
903
|
+
},
|
|
904
|
+
"beta18HistoricalPublish": {
|
|
905
|
+
"contentIdentity": "bf3de031ae9ed6d9ab290291f151d0befc1fc4804465f55bddb5ad382399a150",
|
|
906
|
+
"outcome": "registry-publish-succeeded-and-canonical-registry-bytes-matched-before-an-unsupported-githead-metadata-requirement-blocked-readback",
|
|
907
|
+
"rawTarballSha256": "66ef460552d03fd067baf412c1d4952e5bd42811b419c585092fc7a75b4c54e6",
|
|
908
|
+
"reusableForBeta19": false,
|
|
909
|
+
"version": "0.8.0-beta.18"
|
|
910
|
+
},
|
|
911
|
+
"beta19HistoricalPublish": {
|
|
912
|
+
"outcome": "published-immutable-staging-package-not-reusable-as-current-package-evidence",
|
|
913
|
+
"reusableForBeta20": false,
|
|
914
|
+
"version": "0.8.0-beta.19"
|
|
915
|
+
},
|
|
916
|
+
"beta20HistoricalFinalObserver": {
|
|
917
|
+
"outcome": "trusted-unconsumed-live-fetch-followed-by-intentional-workflow-state-uninitialized-block-not-reusable-as-closure-evidence",
|
|
918
|
+
"procedureRecordSha256": "1d370a4e4cdd55b20e27c016073246b78c373548c84c89c3499b3838e27980a7",
|
|
919
|
+
"reusableForBeta21": false,
|
|
920
|
+
"version": "0.8.0-beta.20"
|
|
921
|
+
},
|
|
922
|
+
"beta21HistoricalFinalObserver": {
|
|
923
|
+
"outcome": "online-crypto-and-bindings-passed-after-leaf-window-expired-before-authority-fetch-not-reusable-as-closure-evidence",
|
|
924
|
+
"reusableForBeta22": false,
|
|
925
|
+
"version": "0.8.0-beta.21"
|
|
926
|
+
},
|
|
927
|
+
"beta22HistoricalFinalObserver": {
|
|
928
|
+
"outcome": "host-gh-xdg-state-created-untracked-local-device-id-after-final-commit-not-reusable-as-closure-evidence",
|
|
929
|
+
"reusableForBeta23": false,
|
|
930
|
+
"version": "0.8.0-beta.22"
|
|
931
|
+
},
|
|
932
|
+
"beta23HistoricalFinalObserver": {
|
|
933
|
+
"outcome": "raw-empty-porcelain-and-clean-contradicted-approved-runtime-build-residue-after-final-commit-not-reusable-as-closure-evidence",
|
|
934
|
+
"reusableForBeta28": false,
|
|
935
|
+
"version": "0.8.0-beta.23"
|
|
936
|
+
},
|
|
937
|
+
"beta24HistoricalExternalContract": {
|
|
938
|
+
"outcome": "supplied-bundle-source-contract-required-ambient-gh-and-rejected-linux-runtime-owned-uv-use-io-uring-not-reusable-as-closure-evidence",
|
|
939
|
+
"reusableForBeta28": false,
|
|
940
|
+
"version": "0.8.0-beta.24"
|
|
941
|
+
},
|
|
942
|
+
"beta25HistoricalObserverTool": {
|
|
943
|
+
"outcome": "protected-verify-used-an-unselected-literal-observer-gh-path-and-collapsed-tool-stage-not-reusable-as-closure-evidence",
|
|
944
|
+
"reusableForBeta28": false,
|
|
945
|
+
"version": "0.8.0-beta.25"
|
|
946
|
+
},
|
|
947
|
+
"beta26HistoricalObserverTool": {
|
|
948
|
+
"outcome": "ubuntu-gh-package-record-includes-a-regular-nonexecutable-completion-sibling-and-basename-only-selection-blocked-before-tool-assessment-not-reusable-as-closure-evidence",
|
|
949
|
+
"reusableForBeta28": false,
|
|
950
|
+
"version": "0.8.0-beta.26"
|
|
951
|
+
},
|
|
952
|
+
"beta27HistoricalObserverTool": {
|
|
953
|
+
"outcome": "protected-verify-selector-collapsed-runner-package-list-record-assessment-private-copy-and-output-handoff-failures-to-one-non-attributable-code-not-reusable-as-closure-evidence",
|
|
954
|
+
"reusableForBeta28": false,
|
|
955
|
+
"version": "0.8.0-beta.27"
|
|
956
|
+
},
|
|
957
|
+
"observerGhTool": {
|
|
958
|
+
"executable": "workflow-selected-absolute-regular-non-symlink",
|
|
959
|
+
"invocation": "direct-exec-no-shell-no-path-lookup",
|
|
960
|
+
"output": "bounded-version-classification-only",
|
|
961
|
+
"provisioning": "workflow-owned-runner-package-record-to-private-regular-copy",
|
|
962
|
+
"schemaVersion": "consumer-authority-observer-gh-tool.2",
|
|
963
|
+
"version": ">=2.96.0 <3.0.0"
|
|
964
|
+
},
|
|
965
|
+
"observerGhSelection": {
|
|
966
|
+
"diagnostics": "only-fixed-tool-invalid-tool-unavailable-tool-version-unsupported-parser-rejected-parser-timeout-non-tool-stage-selector-stage-and-package-record-shape-codes-cross-the-package-contract-boundary",
|
|
967
|
+
"dpkgOwnership": "bounded-direct-dpkg-query-requires-gh-installed-status-ii-and-the-current-linux-architecture-before-package-record-parsing",
|
|
968
|
+
"packageRecord": {
|
|
969
|
+
"ancillary": "allow-an-absent-documented-completion-silently-and-allow-only-the-present-known-completion-after-no-follow-regular-nonsymlink-validation-regardless-of-executable-mode; treat-other-present-secondary-basename-gh-records-as-inert-only-after-no-follow-regular-nonsymlink-nonexecutable-validation; reject-listed-missing-symlink-nonregular-or-unknown-executable-secondary-records",
|
|
970
|
+
"encoding": "bounded-buffer-valid-utf8-lf-only-with-an-optional-final-lf-and-no-nul-cr-blank-duplicate-or-noncanonical-records",
|
|
971
|
+
"primary": "require-exactly-the-policy-primary-/usr/bin/gh-record-as-a-regular-nonsymlink-executable-after-no-follow-lstat",
|
|
972
|
+
"shapes": [
|
|
973
|
+
"record-encoding",
|
|
974
|
+
"record-path",
|
|
975
|
+
"primary-missing",
|
|
976
|
+
"primary-unsafe",
|
|
977
|
+
"ancillary-unsafe",
|
|
978
|
+
"executable-ambiguous",
|
|
979
|
+
"lstat-failed",
|
|
980
|
+
"canonical"
|
|
981
|
+
],
|
|
982
|
+
"unknownExecutables": "reject-every-secondary-executable-or-alias-as-ambiguous"
|
|
983
|
+
},
|
|
984
|
+
"stateIsolation": "every-direct-version-assessment-and-parser-help-preflight-use-only-a-validated-runner-temp-real-directory-as-one-explicit-token-free-home-gh-xdg-temp-git-and-npm-state-root-so-gh-cannot-create-consumer-local-state",
|
|
985
|
+
"stages": [
|
|
986
|
+
"environment",
|
|
987
|
+
"package-list",
|
|
988
|
+
"package-record",
|
|
989
|
+
"source-assessment",
|
|
990
|
+
"private-reservation",
|
|
991
|
+
"private-copy",
|
|
992
|
+
"private-assessment",
|
|
993
|
+
"output-handoff"
|
|
994
|
+
],
|
|
995
|
+
"unknown": "selector-internal",
|
|
996
|
+
"workflow": "validate-runner-temp-and-github-output-then-owned-dpkg-status-architecture-and-byte-record-primary-selection-with-optional-known-completion-mode-independent-validation-and-strict-secondary-inert-or-block-policy-and-runner-temp-isolated-token-free-state-root-to-copyfile-excl-private-regular-nonsymlink-copy-reassessment-and-parser-help-preflight-before-ci-publish-and-release-package-contracts"
|
|
997
|
+
},
|
|
998
|
+
"closureCompleteness": {
|
|
999
|
+
"deterministicLinks": [
|
|
1000
|
+
"immutable-tracked-source-head-parent-pin-and-digest-map",
|
|
1001
|
+
"v4-stage-scoped-runtime-residue-cleanliness",
|
|
1002
|
+
"ubuntu-dpkg-ownership-byte-strict-package-record-policy-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-records-workflow-selected-copyfile-excl-private-observer-gh-tool-reassessment-and-no-network-parser-help-preflight-with-fixed-nonreflective-selector-stage-and-package-record-shape-without-package-path-lookup",
|
|
1003
|
+
"linux-runtime-owned-uv-use-io-uring-child-envelope-only",
|
|
1004
|
+
"same-consumer-public-bootstrap-explicit-plan-accept-loop-gradle-reports-evidence-readiness",
|
|
1005
|
+
"host-state-isolated-credential-preflight-and-command-transport-plans",
|
|
1006
|
+
"current-original-byte-and-online-crypto-before-leaf-certificate-notAfter",
|
|
1007
|
+
"authenticated-fetch-to-trusted-unconsumed",
|
|
1008
|
+
"one-Finish-consumption-and-immediate-replay-block",
|
|
1009
|
+
"current-package-lock-acceptance-version-binding-and-complete-source-and-fresh-installed-fixture-import-closure-without-source-fallback",
|
|
1010
|
+
"workflow-private-copy-reassessment-and-fixed-placeholder-exact-plan-help-parser-preflight-without-artifact-network-token-or-ambient-state",
|
|
1011
|
+
"actual-opencode-first-assistant-response-linked-event-and-zero-pre-approval-mutation-trace-without-transformed-input-substitution"
|
|
1012
|
+
],
|
|
1013
|
+
"localProof": "clean-linux-node20-source-built-and-fresh-packed-installed-v4-cleanliness-qualified-dpkg-ownership-byte-strict-primary-with-optional-known-completion-mode-independent-validation-and-strict-secondary-package-record-copyfile-excl-private-copy-reassessment-runner-temp-isolated-token-free-gh-state-fixed-placeholder-exact-plan-help-parser-preflight-fixed-stage-and-shape-diagnostics-current-package-lock-acceptance-binding-complete-fixture-import-closure-and-authority-child-contracts-with-exact-linux-runtime-envelope-and-trusted-unconsumed-persisted-discovery-result-binding",
|
|
1014
|
+
"remainingUncertainty": "one-authorized-v4-fixture-push-and-immediate-current-artifact-observation-only"
|
|
1015
|
+
},
|
|
1016
|
+
"beta28HistoricalObserverTool": {
|
|
1017
|
+
"outcome": "protected-verify-observed-an-unattributed-package-record-selector-block-before-tests-and-beta28-is-not-reusable-as-closure-evidence",
|
|
1018
|
+
"reusableForBeta29": false,
|
|
1019
|
+
"version": "0.8.0-beta.28"
|
|
1020
|
+
},
|
|
1021
|
+
"beta29HistoricalObserverTool": {
|
|
1022
|
+
"outcome": "protected-verify-observed-a-primary-validated-package-record-block-at-a-conflated-nonselected-ancillary-shape-and-beta29-is-not-reusable-as-closure-evidence",
|
|
1023
|
+
"reusableForBeta30": false,
|
|
1024
|
+
"version": "0.8.0-beta.29"
|
|
1025
|
+
},
|
|
1026
|
+
"beta30HistoricalObserverTool": {
|
|
1027
|
+
"outcome": "protected-verify-observed-a-documented-nonselected-completion-in-executable-mode-classified-as-an-ambiguous-executor-before-the-known-completion-policy-branch-and-beta30-is-not-reusable-as-closure-evidence",
|
|
1028
|
+
"reusableForBeta31": false,
|
|
1029
|
+
"version": "0.8.0-beta.30"
|
|
1030
|
+
},
|
|
1031
|
+
"beta31HistoricalPackageContract": {
|
|
1032
|
+
"outcome": "protected-verify-revealed-stale-current-version-authority-and-incomplete-source-and-release-fixture-copy-graphs-before-the-real-source-and-fresh-tar-package-contracts-could-run",
|
|
1033
|
+
"reusableForBeta32": false,
|
|
1034
|
+
"version": "0.8.0-beta.31"
|
|
1035
|
+
},
|
|
1036
|
+
"beta32HistoricalParserPreflight": {
|
|
1037
|
+
"outcome": "protected-verify-reached-the-authoritative-bundle-source-contract-but-live-invalid-bundle-attestation-preflight-entered-gh-network-and-sigstore-initialization-before-parser-rejection-and-timed-out-not-reusable-as-closure-evidence",
|
|
1038
|
+
"reusableForBeta33": false,
|
|
1039
|
+
"version": "0.8.0-beta.32"
|
|
1040
|
+
},
|
|
1041
|
+
"rc1HistoricalNextChannelOnly": {
|
|
1042
|
+
"outcome": "published-to-the-next-channel-to-open-the-release-candidate-cycle-the-integrity-roadmap-requires-before-stable-and-establishes-no-latest-or-general-availability-claim-on-its-own",
|
|
1043
|
+
"reusableForGa": false,
|
|
1044
|
+
"version": "0.8.0-rc.1"
|
|
1045
|
+
},
|
|
1046
|
+
"gaHistoricalSupersededByPatch": {
|
|
1047
|
+
"outcome": "accepted-as-the-general-availability-record-for-its-own-tree-and-superseded-only-for-the-two-no-native-artifact-finish-fixes-this-patch-carries-so-it-establishes-no-claim-about-them",
|
|
1048
|
+
"reusableForV081": false,
|
|
1049
|
+
"version": "0.8.0"
|
|
1050
|
+
},
|
|
1051
|
+
"acceptanceResponsibilities": {
|
|
1052
|
+
"package": {
|
|
1053
|
+
"excludes": [
|
|
1054
|
+
"attestation-parser",
|
|
1055
|
+
"observer-gh-selector"
|
|
1056
|
+
],
|
|
1057
|
+
"requires": [
|
|
1058
|
+
"exact-tar-provenance",
|
|
1059
|
+
"normal-install",
|
|
1060
|
+
"installed-only-no-source-fallback",
|
|
1061
|
+
"cli-and-approval-before-mutation",
|
|
1062
|
+
"post-model-assistant-response-and-pre-approval-trace"
|
|
1063
|
+
]
|
|
1064
|
+
},
|
|
1065
|
+
"sourceAndProtectedUbuntuCi": {
|
|
1066
|
+
"requires": [
|
|
1067
|
+
"workflow-owned-dpkg-observer-gh-selection",
|
|
1068
|
+
"private-regular-nonsymlink-observer-gh-copy",
|
|
1069
|
+
"path-free-attestation-parser-preflight"
|
|
1070
|
+
]
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
"v081HistoricalRelease": {
|
|
1074
|
+
"outcome": "accepted-for-its-own-v081-tree-and-not-reusable-for-the-published-v082-release-or-any-later-package",
|
|
1075
|
+
"reusableForV082": false,
|
|
1076
|
+
"version": "0.8.1"
|
|
1077
|
+
},
|
|
1078
|
+
"v082HistoricalRelease": {
|
|
1079
|
+
"outcome": "published-latest-v082-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1080
|
+
"reusableForV0814": false,
|
|
1081
|
+
"version": "0.8.2"
|
|
1082
|
+
},
|
|
1083
|
+
"v083HistoricalRelease": {
|
|
1084
|
+
"outcome": "published-0.8.3-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1085
|
+
"reusableForV0814": false,
|
|
1086
|
+
"version": "0.8.3"
|
|
1087
|
+
},
|
|
1088
|
+
"openCodeInterviewObservation": {
|
|
1089
|
+
"approvalBoundary": {
|
|
1090
|
+
"event": "permission.replied",
|
|
1091
|
+
"acceptedResponses": [
|
|
1092
|
+
"once",
|
|
1093
|
+
"always"
|
|
1094
|
+
],
|
|
1095
|
+
"preApprovalMutation": "tool.execute-before-or-after-command-executed-file-edited-file-watcher-updated-session-diff-and-assistant-tool-parts-block-before-approval"
|
|
1096
|
+
},
|
|
1097
|
+
"input": "normalized-opencode-event-stream-from-message-and-plugin-hook-surfaces",
|
|
1098
|
+
"firstResponse": {
|
|
1099
|
+
"assistantMessage": "first-message.updated-role-assistant-with-one-session-bound-message-id",
|
|
1100
|
+
"assistantText": "message.part.updated-text-parts-linked-to-that-assistant-message-only",
|
|
1101
|
+
"transformedUserInput": "user-messages-and-user-text-parts-never-satisfy-the-post-model-predicate",
|
|
1102
|
+
"messageIdentity": "message-id-session-role-and-event-surface-association-is-immutable-role-drift-blocks",
|
|
1103
|
+
"partIdentity": "part-id-session-message-type-and-event-surface-association-is-immutable-linked-text-cannot-promote",
|
|
1104
|
+
"lifecycle": {
|
|
1105
|
+
"message": "message.updated-first-or-same-binding-repeat-then-user-message.removed-once; no-unknown-remove-or-update-after-remove",
|
|
1106
|
+
"part": "message.part.updated-first-or-same-binding-repeat-then-message.part.removed-once; no-unknown-remove-update-after-remove-or-rebind",
|
|
1107
|
+
"rejectedCodes": [
|
|
1108
|
+
"message-lifecycle-invalid",
|
|
1109
|
+
"part-lifecycle-invalid"
|
|
1110
|
+
]
|
|
1111
|
+
},
|
|
1112
|
+
"cardinality": "one-assistant-message-id-only-repeated-updates-of-that-id-allowed"
|
|
1113
|
+
},
|
|
1114
|
+
"response": {
|
|
1115
|
+
"predicate": "one-bounded-single-question-response-with-one-terminal-question-mark",
|
|
1116
|
+
"rejectedContent": [
|
|
1117
|
+
"solution",
|
|
1118
|
+
"plan",
|
|
1119
|
+
"command",
|
|
1120
|
+
"file-change",
|
|
1121
|
+
"multiple-or-nonquestion-content"
|
|
1122
|
+
]
|
|
1123
|
+
},
|
|
1124
|
+
"output": "fixed-status-booleans-and-code-only-no-response-text-path-argument-token-or-host-data",
|
|
1125
|
+
"schemaVersion": "opencode-interview-observation.1"
|
|
1126
|
+
},
|
|
1127
|
+
"v084HistoricalRelease": {
|
|
1128
|
+
"outcome": "published-0.8.4-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1129
|
+
"reusableForV0814": false,
|
|
1130
|
+
"version": "0.8.4"
|
|
1131
|
+
},
|
|
1132
|
+
"v085HistoricalRelease": {
|
|
1133
|
+
"outcome": "immutable-v085-tag-release-is-unpublished-history-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1134
|
+
"reusableForV0814": false,
|
|
1135
|
+
"version": "0.8.5"
|
|
1136
|
+
},
|
|
1137
|
+
"v086HistoricalRelease": {
|
|
1138
|
+
"outcome": "published-latest-v086-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1139
|
+
"reusableForV0814": false,
|
|
1140
|
+
"version": "0.8.6"
|
|
1141
|
+
},
|
|
1142
|
+
"v087HistoricalRelease": {
|
|
1143
|
+
"outcome": "published-latest-v087-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1144
|
+
"reusableForV0814": false,
|
|
1145
|
+
"version": "0.8.7"
|
|
1146
|
+
},
|
|
1147
|
+
"v088HistoricalRelease": {
|
|
1148
|
+
"outcome": "published-latest-v088-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1149
|
+
"reusableForV0814": false,
|
|
1150
|
+
"version": "0.8.8"
|
|
1151
|
+
},
|
|
1152
|
+
"v0813HistoricalRelease": {
|
|
1153
|
+
"outcome": "immutable-v0813-tag-release-is-unpublished-history-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1154
|
+
"reusableForV0814": false,
|
|
1155
|
+
"version": "0.8.13"
|
|
1156
|
+
},
|
|
1157
|
+
"v0812HistoricalRelease": {
|
|
1158
|
+
"outcome": "published-0.8.12-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1159
|
+
"reusableForV0814": false,
|
|
1160
|
+
"version": "0.8.12"
|
|
1161
|
+
},
|
|
1162
|
+
"v0810HistoricalRelease": {
|
|
1163
|
+
"outcome": "published-latest-v0810-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1164
|
+
"reusableForV0814": false,
|
|
1165
|
+
"version": "0.8.10"
|
|
1166
|
+
},
|
|
1167
|
+
"v0811HistoricalRelease": {
|
|
1168
|
+
"outcome": "published-0.8.11-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1169
|
+
"reusableForV0814": false,
|
|
1170
|
+
"version": "0.8.11"
|
|
1171
|
+
},
|
|
1172
|
+
"v089HistoricalRelease": {
|
|
1173
|
+
"outcome": "published-latest-v089-release-is-immutable-and-not-reusable-for-this-unpublished-v0814-source-candidate-or-any-later-package",
|
|
1174
|
+
"reusableForV0814": false,
|
|
1175
|
+
"version": "0.8.9"
|
|
1176
|
+
},
|
|
1177
|
+
"observerGhVersionProbe": {
|
|
1178
|
+
"ceilingMs": 15000,
|
|
1179
|
+
"timeoutCode": "gh-command-version-timeout",
|
|
1180
|
+
"unavailableCode": "gh-command-unavailable",
|
|
1181
|
+
"unsupportedCode": "gh-command-version-unsupported",
|
|
1182
|
+
"invalidCode": "gh-command-tool-invalid",
|
|
1183
|
+
"selectorCode": "observer-gh-workflow-tool-timeout",
|
|
1184
|
+
"stageCode": "observer-gh-tool-timeout",
|
|
1185
|
+
"output": "fixed-code-only-no-process-output"
|
|
1186
|
+
},
|
|
1187
|
+
"v0814HistoricalRelease": {
|
|
1188
|
+
"outcome": "published-0.8.14-release-is-immutable-and-not-reusable-for-this-unpublished-v0815-source-candidate-or-any-later-package",
|
|
1189
|
+
"reusableForV0815": false,
|
|
1190
|
+
"version": "0.8.14"
|
|
1191
|
+
},
|
|
1192
|
+
"v0815HistoricalRelease": {
|
|
1193
|
+
"outcome": "published-0.8.15-release-is-immutable-and-not-reusable-for-this-unpublished-v0816-source-candidate-or-any-later-package",
|
|
1194
|
+
"reusableForV0816": false,
|
|
1195
|
+
"version": "0.8.15"
|
|
1196
|
+
},
|
|
1197
|
+
"v0816HistoricalRelease": {
|
|
1198
|
+
"outcome": "published-0.8.16-release-is-immutable-and-not-reusable-for-this-unpublished-v0817-source-candidate-or-any-later-package",
|
|
1199
|
+
"reusableForV0817": false,
|
|
1200
|
+
"version": "0.8.16"
|
|
1201
|
+
},
|
|
1202
|
+
"initialization": {
|
|
1203
|
+
"packageTemplateIdentity": "canonical-package-template-digest-remains-separate-from-effective-bootstrap-overlay-file-digests",
|
|
1204
|
+
"repairStaging": "manifest-less-recognized-portable-static-baseline-records-the-caller-realpath-before-staging-ownership-verification"
|
|
1205
|
+
},
|
|
1206
|
+
"projectFinishSourceIdentity": {
|
|
1207
|
+
"adoptedInstructionPolicy": "remains-source-bound",
|
|
1208
|
+
"repairInferenceObservations": "excludes-only-.persona/instructions/inferred.json-and-.persona/instructions/conflicts.json"
|
|
1209
|
+
},
|
|
1210
|
+
"v0821HistoricalRelease": {
|
|
1211
|
+
"outcome": "published-0.8.21-release-is-immutable-and-not-reusable-for-this-unpublished-v0822-source-candidate-or-any-later-package",
|
|
1212
|
+
"reusableForV0822": false,
|
|
1213
|
+
"version": "0.8.21"
|
|
1214
|
+
}
|
|
1215
|
+
}
|