codex-workflow-v2 2.0.0-beta.13.8 → 2.0.0-beta.14
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/README.md +27 -388
- package/dist/reviewer-runtime-build.json +96 -32
- package/dist/src/alpha6/adoption.d.ts +2 -0
- package/dist/src/alpha6/adoption.js +22 -0
- package/dist/src/alpha6/adoption.js.map +1 -1
- package/dist/src/alpha6/captured-check-evidence.d.ts +51 -0
- package/dist/src/alpha6/captured-check-evidence.js +152 -0
- package/dist/src/alpha6/captured-check-evidence.js.map +1 -0
- package/dist/src/alpha6/component-owner.d.ts +15 -1
- package/dist/src/alpha6/component-owner.js +44 -2
- package/dist/src/alpha6/component-owner.js.map +1 -1
- package/dist/src/alpha6/corrective-decision-boundary.d.ts +4 -0
- package/dist/src/alpha6/corrective-decision-boundary.js +47 -0
- package/dist/src/alpha6/corrective-decision-boundary.js.map +1 -0
- package/dist/src/alpha6/downstream-proof.d.ts +1 -25
- package/dist/src/alpha6/downstream-proof.js +0 -171
- package/dist/src/alpha6/downstream-proof.js.map +1 -1
- package/dist/src/alpha6/failed-step-planning-recovery.d.ts +10 -0
- package/dist/src/alpha6/failed-step-planning-recovery.js +93 -0
- package/dist/src/alpha6/failed-step-planning-recovery.js.map +1 -0
- package/dist/src/alpha6/literal-test-invocation.d.ts +2 -0
- package/dist/src/alpha6/literal-test-invocation.js +106 -0
- package/dist/src/alpha6/literal-test-invocation.js.map +1 -0
- package/dist/src/alpha6/milestone.d.ts +2 -0
- package/dist/src/alpha6/milestone.js +10 -1
- package/dist/src/alpha6/milestone.js.map +1 -1
- package/dist/src/alpha6/navigation-dirty-carryover.d.ts +11 -0
- package/dist/src/alpha6/navigation-dirty-carryover.js +130 -0
- package/dist/src/alpha6/navigation-dirty-carryover.js.map +1 -0
- package/dist/src/alpha6/plan-integrity.js +7 -5
- package/dist/src/alpha6/plan-integrity.js.map +1 -1
- package/dist/src/alpha6/plan-risk.d.ts +2 -0
- package/dist/src/alpha6/plan-risk.js +10 -3
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/alpha6/remediation.d.ts +6 -21
- package/dist/src/alpha6/remediation.js +161 -476
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/root-cause-replan-carryover.d.ts +4 -1
- package/dist/src/alpha6/root-cause-replan-carryover.js +29 -5
- package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -1
- package/dist/src/beta1/project-transaction.d.ts +3 -1
- package/dist/src/beta1/project-transaction.js +6 -2
- package/dist/src/beta1/project-transaction.js.map +1 -1
- package/dist/src/checks/runner.d.ts +26 -0
- package/dist/src/checks/runner.js +223 -0
- package/dist/src/checks/runner.js.map +1 -0
- package/dist/src/checks/task-sync.d.ts +10 -0
- package/dist/src/checks/task-sync.js +41 -0
- package/dist/src/checks/task-sync.js.map +1 -0
- package/dist/src/checks/worker.d.ts +1 -0
- package/dist/src/checks/worker.js +154 -0
- package/dist/src/checks/worker.js.map +1 -0
- package/dist/src/cli-actions.d.ts +2 -2
- package/dist/src/cli-actions.js +3 -15
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +14 -98
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +35 -32
- package/dist/src/dependency-provenance.d.ts +2 -2
- package/dist/src/dependency-provenance.js +12 -69
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/domain/base-sync-conflict.d.ts +13 -0
- package/dist/src/domain/base-sync-conflict.js +32 -0
- package/dist/src/domain/base-sync-conflict.js.map +1 -0
- package/dist/src/domain/step-start-admission.d.ts +4 -0
- package/dist/src/domain/step-start-admission.js +9 -0
- package/dist/src/domain/step-start-admission.js.map +1 -0
- package/dist/src/domain/virgin-registration.d.ts +3 -0
- package/dist/src/domain/virgin-registration.js +65 -0
- package/dist/src/domain/virgin-registration.js.map +1 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/gateway-handshake.js +0 -8
- package/dist/src/gateway-handshake.js.map +1 -1
- package/dist/src/git.d.ts +3 -1
- package/dist/src/git.js +41 -14
- package/dist/src/git.js.map +1 -1
- package/dist/src/graph.js +25 -3
- package/dist/src/graph.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/lifecycle/corrective-replan.js +3 -3
- package/dist/src/lifecycle/corrective-replan.js.map +1 -1
- package/dist/src/navigation-actions.d.ts +9 -0
- package/dist/src/navigation-actions.js +72 -0
- package/dist/src/navigation-actions.js.map +1 -0
- package/dist/src/navigation-update-artifact.d.ts +5 -0
- package/dist/src/navigation-update-artifact.js +227 -0
- package/dist/src/navigation-update-artifact.js.map +1 -0
- package/dist/src/navigation-update.d.ts +39 -0
- package/dist/src/navigation-update.js +82 -0
- package/dist/src/navigation-update.js.map +1 -0
- package/dist/src/observation.js +52 -29
- package/dist/src/observation.js.map +1 -1
- package/dist/src/observed-routes.js +5 -6
- package/dist/src/observed-routes.js.map +1 -1
- package/dist/src/pending-review-update.d.ts +0 -13
- package/dist/src/pending-review-update.js +1 -6
- package/dist/src/pending-review-update.js.map +1 -1
- package/dist/src/reviewer.d.ts +1 -1
- package/dist/src/reviewer.js +20 -17
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/runtime.d.ts +3 -0
- package/dist/src/runtime.js +6 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/state/corrective-replan-executor.d.ts +10 -0
- package/dist/src/state/corrective-replan-executor.js +37 -1
- package/dist/src/state/corrective-replan-executor.js.map +1 -1
- package/dist/src/state/corrective-replan-public-schema.js +15 -2
- package/dist/src/state/corrective-replan-public-schema.js.map +1 -1
- package/dist/src/state/corrective-replan-public.js +6 -5
- package/dist/src/state/corrective-replan-public.js.map +1 -1
- package/dist/src/state/corrective-replan-transaction.d.ts +1 -0
- package/dist/src/state/corrective-replan-transaction.js +12 -11
- package/dist/src/state/corrective-replan-transaction.js.map +1 -1
- package/dist/src/state/corrective-yield-executor.js +2 -2
- package/dist/src/state/corrective-yield-executor.js.map +1 -1
- package/dist/src/state/corrective-yield-transaction.d.ts +1 -0
- package/dist/src/state/corrective-yield-transaction.js +11 -10
- package/dist/src/state/corrective-yield-transaction.js.map +1 -1
- package/dist/src/state/lock.d.ts +4 -0
- package/dist/src/state/lock.js +21 -0
- package/dist/src/state/lock.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/src/workflow-blocker-route.d.ts +8 -0
- package/dist/src/workflow-blocker-route.js +106 -0
- package/dist/src/workflow-blocker-route.js.map +1 -0
- package/dist/src/workflow.d.ts +48 -63
- package/dist/src/workflow.js +698 -1470
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +26 -304
- package/docs/decisions.md +14 -112
- package/docs/development-flow.md +35 -238
- package/docs/project-memory.md +31 -50
- package/docs/release-app-evidence.md +190 -0
- package/docs/release.md +95 -363
- package/docs/updating-existing-project.md +19 -717
- package/package.json +11 -13
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +2 -2
- package/plugins/codex-workflow-gateway/references/chat-dispatch.md +73 -197
- package/plugins/codex-workflow-gateway/references/codebase-memory-routing.md +57 -0
- package/plugins/codex-workflow-gateway/references/protocol.md +42 -445
- package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +7 -1
- package/plugins/codex-workflow-gateway/scripts/chat-model-policy.mjs +10 -8
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +23 -5
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +66 -740
- package/references/state-machine.md +4 -4
- package/roles/technical-planner.md +1 -1
- package/schemas/corrective-decision-event.schema.json +3 -1
- package/schemas/project-knowledge-map.schema.json +3 -1
- package/schemas/remediation-event.schema.json +10 -1
- package/schemas/task.schema.json +46 -2
- package/schemas/transition-payloads.schema.json +16 -1
- package/src/alpha6/adoption.ts +1123 -0
- package/src/alpha6/captured-check-evidence.ts +132 -0
- package/src/alpha6/check-support-anchor.ts +128 -0
- package/src/alpha6/component-owner.ts +168 -0
- package/src/alpha6/corrective-decision-boundary.ts +39 -0
- package/src/alpha6/downstream-proof.ts +520 -0
- package/src/alpha6/failed-step-planning-recovery.ts +88 -0
- package/src/alpha6/handoff.ts +1443 -0
- package/src/alpha6/journal.ts +473 -0
- package/src/alpha6/literal-test-invocation.ts +84 -0
- package/src/alpha6/mechanical-feasibility.ts +488 -0
- package/src/alpha6/milestone.ts +2192 -0
- package/src/alpha6/navigation-dirty-carryover.ts +154 -0
- package/src/alpha6/npm-check-contract.ts +47 -0
- package/src/alpha6/plan-integrity.ts +298 -0
- package/src/alpha6/plan-risk.ts +1480 -0
- package/src/alpha6/preexecution-replan.ts +187 -0
- package/src/alpha6/remediation-cause.ts +98 -0
- package/src/alpha6/remediation.ts +2438 -0
- package/src/alpha6/review.ts +1198 -0
- package/src/alpha6/root-cause-replan-carryover.ts +491 -0
- package/src/alpha6/store-sidecars.ts +335 -0
- package/src/alpha7/autonomy.ts +411 -0
- package/src/alpha7/corrective-recovery.ts +1332 -0
- package/src/artifacts.ts +130 -0
- package/src/beta1/project-transaction.ts +355 -0
- package/src/change-explanation.ts +153 -0
- package/src/checks/runner.ts +245 -0
- package/src/checks/task-sync.ts +41 -0
- package/src/checks/worker.ts +149 -0
- package/src/cli-actions.ts +107 -0
- package/src/cli.ts +1457 -0
- package/src/contracts.ts +1494 -0
- package/src/credential-output.ts +89 -0
- package/src/credential-transport.ts +215 -0
- package/src/delegation.ts +190 -0
- package/src/dependency-provenance.ts +472 -0
- package/src/diagnostics.ts +93 -0
- package/src/domain/base-sync-conflict.ts +35 -0
- package/src/domain/completed-step-carryover.ts +76 -0
- package/src/domain/discovery.ts +27 -0
- package/src/domain/plan-semantics.ts +58 -0
- package/src/domain/step-start-admission.ts +10 -0
- package/src/domain/validation.ts +177 -0
- package/src/domain/virgin-registration.ts +46 -0
- package/src/errors.ts +24 -0
- package/src/fs-utils.ts +61 -0
- package/src/gateway-handshake.ts +95 -0
- package/src/git.ts +183 -0
- package/src/graph.ts +342 -0
- package/src/historical-step-provenance.ts +136 -0
- package/src/index.ts +23 -0
- package/src/lifecycle/canonical-hash.ts +28 -0
- package/src/lifecycle/catalog.ts +202 -0
- package/src/lifecycle/compiler-inspection.ts +29 -0
- package/src/lifecycle/core-static-readiness.ts +132 -0
- package/src/lifecycle/corrective-replan-authority.ts +136 -0
- package/src/lifecycle/corrective-replan-binding-manifest.ts +51 -0
- package/src/lifecycle/corrective-replan-credential-core.ts +408 -0
- package/src/lifecycle/corrective-replan-credential-schema.ts +54 -0
- package/src/lifecycle/corrective-replan-credentials.ts +48 -0
- package/src/lifecycle/corrective-replan.ts +843 -0
- package/src/lifecycle/evaluator.ts +48 -0
- package/src/lifecycle/fingerprint.ts +488 -0
- package/src/lifecycle/immutable.ts +8 -0
- package/src/lifecycle/implementation-table.ts +118 -0
- package/src/lifecycle/index.ts +8 -0
- package/src/lifecycle/schema-artifact.ts +263 -0
- package/src/lifecycle/semantic-registry.ts +572 -0
- package/src/lifecycle/types.ts +838 -0
- package/src/memory.ts +273 -0
- package/src/migration.ts +161 -0
- package/src/navigation-actions.ts +70 -0
- package/src/navigation-update-artifact.ts +198 -0
- package/src/navigation-update.ts +121 -0
- package/src/observation.ts +225 -0
- package/src/observed-routes.ts +660 -0
- package/src/operational-contract.ts +125 -0
- package/src/pending-review-update.ts +175 -0
- package/src/repository.ts +99 -0
- package/src/reviewer.ts +1879 -0
- package/src/runtime.ts +6 -0
- package/src/state/corrective-replan-executor.ts +818 -0
- package/src/state/corrective-replan-public-schema.ts +83 -0
- package/src/state/corrective-replan-public.ts +908 -0
- package/src/state/corrective-replan-transaction.ts +949 -0
- package/src/state/corrective-yield-executor.ts +327 -0
- package/src/state/corrective-yield-transaction.ts +730 -0
- package/src/state/lock.ts +902 -0
- package/src/state/store.ts +567 -0
- package/src/transition-core.ts +330 -0
- package/src/ulid.ts +24 -0
- package/src/version.ts +2 -0
- package/src/workflow-blocker-route.ts +109 -0
- package/src/workflow.ts +10172 -0
- package/docs/alpha7.1-implementation-brief.md +0 -268
- package/docs/alpha7.2-corrective-context-refresh-brief.md +0 -484
- package/docs/alpha7.2.1-remediation-recovery-brief.md +0 -86
- package/docs/beta1-stabilization-brief.md +0 -165
- package/docs/beta11-plan-integrity-recovery-brief.md +0 -38
- package/docs/beta13.2-signal-review-recovery.md +0 -38
- package/docs/beta2-initial-assembly-navigation-brief.md +0 -616
- package/docs/change-model.md +0 -118
- package/docs/delegated-approval.md +0 -254
- package/docs/lifecycle/state-machine-stabilization.md +0 -641
- package/docs/pdf/README.md +0 -24
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/pdf/requirements.txt +0 -1
- package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +0 -478
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +0 -508
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +0 -778
- package/docs/pending-review-update.md +0 -15
- package/docs/problem-briefs/01-pre-implementation-integrity.md +0 -482
- package/docs/problem-briefs/02-minimal-step-integrity.md +0 -411
- package/docs/problem-briefs/03-minimal-agent-context-integrity.md +0 -358
- package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +0 -573
- package/docs/problem-briefs/BRIEF-TEMPLATE.md +0 -56
- package/docs/problem-briefs/README.md +0 -120
- package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +0 -90
- package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +0 -246
- package/docs/split-required-recovery.md +0 -47
- package/docs/stable-release-defect-register.md +0 -730
- package/docs/validation-report.md +0 -182
- package/scripts/generate-pdf-docs.py +0 -524
- package/scripts/run-pdf-docs.mjs +0 -62
package/docs/release.md
CHANGED
|
@@ -1,363 +1,95 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
or
|
|
34
|
-
|
|
35
|
-
##
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
and
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
must bind the source remediation cycle, verified historical and current Plans, current
|
|
97
|
-
PRA and authorization, completed evidence, HEAD, file set and content hash. Every carried
|
|
98
|
-
path must already belong to the replacement Step and remain outside forbidden scope;
|
|
99
|
-
carryover never expands scope or forgives unrelated work.
|
|
100
|
-
|
|
101
|
-
Navigation and execution must use the same assessment. Changed bytes, paths, HEAD,
|
|
102
|
-
Plan artifacts, audit/authorization evidence or ambiguous source history must fail
|
|
103
|
-
closed before execution. Tests must continue beyond successful start through checks,
|
|
104
|
-
Core commit and strict review, and reject each material binding mismatch.
|
|
105
|
-
|
|
106
|
-
The stranded-source update must additionally prove a read-only compatibility preflight,
|
|
107
|
-
no writer lease or pending Core operation, exact coherent source/target versions,
|
|
108
|
-
dependency-only Task and Milestone-base commits, registration of the Task dependency
|
|
109
|
-
commit after verification of the base transport, and unchanged product bytes. It must preserve the original Task and Worker and must not
|
|
110
|
-
rely on manual product commits, stash/reset, installed-code edits or state-file edits.
|
|
111
|
-
|
|
112
|
-
All ordinary release gates below apply. The user's one-time beta.13.5 CI-based release
|
|
113
|
-
exception is consumed and is not evidence or an exception for this candidate.
|
|
114
|
-
|
|
115
|
-
## beta.13.5 preventive Plan correction before execution
|
|
116
|
-
|
|
117
|
-
A newly discovered implementation Plan defect can require changing unfinished scope
|
|
118
|
-
before its next Step runs. The preventive route withdraws the current execution
|
|
119
|
-
authorization under an independent blocking Plan Risk Audit, then requires a corrected
|
|
120
|
-
Plan, fresh independent audit and ordinary execution authorization. It must preserve
|
|
121
|
-
the same Task, completed Step definitions and evidence, requirements, acceptance,
|
|
122
|
-
review history and grants. It must not manufacture a failed run to unlock planning.
|
|
123
|
-
|
|
124
|
-
Initial eligibility is deliberately limited to a coherent, clean, idle `ready` Task
|
|
125
|
-
with no C1 ownership or writer lease. Stale bindings, existing ownership, incomplete
|
|
126
|
-
review, unexpected Git history and damaged state must fail closed. Regression gates
|
|
127
|
-
must prove authority withdrawal and actual same-Task continuation, plus rejection of
|
|
128
|
-
attempts to change the objective, discard completed evidence or weaken guarded scope.
|
|
129
|
-
|
|
130
|
-
Replacement Plan publication commits Task state, the current and immutable Plan artifacts,
|
|
131
|
-
and its independent audit atomically. Pending correction blocks C1 handoff and dependency
|
|
132
|
-
transport until the corrected Plan can be authorized. Proof bindings retain each Step,
|
|
133
|
-
failure mode and evidence association; revised proof prose requires an independent audit
|
|
134
|
-
with an explicit rationale. Core does not determine whether natural-language proof claims
|
|
135
|
-
are semantically stronger.
|
|
136
|
-
|
|
137
|
-
External sealed-review CLI help specifies the complete envelope, including its nested
|
|
138
|
-
review. Lifecycle validation admits one bounded expired-credential recovery between a
|
|
139
|
-
review-input syntax refusal and retry, with unchanged sealed evidence and fresh sequential
|
|
140
|
-
status/next bindings; unrelated or unbound mutations remain invalid.
|
|
141
|
-
|
|
142
|
-
## beta.13.4 candidate: continuation after accepted corrective Plan
|
|
143
|
-
|
|
144
|
-
This correction is included in beta.13.5; beta.13.4 was not published separately.
|
|
145
|
-
|
|
146
|
-
The beta.13.3 first-conflict recovery stopped too early: after a replacement Plan
|
|
147
|
-
was accepted and authorized, navigation still applied the old Plan's conflict to
|
|
148
|
-
the now-planned Step. Release acceptance for this correction must exercise the
|
|
149
|
-
complete same-Task sequence through fresh Plan Risk Audit, execution authorization,
|
|
150
|
-
the existing Worker claim, actual Step execution, and another failed review.
|
|
151
|
-
Reaching `task plan-set` alone is not sufficient evidence.
|
|
152
|
-
|
|
153
|
-
An accepted semantic replacement must be distinguished from a Knowledge-only
|
|
154
|
-
rebind using verified Plan artifacts and audit/review bindings. Historical failures
|
|
155
|
-
and their global ordinals remain append-only. A missing or damaged artifact must
|
|
156
|
-
not silently acknowledge a conflict, and a context refresh must not reopen execution.
|
|
157
|
-
|
|
158
|
-
## beta.13.3 explicit Plan conflict recovery
|
|
159
|
-
|
|
160
|
-
A first independently recorded reviewer `route=replan` with a validated Plan conflict
|
|
161
|
-
blocks current execution immediately and exposes corrective replan. Historical
|
|
162
|
-
rolling-cause classification remains unchanged; valid older histories are not
|
|
163
|
-
reclassified as corrupt. Ordinary new fix findings still continue in the same Task.
|
|
164
|
-
The failure transaction yields C1 and releases the exact writer lease. An older
|
|
165
|
-
failed Task with a retained C1 claim follows credential recovery and
|
|
166
|
-
`task corrective-yield` before planning; it cannot run or change its Plan while
|
|
167
|
-
the claim remains. Recovery binds the validated remediation event and preserves
|
|
168
|
-
the Task, review evidence, and existing worker identity.
|
|
169
|
-
The release also includes durable App dispatch and explicit role/phase model selection;
|
|
170
|
-
see the packaged `references/chat-dispatch.md`.
|
|
171
|
-
|
|
172
|
-
## beta.13.2 review recovery gate
|
|
173
|
-
|
|
174
|
-
The patch preserves protocol 2 and canonical entity schema 2. In addition to the
|
|
175
|
-
ordinary release gates, `release:check` executes the large-diff, pending-review
|
|
176
|
-
update, supporting-source refresh and Task guard regressions. Acceptance requires
|
|
177
|
-
complete external-sealed Step and Task packets above 2 MiB, explicit bounded
|
|
178
|
-
failure above the Git output limit, exact credential recovery before Knowledge
|
|
179
|
-
refresh, and a Signal-shaped delegated update followed by actual review,
|
|
180
|
-
context refresh and the next ordinary Step. A source preflight alone is not
|
|
181
|
-
recovery completion. See `beta13.2-signal-review-recovery.md`.
|
|
182
|
-
|
|
183
|
-
## Release gate
|
|
184
|
-
|
|
185
|
-
Before tagging a release:
|
|
186
|
-
|
|
187
|
-
1. `npm ci`
|
|
188
|
-
2. `npm run validate`
|
|
189
|
-
3. `npm run test:signal-t10-check-support-e2e`
|
|
190
|
-
4. `npm run test:signal-remediation-e2e`
|
|
191
|
-
5. `npm run pack:check`
|
|
192
|
-
6. `npm run smoke:downstream`
|
|
193
|
-
7. `npm run plugin:check`
|
|
194
|
-
8. `npm run docs:pdf:check`
|
|
195
|
-
9. `npm run release:check`
|
|
196
|
-
10. validate `plugins/codex-workflow-gateway` with the Codex plugin validator
|
|
197
|
-
11. validate the append-only real-agent log with
|
|
198
|
-
`node scripts/validate-lifecycle-transcript.mjs --file <lifecycle-log.jsonl>`
|
|
199
|
-
|
|
200
|
-
The beta.13 real-agent gate follows the same Codex App boundary as production: the Task agent keeps
|
|
201
|
-
its live writer authority while a separate App reviewer consumes an external-sealed packet, then the
|
|
202
|
-
Task agent records the result. A nested native `codex exec` launched from inside another Codex agent
|
|
203
|
-
is not accepted as release evidence. Packet generation is a logged read-only observation; recording
|
|
204
|
-
the sealed result remains an exact `next`-authorized mutation followed by `status` and `next`.
|
|
205
|
-
|
|
206
|
-
The downstream smoke packs the actual tarball, installs it into an empty temporary project,
|
|
207
|
-
runs the packaged CLI handshake, and proves installation created none of `.codex`, `.tasks`,
|
|
208
|
-
`.increments`, or `.memory-bank` in that project.
|
|
209
|
-
|
|
210
|
-
The PDF check deterministically regenerates all three Russian documents from
|
|
211
|
-
`docs/pdf/sources`, binds the visible package version to the root manifest, and fails when any
|
|
212
|
-
tracked PDF is stale. Source and binary PDFs are one release unit.
|
|
213
|
-
|
|
214
|
-
For beta.13, `npm run release:check` builds the exact current source before inspecting the packaged
|
|
215
|
-
surface and fails unless all of these release contracts remain present:
|
|
216
|
-
|
|
217
|
-
- the handshake advertises `cause-bound-rolling-refinement-v1`,
|
|
218
|
-
`failed-step-continuation-transaction-v1`, `host-safe-credential-reference-v1`,
|
|
219
|
-
`structural-production-edge-contract-v1`, `observed-route-matrix-v2`, `compact-status-v1`,
|
|
220
|
-
`reviewer-runtime-preflight-v1`, `explicit-review-mode-v1`, and
|
|
221
|
-
`app-owned-operational-preflight-v1`;
|
|
222
|
-
- claim/writer credentials are transported only by project/entity/action/actor-bound local
|
|
223
|
-
references backed by mode-`0600` storage, legacy secret-bearing arguments fail closed, and secret
|
|
224
|
-
material is absent from argv, output, errors, tool/session/transcript fixtures, and evidence;
|
|
225
|
-
- a failed check commits failure evidence, exact dirty-byte binding, Task continuation state, and
|
|
226
|
-
lease release through the `failed-step-continuation` transaction; a failed strict review similarly
|
|
227
|
-
binds remediation, Task pause and exact lease release, and a repeated authoritative reviewer cause
|
|
228
|
-
adds C1 yield before root-cause replan; the Signal-shaped E2E continues through recovery, the next
|
|
229
|
-
ordinary Step, Task completion, and next-Task dispatch;
|
|
230
|
-
- five distinct or unclassified review findings continue in the same Task without a numeric cap,
|
|
231
|
-
while repeated normalized mechanical failures still require root-cause replan; a current
|
|
232
|
-
explicit external reviewer Plan conflict requires replan immediately, without a synthetic retry;
|
|
233
|
-
- a transitive same-component check owner may refine the same Task only under the unchanged semantic
|
|
234
|
-
boundary; for a multi-Step `runtime-composition` consumer the independent PRA classification,
|
|
235
|
-
not a planner opt-in, requires an edge from a transitive owner to an exact executable consumer
|
|
236
|
-
check. A simple one-Step runtime is exempt; neither assertion claims semantic product truth or
|
|
237
|
-
P02/P01-B authority;
|
|
238
|
-
- the machine-readable route matrix gives every one of the 13 Signal-observed route classes a
|
|
239
|
-
unique priority and one exact production transition witness or real terminal observation. The
|
|
240
|
-
`signal-observed-route-class-witnesses` boundary does not claim every action is exercised:
|
|
241
|
-
action-level metadata remains `executable-witnessed`, `unwitnessed`, or `unsupported`, and unknown
|
|
242
|
-
actions fail closed;
|
|
243
|
-
- default `status` is a bounded route-exact projection and full historical state requires explicit
|
|
244
|
-
`status --full`;
|
|
245
|
-
- reviewer runtime preflight is read-only for the sealed checkout and requires exact declared,
|
|
246
|
-
locked and repository-local installed Workflow versions plus a hash-verified runtime build manifest;
|
|
247
|
-
on every call it re-resolves the exact recursive runtime dependency graph from each actual parent
|
|
248
|
-
package (nested before hoisted) and re-hashes package manifests and executable runtime files, so a
|
|
249
|
-
warm Node module cache cannot hide a removed, changed, conflicting or symlink-redirected dependency;
|
|
250
|
-
the exact installed gateway, reviewer, and workflow modules are loaded synchronously through the
|
|
251
|
-
current Node runtime and must report exact package/protocol/schema versions; this avoids a child-process
|
|
252
|
-
scheduler deadline without caching a trust decision, and every load or contract failure still fails closed;
|
|
253
|
-
the native reviewer output schema is accepted by API strict Structured Outputs: every object property
|
|
254
|
-
is required, optional finding values use explicit nullability, and malformed semantic combinations fail closed;
|
|
255
|
-
a missing install, missing/stale build or failed handshake returns `prepared=false` with an
|
|
256
|
-
actionable blocker; every sealed review packet binds `ordinary` or `security` mode, and ordinary
|
|
257
|
-
review cannot imply a security scan;
|
|
258
|
-
- package-owned operational preflights report worktree observation, watchdog, consent, and
|
|
259
|
-
coordinator-replacement facts without claiming Codex App scheduling, chat mutation, consent, or
|
|
260
|
-
atomic App effects.
|
|
261
|
-
|
|
262
|
-
For beta.13.1 the same gate additionally verifies the post-publish compatibility boundary. A
|
|
263
|
-
markerless pre-authority PRA whose Task has no production-edge fields remains readable and does not
|
|
264
|
-
turn an intact beta.12 state into `STATE_CORRUPT`. Both ordinary and atomic corrective-replan PRA
|
|
265
|
-
writers persist `structuralProductionEdgeAuthority=required-v1`; that hash-chained marker keeps the
|
|
266
|
-
current-Plan structural gate fail-closed even if Task fields are removed. An audit belonging to an
|
|
267
|
-
older Plan is never revalidated against a later Plan's Step/edge graph. This is not signed
|
|
268
|
-
provenance: a privileged rewrite of the complete local Task and self-hashed chain remains outside
|
|
269
|
-
the local-state trust model.
|
|
270
|
-
|
|
271
|
-
For beta.12.19, the release gate also relies on `npm run release:check` to fail if:
|
|
272
|
-
|
|
273
|
-
- canonical entity schema 2 shapes drift;
|
|
274
|
-
- protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
|
|
275
|
-
- the delegated transition allow-list expands;
|
|
276
|
-
- schema-2 adoption is presented as `state migrate` instead of posture sidecars;
|
|
277
|
-
- alpha.7 rescue, Milestone autonomy (including guarded content refresh), derived actor, or
|
|
278
|
-
proof-obligation capabilities and schemas are absent from the packaged surface;
|
|
279
|
-
- the truthful structural-replacement-disabled capability, project-level transaction recovery,
|
|
280
|
-
secret-safe lock diagnostics, version/base diagnostics, or serialized maintainer validation are missing.
|
|
281
|
-
- truthful initial-assembly navigation capability is absent from the packaged surface.
|
|
282
|
-
- corrective-yield/replan protocol-v2 commands, closed schemas, Human gate, retained journals,
|
|
283
|
-
explicit recovery, or dual-readback capabilities are absent from the packaged surface.
|
|
284
|
-
- scoped Task navigation, credential replacement recovery, or sealed external Task/Step review
|
|
285
|
-
commands are absent from the packaged surface.
|
|
286
|
-
- `task result-set` can enter the unbounded Human final-acceptance gate without consuming a live
|
|
287
|
-
writer credential and releasing its lease, or claimed Task E2E cannot reacquire a fresh merge credential.
|
|
288
|
-
- bounded dependency-provenance recovery, retained passed-review provenance, the exact Signal T04
|
|
289
|
-
revision-26 fixture, or pending/corrupt-review rejection regressions are absent.
|
|
290
|
-
- dependency recovery again requires Task-local manifest/lock fields to equal the Milestone base,
|
|
291
|
-
or a candidate commit can alter any non-Workflow dependency payload.
|
|
292
|
-
- corrective replan drops completed Step evidence from accepted Task history, or an already-stranded
|
|
293
|
-
Task can register arbitrary/unreviewed history instead of one exact passed and previously accepted
|
|
294
|
-
Step commit.
|
|
295
|
-
- beta.12.9 cannot install through an exact dependency-only base/Task transport while preserving the
|
|
296
|
-
active Step worktree, or that compatibility route fails to bind the dependency HEAD, historical
|
|
297
|
-
commit, current Plan/Step, dirty paths/content hash, and absence of leases/transactions.
|
|
298
|
-
- the read-only Milestone progress projection, replacement regression, project-monotonic chat
|
|
299
|
-
registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
|
|
300
|
-
- bounded first- or repeated-failure Plan-integrity recovery, selector-required npm-check
|
|
301
|
-
feasibility, exact failed-remediation/manifest/worktree
|
|
302
|
-
bindings, or the no-synthetic-second-failure regression is absent.
|
|
303
|
-
- Plan-integrity update preflight again hard-codes one historical source release instead of deriving
|
|
304
|
-
a coherent exact beta.12 source from declared/locked/installed/current/base surfaces, or it accepts
|
|
305
|
-
a source before beta.12.11, a source not older than the runner, or any divergent version surface.
|
|
306
|
-
- a direct migration check can import an external checksum/catalog authority without the producing
|
|
307
|
-
Step owning it; or in-flight recovery can widen beyond the exact imported support path, bypass
|
|
308
|
-
`forbiddenScope`, change the Plan hash, skip checks/Core commit/review disclosure, or require a
|
|
309
|
-
Human approval for the machine-proved scope-only correction.
|
|
310
|
-
- historical check-support evidence is reinterpreted against a later Plan instead of the Plan hash
|
|
311
|
-
recorded by the event; or a post-rebind update is accepted without one planned Step explicitly
|
|
312
|
-
owning every previously derived support path in both `allowedWrites` and `expectedOutputs`, exact
|
|
313
|
-
dirty-byte continuity, coherent versions, and an otherwise idle recovery boundary.
|
|
314
|
-
- downstream proof cannot invalidate only completed transitive-predecessor authority while
|
|
315
|
-
preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
|
|
316
|
-
dirty files and damaged invalidation evidence do not fail closed.
|
|
317
|
-
- an eligible active downstream proof cannot transport one exact dependency-only update across
|
|
318
|
-
aligned base/Task commits while preserving product bytes; or unknown history, unrelated dirty
|
|
319
|
-
scope, content drift within an observation, leases, transactions, and wider candidates do not
|
|
320
|
-
fail closed before provenance registration and ordinary downstream recovery.
|
|
321
|
-
- the exact beta.12.6 post-invalidation Knowledge-rebind shape cannot pass a read-only source gate,
|
|
322
|
-
transport beta.12.7 through dependency-only commits, register provenance, restore `needs_fix`,
|
|
323
|
-
survive required Knowledge refresh, and reach a fresh replacement Plan;
|
|
324
|
-
- preserved dirty bytes can execute without one Step owning the complete bound set, or HEAD/path/hash
|
|
325
|
-
drift is accepted; or the Signal-shaped E2E stops before checks, Core commit, strict Step review,
|
|
326
|
-
and fresh navigation to Task submission.
|
|
327
|
-
- bundled gateway guidance treats Docker socket `EPERM` as daemon failure, consumes a remediation
|
|
328
|
-
attempt before one exact escalated probe, or recommends restarting Docker Desktop without separate
|
|
329
|
-
authority.
|
|
330
|
-
- the P04-A Milestone dependency/initial-Plan transaction capabilities or the P01-A mechanical
|
|
331
|
-
feasibility capability is absent from the packaged handshake.
|
|
332
|
-
- continuable guarded remediation or evidence-bound `fix`/`replan` review routing is absent, or a
|
|
333
|
-
third/later failed review is again converted into an attempt-count stop.
|
|
334
|
-
- audited remediation can change Milestone outcome/success signal/acceptance/checks, omit or add
|
|
335
|
-
arbitrary predecessor authority, reuse one blocking audit, run with dirty/owned state, or stop
|
|
336
|
-
before the new Task merges and the original Task completes a subsequent Step.
|
|
337
|
-
- `corrective-derived` Task authorization/final acceptance can exist without the current exact
|
|
338
|
-
Milestone execution authorization and audited-remediation event, or final Milestone acceptance is
|
|
339
|
-
derived automatically.
|
|
340
|
-
- the append-only, Human-confirmed beta.11 attempt-four stop override, its exact three-event/
|
|
341
|
-
continue/stop binding, split rejection, stale-confirmation rejection, or tamper detection is
|
|
342
|
-
absent from the package.
|
|
343
|
-
- an already-applied beta.11 stop override cannot survive a contiguous append-only chain of later
|
|
344
|
-
context-only Plan rebinds with exact mechanical audits, delegation, and chronology;
|
|
345
|
-
- Git HEAD may advance between the override and current execution authorization through anything
|
|
346
|
-
except an exact chain of registered dependency-provenance commits that each change only
|
|
347
|
-
`package.json` and `package-lock.json`; or the route weakens the generic stale-decision recovery gate.
|
|
348
|
-
- a dependency-provenance recovery recorded after the final mechanical audit cannot explain its
|
|
349
|
-
exact single Task revision, or an unrelated revision/damaged provenance is accepted as authority.
|
|
350
|
-
|
|
351
|
-
The separate lifecycle transcript validator fails if the real-agent log contains a mutation that
|
|
352
|
-
bypasses failed `status`/`next`, an unadvertised or failed mutation, an unresolved syntax-only
|
|
353
|
-
retry, or missing post-mutation checkpoints.
|
|
354
|
-
|
|
355
|
-
Full `npm test` and `npm run validate` invocations share destructive build outputs and are therefore
|
|
356
|
-
single-owner operations. A concurrent invocation fails immediately with
|
|
357
|
-
`VALIDATION_ALREADY_RUNNING`; retry it after the owner exits. Stale process locks are recovered
|
|
358
|
-
automatically.
|
|
359
|
-
|
|
360
|
-
Tag releases as `v<package-version>`. The tag workflow verifies the tag/package match and
|
|
361
|
-
uses npm trusted publishing with public access. For a public GitHub repository and public
|
|
362
|
-
package, npm trusted publishing generates provenance automatically. Publishing is never
|
|
363
|
-
performed by local validation commands.
|
|
1
|
+
# Current release policy
|
|
2
|
+
|
|
3
|
+
## One contract, two outcomes
|
|
4
|
+
|
|
5
|
+
The executable release contract is [scripts/release-contract.json](../scripts/release-contract.json). The passport verifier and qualification pipeline enforce its stages and freshness window. A green `release:check` means **automated candidate qualification only**. It always writes `releaseEligible: false`; it is never permission to publish.
|
|
6
|
+
|
|
7
|
+
A complete passport needs the exact package version, clean commit SHA, tree and lockfile hashes, one retained tarball SHA-256, all automated evidence, original Codex App lifecycle evidence, and an independent reviewer. Missing, failed, stale, changed or foreign evidence blocks publication. The default evidence window is seven days; evidence dated in the future is invalid. Changing the candidate requires new qualification and App evidence. There is no old-version compatibility bypass.
|
|
8
|
+
|
|
9
|
+
Use exactly **Node 24.17.0**. The runtime guard checks the actual process, package/lock engines, `.node-version`, `.nvmrc` and both CI jobs before validation writes. Record actual Node, OS platform, OS release and architecture; configuration alone is not execution evidence. Qualification supports POSIX hosts; the current target is macOS, with automated Linux CI. A green run on one host is not a portability claim.
|
|
10
|
+
|
|
11
|
+
## Automated qualification
|
|
12
|
+
|
|
13
|
+
Commit the complete candidate, including its current PDF. Install Node dependencies and the pinned PDF renderer, then run the full pipeline once:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npm ci
|
|
17
|
+
python3 -m pip install -r docs/pdf/requirements.txt
|
|
18
|
+
npm run release:check
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
When current guide sources change, first regenerate with `npm run docs:pdf`, inspect the rendered document and commit it. The mandatory `pdf-check` rebuilds the PDF deterministically with ReportLab 4.4.9 and the vendored fonts, compares actual bytes, and records source/generator/font/output hashes. The current source list and output are in the release contract. Historical PDFs are archived documents, not release evidence; they are not regenerated or included in the current guide.
|
|
22
|
+
|
|
23
|
+
Required stages, in contract order: typecheck; fresh build; runtime build manifest; test compilation; every test file once; PDF freshness; one retained pack; installed downstream smoke using that exact pack; plugin validation; release assertions. Per-file evidence comes from the actual Node test runner and binds file, source hash and qualification ID. Partial inventories, failed/cancelled files, all-skipped files and reused receipts are rejected. Individual optional skips remain visible in the runner counts.
|
|
24
|
+
|
|
25
|
+
The output is an owned `.release/` directory, excluded from Git and the npm package:
|
|
26
|
+
|
|
27
|
+
- `passport.json`: exact candidate and references, initially without App evidence.
|
|
28
|
+
- `candidate.tgz`: the single archive used by smoke, later App installation, and publication.
|
|
29
|
+
- `automated.json`, per-file runner receipts, PDF/plugin/downstream reports: hashed evidence.
|
|
30
|
+
|
|
31
|
+
A failed or interrupted qualification removes the previous passport before starting; it does not preserve an earlier green admission. Source changes during the run also invalidate the result. Do not prepend `validate` or another full suite; they repeat the same tests. `release:verify` consumes evidence and does not rerun the suite or repack.
|
|
32
|
+
|
|
33
|
+
The supervisor reports stage deadlines, startup receipts and exit reasons. Do not increase waits or silently retry to manufacture green. Native pre-JavaScript startup stalls remain a separate host limitation. R2 remains open: an escaped detached descendant can survive a check timeout; `cleanupComplete` proves only the owned process group. These facts are not erased by qualification.
|
|
34
|
+
|
|
35
|
+
## Original App evidence
|
|
36
|
+
|
|
37
|
+
Run the disposable synthetic project in the real Codex App using the exact retained `candidate.tgz`. Do not run against the live consumer. Create a new Worker task and a separate independent reviewer task; preserve their original App records. The new Worker must resolve the installed gateway skill from its actual App catalog and record that selected path, skill hash and plugin-manifest hash; these must match the packed candidate. Hashing an arbitrary repository copy is not evidence of the loaded skill. Exercise installed gateway handshake, actual Task execution and completion, a sealed independent review and a later merged Task outcome. The reviewer must return its own original result, not a result authored by Worker or Coordinator.
|
|
38
|
+
|
|
39
|
+
Capture the actual CLI log with `scripts/capture-lifecycle.mjs`, retaining command begin/end and successful status/next checkpoints. Preserve its candidate, archive, installed CLI/projector and capture-tool bindings. The full contract and evidence-envelope fields are documented in [release App evidence](release-app-evidence.md). The verifier calls the executable lifecycle validator and checks exact packet/seal hashes, independent identities, actual creation records and terminal continuation. It verifies the local validator's built projector dependency bytes against the same tarball; run `npm run build` in a fresh verification checkout first.
|
|
40
|
+
|
|
41
|
+
The App provider currently supplies no cryptographic provenance used by this repository. Hashes and structural checks bind the candidate, **automated report hash**, original artifact bytes and lifecycle records; they do not independently prove that supplied JSON is a genuine App export. Original live records remain required, but no owner attestation, signature or signing key is required. Publication still requires separate explicit user authorization outside the evidence artifact.
|
|
42
|
+
|
|
43
|
+
Copy the supplied App bundle into `.release/app/`, preserving its relative artifact paths, then attach it:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
npm run release:passport -- --passport .release/passport.json --app .release/app/evidence.json
|
|
47
|
+
npm run release:verify -- --passport .release/passport.json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Neither command requires a signing key. The attachment never infers publication consent or generates an App record. Missing live evidence is an actionable `RELEASE_APP_EVIDENCE_MISSING`, not a skipped test or a simulated success. Stored `releaseEligible` flags have no authority; verification recomputes eligibility from bytes every time.
|
|
51
|
+
|
|
52
|
+
## Publication and CI
|
|
53
|
+
|
|
54
|
+
PRs, `main`, `codex/**` pushes and manual validation run automated qualification without publish credentials. CI uploads the automated `.release/` bundle with an explicit incomplete-release warning. This artifact is useful for App qualification but cannot publish by itself.
|
|
55
|
+
|
|
56
|
+
The separate Release workflow runs on a pushed `v<version>` tag. Before pushing that tag, push a data-only branch `release-evidence/v<version>` containing `bundle.zip` and `bundle.sha256` (the latter is one hexadecimal SHA-256). ZIP root must contain `passport.json`, `automated.json`, `candidate.tgz` and every referenced report/App file. The branch is transport, not an approval or signature: its hash detects corruption; the passport verifies the exact tag commit, version, tarball and all mandatory evidence. Missing branches, incomplete bundles and mismatched evidence fail publication. Evidence-branch code is never executed.
|
|
57
|
+
|
|
58
|
+
Push the qualified candidate to `origin/main`, push its completed evidence branch, then push its release tag. The workflow checks archive integrity before safe extraction, rejects links/traversal/duplicates/oversized input, builds verifier dependencies only, verifies the complete passport and publishes the retained tarball. It never reruns qualification or repacks. Verify the published version and artifact hash through npm afterward. No manual dispatch, external HTTPS bundle hosting or mandatory GitHub environment is required.
|
|
59
|
+
|
|
60
|
+
Removing the mandatory environment restores the earlier tag-push OIDC flow. The evidence checkout resolves the branch once to a commit and records that SHA in the job log. The workflow requests an OIDC token for npm trusted publishing. Existing registry authorization must allow this repository and workflow; a tag push does not create registry access. Failure to authenticate is a failed publication, never a reason to bypass the passport. No additional owner signature or environment approval is part of this release contract.
|
|
61
|
+
|
|
62
|
+
For an explicitly authorized local release, set the exact `RELEASE_TAG`, then use:
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
npm run publish:release -- --passport .release/passport.json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The entry point re-verifies the passport, source, tag and packed package identity, copies already verified bytes into a private staging directory, checks the staging hash and publishes **that archive**. It never publishes a directory or repacks the checkout. Direct checkout `npm publish` is blocked by `prepublishOnly`. That hook prevents accidents; a credential holder can bypass npm hooks with `--ignore-scripts` or another client. The enforceable external boundary is registry credential/OIDC access, not a claim that repository code controls every npm client.
|
|
69
|
+
|
|
70
|
+
## Remaining product limits
|
|
71
|
+
|
|
72
|
+
The specific A1 and M04 route results retain their accepted scope. Broader A4 autonomy metrics, R2 escaped-session cleanup, native host startup diagnosis and any absent live App qualification remain explicit. Positive validator tests use temporary synthetic records; they test rejection/acceptance logic and never substitute for a real App run. A publication decision does not silently close these findings or demonstrate universal lifecycle completion.
|
|
73
|
+
|
|
74
|
+
## 2.0.0-beta.14 candidate inventory
|
|
75
|
+
|
|
76
|
+
The reproducible branch is `codex/release-candidate-beta.14`, based on tag
|
|
77
|
+
`v2.0.0-beta.13.16` (commit `500c783d469f8c571a136c6763b7781091406cb1`).
|
|
78
|
+
[The release inventory](beta14-release-inventory.json) maps each agreed change to ancestor commits,
|
|
79
|
+
final files, test selectors and limitations. The final commit and actual receipts are recorded in
|
|
80
|
+
the external qualification manifest after committing; this document does not claim a test result.
|
|
81
|
+
|
|
82
|
+
Product graph is inactive: no missing/stale graph gate, refresh obligation or Knowledge approval
|
|
83
|
+
is introduced. Existing schema/state fields remain readable. Installed-workflow and maintainer
|
|
84
|
+
graphs retain separate exact source roots; provider ready alone does not prove source freshness.
|
|
85
|
+
|
|
86
|
+
Protocol and state schema numbers remain 2, but the JSON Schema contracts do change: persisted
|
|
87
|
+
Knowledge timestamps, pending base-sync validation and native/navigation carryover are represented.
|
|
88
|
+
This is not a claim of unchanged schema or compatibility with every historical state. Before release,
|
|
89
|
+
revalidate a fresh isolated Signal snapshot and its next allowed transition. Recovery preserves
|
|
90
|
+
history and dirty bytes and requires renewed execution authority. Signal is not updated by assembly.
|
|
91
|
+
|
|
92
|
+
R2 escaped detached descendants, broad A4 autonomy, native host startup stalls and graph freshness
|
|
93
|
+
limitations remain open. Original App lifecycle/reviewer evidence remains mandatory and is not supplied by automated tests.
|
|
94
|
+
Publication requires separate explicit user authorization, not a signed evidence field. No tag, publication or Coordinator
|
|
95
|
+
instruction is authorized by this candidate assembly.
|