codex-workflow-v2 2.0.0-beta.13 → 2.0.0-beta.13.10
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 +6 -1
- package/dist/reviewer-runtime-build.json +44 -20
- 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/plan-risk.d.ts +4 -0
- package/dist/src/alpha6/plan-risk.js +50 -13
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/alpha6/preexecution-replan.d.ts +38 -0
- package/dist/src/alpha6/preexecution-replan.js +130 -0
- package/dist/src/alpha6/preexecution-replan.js.map +1 -0
- package/dist/src/alpha6/remediation.d.ts +4 -2
- package/dist/src/alpha6/remediation.js +155 -20
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/root-cause-replan-carryover.d.ts +18 -0
- package/dist/src/alpha6/root-cause-replan-carryover.js +396 -0
- package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -0
- package/dist/src/alpha7/autonomy.d.ts +3 -0
- package/dist/src/alpha7/autonomy.js +89 -42
- package/dist/src/alpha7/autonomy.js.map +1 -1
- package/dist/src/change-explanation.d.ts +64 -0
- package/dist/src/change-explanation.js +150 -0
- package/dist/src/change-explanation.js.map +1 -0
- package/dist/src/cli-actions.d.ts +3 -2
- package/dist/src/cli-actions.js +6 -0
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +73 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +38 -0
- package/dist/src/dependency-provenance.d.ts +3 -2
- package/dist/src/dependency-provenance.js +33 -2
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/domain/plan-semantics.d.ts +11 -0
- package/dist/src/domain/plan-semantics.js +49 -0
- package/dist/src/domain/plan-semantics.js.map +1 -0
- package/dist/src/gateway-handshake.js +2 -0
- package/dist/src/gateway-handshake.js.map +1 -1
- package/dist/src/lifecycle/corrective-replan.js +3 -3
- package/dist/src/lifecycle/corrective-replan.js.map +1 -1
- package/dist/src/observed-routes.js +1 -0
- package/dist/src/observed-routes.js.map +1 -1
- package/dist/src/pending-review-update.d.ts +49 -0
- package/dist/src/pending-review-update.js +132 -0
- package/dist/src/pending-review-update.js.map +1 -0
- package/dist/src/repository.js +16 -4
- package/dist/src/repository.js.map +1 -1
- package/dist/src/reviewer.js +4 -1
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/state/corrective-replan-executor.js +3 -1
- package/dist/src/state/corrective-replan-executor.js.map +1 -1
- package/dist/src/state/corrective-replan-public.js +5 -4
- package/dist/src/state/corrective-replan-public.js.map +1 -1
- package/dist/src/state/corrective-yield-executor.js +12 -3
- package/dist/src/state/corrective-yield-executor.js.map +1 -1
- package/dist/src/state/store.d.ts +1 -1
- package/dist/src/state/store.js +17 -3
- package/dist/src/state/store.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.d.ts +84 -1
- package/dist/src/workflow.js +1616 -355
- package/dist/src/workflow.js.map +1 -1
- package/docs/beta13.2-signal-review-recovery.md +38 -0
- package/docs/change-model.md +118 -0
- package/docs/delegated-approval.md +26 -0
- 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/sources/codex-workflow-v2-architecture-ru.md +9 -1
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +9 -5
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +18 -3
- package/docs/pending-review-update.md +15 -0
- package/docs/release.md +267 -2
- package/docs/updating-existing-project.md +36 -6
- package/docs/validation-report.md +30 -9
- package/package.json +2 -1
- package/plugins/codex-workflow-gateway/references/chat-dispatch.md +204 -0
- package/plugins/codex-workflow-gateway/references/protocol.md +11 -0
- package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +298 -0
- package/plugins/codex-workflow-gateway/scripts/chat-model-policy.mjs +43 -0
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +55 -3
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +218 -21
- package/schemas/plan-risk-audit-event.schema.json +1 -0
- package/schemas/preexecution-replan-event.schema.json +45 -0
- package/schemas/task.schema.json +55 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# beta.13.2: pending-review recovery
|
|
2
|
+
|
|
3
|
+
## Confirmed failure
|
|
4
|
+
|
|
5
|
+
Signal M04 T01 completed the product changes for STEP-002 on beta.13.1, but its
|
|
6
|
+
required independent Step review could not be prepared. The cumulative Task diff
|
|
7
|
+
was 2,236,058 bytes, exceeding the default synchronous Git output buffer. The
|
|
8
|
+
checkout remained clean and the completion commit remained recorded; review had
|
|
9
|
+
not passed.
|
|
10
|
+
|
|
11
|
+
After the writer lease expired, repository navigation preferred delegated
|
|
12
|
+
Knowledge context refresh over the pending review's credential recovery. The
|
|
13
|
+
context-refresh executor correctly rejected the still-in-progress Step. Thus
|
|
14
|
+
navigation advertised an action its executor could not perform. Ordinary package
|
|
15
|
+
update was also blocked by the in-progress Step.
|
|
16
|
+
|
|
17
|
+
## Required recovery guarantees
|
|
18
|
+
|
|
19
|
+
- Large Step and final Task review inputs are complete or fail explicitly; Git
|
|
20
|
+
errors have bounded diagnostics rather than dumping the input corpus.
|
|
21
|
+
- Pending review and its exact writer credential recovery remain ahead of
|
|
22
|
+
Knowledge refresh. Refresh during a running Step stays forbidden.
|
|
23
|
+
- Installation recovery validates the source version, exact Task/Plan/Step and
|
|
24
|
+
completion commit, clean checkout, recorded Git history, review journal, and
|
|
25
|
+
absence of active ownership or transactions.
|
|
26
|
+
- Dependency transport preserves product bytes and the original reviewed commit.
|
|
27
|
+
Pending review never establishes passed-review provenance.
|
|
28
|
+
- The original required review, delegated context refresh, Task acceptance and
|
|
29
|
+
merge remain mandatory after recovery. Grants are not broadened or renewed.
|
|
30
|
+
|
|
31
|
+
## Release acceptance
|
|
32
|
+
|
|
33
|
+
The package regression suite must cover oversized review inputs and the combined
|
|
34
|
+
pending-review, expired-lease and stale-Knowledge state, including rejection of
|
|
35
|
+
unsafe recovery candidates. Release validation also requires the ordinary package
|
|
36
|
+
and external-review lifecycle gates. Actual Signal recovery must pass the blocked
|
|
37
|
+
Step review and reach a subsequent executable lifecycle boundary; green fixture
|
|
38
|
+
tests alone do not establish that the production Milestone has resumed.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Execution context and change explanation
|
|
2
|
+
|
|
3
|
+
A change is explained before it is attempted. The explanation is not an approval, a new grant,
|
|
4
|
+
or a replacement lifecycle. Existing Core `next` remains authoritative.
|
|
5
|
+
|
|
6
|
+
## One execution context
|
|
7
|
+
|
|
8
|
+
App dispatch defaults to a worktree. An explicitly requested `executionMode: "local"` creates
|
|
9
|
+
in the saved project instead. Use local only when the user requested that execution environment.
|
|
10
|
+
The dispatch prompt separates repository identity from the child's actual write destination.
|
|
11
|
+
Correlated App readback records the real checkout root. A second readback cannot silently move
|
|
12
|
+
that bound Worker into another checkout, even when both share a Git common directory.
|
|
13
|
+
|
|
14
|
+
Before the first write and after a branch/cwd change, call the packaged registry action
|
|
15
|
+
`dispatch-context-check --reservation-id ... --file ... --project-id ...` with:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"observation": { "thread": {
|
|
20
|
+
"id": "actual-bound-thread-uuid", "kind": "codex", "hostId": "local",
|
|
21
|
+
"cwd": "/absolute/actual/worker/checkout"
|
|
22
|
+
} },
|
|
23
|
+
"writeRoot": "/absolute/actual/worker/checkout",
|
|
24
|
+
"expectedBranch": "exact-branch-from-fresh-Task"
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Use a fresh App `read_thread` observation, never a fabricated cwd. This read-only check detects
|
|
29
|
+
repository, checkout, write-root and branch mismatch. It does not replace Task revision, actor,
|
|
30
|
+
lease/credential or external permission checks. Do not send another create request, change the
|
|
31
|
+
target directory, or hand off an active writer merely to clear a mismatch. Reconcile the existing
|
|
32
|
+
Worker and Workflow context. Tracked dispatch without recorded executionContext needs a correlated `dispatch-observe` before
|
|
33
|
+
this check can match; it does not invent an existing checkout binding.
|
|
34
|
+
|
|
35
|
+
## One change card
|
|
36
|
+
|
|
37
|
+
`change explain --task TASK-ID --file proposal.json --repo /actual/checkout --json` reads the
|
|
38
|
+
current Task and `next` from one observation. It changes no workflow state or product file.
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"reason": "The current check requires one additional support file.",
|
|
43
|
+
"paths": ["tools/check-support.ts"],
|
|
44
|
+
"intent": "implementation",
|
|
45
|
+
"expectedRevision": 12,
|
|
46
|
+
"executionContext": {
|
|
47
|
+
"cwd": "/absolute/actual/worker/checkout",
|
|
48
|
+
"writeRoot": "/absolute/actual/worker/checkout",
|
|
49
|
+
"expectedBranch": "exact-task-branch"
|
|
50
|
+
},
|
|
51
|
+
"externalDecision": "unknown"
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
`paths` are exact normalized relative file paths, not globs. `expectedPlanHash` is also accepted.
|
|
56
|
+
Inputs are closed; an agent cannot add a `supportProven` or `approved` flag. `externalDecision:
|
|
57
|
+
"denied"` preserves an external denial as a separate blocker. It does not call or emulate the
|
|
58
|
+
external permission service. `intent` may instead be `membership` or `semantic-scope`; declaring
|
|
59
|
+
intent never proves semantic safety. Omitted context is reported as not supplied, not verified.
|
|
60
|
+
|
|
61
|
+
The card binds Task revision/Plan, HEAD, request and bytes of proposed plus observed dirty paths.
|
|
62
|
+
Undeclared dirty files are included; escaping symlinks block byte inspection. The output contains
|
|
63
|
+
no confirmation/claim/writer values and no proposed file contents. A proposal hash is a diagnostic
|
|
64
|
+
binding, not an apply token; always refresh `next` and ordinary mutation preconditions.
|
|
65
|
+
|
|
66
|
+
## Adaptation routes
|
|
67
|
+
|
|
68
|
+
- Implementation fixes continue within the same Task when the current Core route permits it.
|
|
69
|
+
Review count alone does not select corrective planning.
|
|
70
|
+
- `bounded-plan-amendment` appears only when Core advertises the exact eligible check-support
|
|
71
|
+
scope extension and every out-of-Step file is covered by that evidence. Execute the existing
|
|
72
|
+
`task plan-integrity-recover` route and fresh `next`; its existing atomic evidence and authority
|
|
73
|
+
rules apply. The card never edits `allowedWrites`, enlarges a grant, or supplies an arbitrary
|
|
74
|
+
new Plan. This release reuses the proven bounded amendment mechanism rather than adding a
|
|
75
|
+
competing mutation protocol.
|
|
76
|
+
- An unproved additional file requires Plan review. No broad glob or diff-size rule grants
|
|
77
|
+
automatic extension. Runtime changes and component-owner recovery retain their current audits.
|
|
78
|
+
- Corrective planning and downstream recovery retain existing Task/Worker identity and historical
|
|
79
|
+
evidence. A Knowledge context refresh does not resolve a Plan conflict.
|
|
80
|
+
- Membership is distinct from implementation. Existing audited remediation and full-contract
|
|
81
|
+
membership evolution remain the only corresponding machine routes. A reported membership
|
|
82
|
+
intent does not authorize deletion of a required Task or weakened acceptance.
|
|
83
|
+
- Semantic scope requires an explicit user decision. External denial remains independent of
|
|
84
|
+
Workflow grants and file scope.
|
|
85
|
+
|
|
86
|
+
`requiresUser: null` means the card has not established a specific human gate, not that all
|
|
87
|
+
checks passed. The card is advisory and cannot intercept arbitrary editor/tool writes. Gateway
|
|
88
|
+
agents must invoke the context check and fresh Core route before writing. No claim is made that
|
|
89
|
+
an external approval system will accept the resulting operation.
|
|
90
|
+
|
|
91
|
+
For a legacy Worker already bound before dispatch markers existed, the read-only context check
|
|
92
|
+
uses its existing thread/host plus a freshly supplied Task repository root. It explicitly reports
|
|
93
|
+
that historical checkout provenance is unavailable, preserves the legacy registry bytes and
|
|
94
|
+
never creates or adopts another Worker. A tracked Worker whose checkout changes still reports a
|
|
95
|
+
mismatch; no automatic App handoff or silent registry migration is performed.
|
|
96
|
+
|
|
97
|
+
## Later independent corrective evidence after a fix review
|
|
98
|
+
|
|
99
|
+
A failed guarded Step can reveal a Plan obstruction after its immutable strict review recorded
|
|
100
|
+
`fix` without a Plan conflict. On a clean current Task checkout, after at least two real remediation
|
|
101
|
+
failures and with no decision already bound to the current ordinal, `next` can expose the optional
|
|
102
|
+
`correctiveDecisionOption`. The ordinary fix action remains the default. No failure, repeated run,
|
|
103
|
+
review rewrite or arbitrary scope extension is required to obtain an independent corrective audit.
|
|
104
|
+
The option is absent while a Step runs, a pending handoff exists, or an earlier navigation gate
|
|
105
|
+
blocks ordinary continuation. Existing writer/C1 actor and token requirements still apply; a
|
|
106
|
+
legitimate claimed Worker credential does not disable this independent audit route.
|
|
107
|
+
|
|
108
|
+
Only a genuine independent audit justifies using the existing `task corrective-decision` command.
|
|
109
|
+
Its resulting append-only decision preserves the original review and completed Steps. A decision
|
|
110
|
+
requiring replan leads to the existing corrective yield/prepare/confirmation route, including its
|
|
111
|
+
separate Human gate; the option supplies no replacement authority, grant or permission to write
|
|
112
|
+
additional files. A conflicting existing decision cannot be overwritten.
|
|
113
|
+
|
|
114
|
+
The option's revision, Brief/Plan/HEAD and remediation event hashes describe the observation used
|
|
115
|
+
for the audit. They are not a new apply token or additional executor-enforced hash contract: the
|
|
116
|
+
existing executor checks its revision, current decision ordinal, audit independence and actor/token
|
|
117
|
+
preconditions. Refresh `next` and audit evidence before recording, including after a HEAD change
|
|
118
|
+
that does not change the Task revision. Never treat stale option output as authorization.
|
|
@@ -66,6 +66,32 @@ half of an atomic content-only Task context refresh in that Milestone. Standalon
|
|
|
66
66
|
approval remains project-scoped. The contract does not add a generic delegation transition:
|
|
67
67
|
outcome, success signal, acceptance, checks, discovery, and base branch remain immutable.
|
|
68
68
|
|
|
69
|
+
## Full contract during an active Milestone
|
|
70
|
+
|
|
71
|
+
The human may request `milestone autonomy-prepare` / `milestone autonomy-grant` while a
|
|
72
|
+
Milestone is `active`, as well as before its initial execution. This supports first full
|
|
73
|
+
issuance or replacement after expiry/revocation without resetting the Milestone, altering
|
|
74
|
+
its Plan or completed Task evidence, or recreating its Worker. Planning, blocked, validating,
|
|
75
|
+
final-acceptance and terminal Milestones are not eligible for this route.
|
|
76
|
+
|
|
77
|
+
Preparation is read-only. It requires a coherent registered repository, a complete current
|
|
78
|
+
Plan and active Knowledge Map. Its MAC binds the status, revision, Plan, semantic scope,
|
|
79
|
+
principal, delegate, exact expiry (at most 72 hours), policy and previous authority state.
|
|
80
|
+
Show this complete contract and obtain a separate exact human confirmation. Never renew a
|
|
81
|
+
contract automatically or treat general delegated execution as permission to issue authority.
|
|
82
|
+
|
|
83
|
+
A still-valid full contract cannot be replaced. An explicitly revoked or expired contract
|
|
84
|
+
may be replaced using a freshly prepared MAC. The previous confirmed code cannot undo a
|
|
85
|
+
revocation. Exact retries retain the same contract/grant; an interrupted event-first write
|
|
86
|
+
can be completed only with its original matching confirmation. Issuance and milestone grant
|
|
87
|
+
revocation share a Milestone lock. History remains append-only.
|
|
88
|
+
|
|
89
|
+
`next` exposes optional `activeMilestoneAutonomyOptions` even when a linked Task is selected;
|
|
90
|
+
this does not change the immediate Task action or waive its credential/review/recovery gates.
|
|
91
|
+
A coexisting generic grant remains unchanged and does not gain membership evolution or atomic
|
|
92
|
+
context-refresh authority. The new full contract carries those existing bounded capabilities;
|
|
93
|
+
it never grants standalone Project Knowledge approval or a semantic scope change.
|
|
94
|
+
|
|
69
95
|
## Starting a delegate chat
|
|
70
96
|
|
|
71
97
|
A grant does not start an agent and is not attached to a Codex chat automatically. Open a new
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -307,6 +307,14 @@ Task независимая PRA-классификация consumer как `runt
|
|
|
307
307
|
one-Step runtime не требует искусственного predecessor. Это структурная admission-проверка, а не
|
|
308
308
|
доказательство product truth и не реализация Step-validity authority P02.
|
|
309
309
|
|
|
310
|
+
Beta.13.1 делает эту authority prospective и Plan-bound. Markerless PRA, созданная до появления
|
|
311
|
+
production-edge contract, читается без ретроактивной проверки отсутствующих полей, но только пока и PRA,
|
|
312
|
+
и Task не заявляют новую authority. Обычная новая PRA и atomic corrective replan записывают hash-chained
|
|
313
|
+
marker `required-v1`; content-only knowledge rebind сохраняет production edges у native Task, а у
|
|
314
|
+
действительно legacy Task сохраняет markerless posture. Миграция или ручное переписывание state не нужны.
|
|
315
|
+
Граница доверия остаётся repository-local state: это не криптографическая защита от полного
|
|
316
|
+
привилегированного переписывания всей hash chain.
|
|
317
|
+
|
|
310
318
|
Versioned observed-route matrix v2 связывает все 13 Signal-observed route classes с unique priority и
|
|
311
319
|
одним exact production-transition witness либо real terminal observation на класс. Это class-level
|
|
312
320
|
доказательство: action-level metadata отдельно различает `executable-witnessed`, `unwitnessed` и
|
|
@@ -455,7 +463,7 @@ Restart Docker Desktop требует отдельного разрешения
|
|
|
455
463
|
# 10. Operational checklist
|
|
456
464
|
|
|
457
465
|
- exact package version установлен, bundled gateway соответствует release и переустановлен;
|
|
458
|
-
- handshake подтверждает `packageVersion=2.0.0-beta.13`, protocol 2, state schema 2 и beta.13
|
|
466
|
+
- handshake подтверждает `packageVersion=2.0.0-beta.13.10`, protocol 2, state schema 2 и beta.13
|
|
459
467
|
capabilities;
|
|
460
468
|
- routine observation начинается с компактного `status`; `status --full` запрашивается только для
|
|
461
469
|
расследования, которому действительно нужна полная historical projection;
|
|
@@ -57,7 +57,7 @@ AGENTS.md
|
|
|
57
57
|
-> doctor только как дополнительная диагностика
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Handshake beta.13 должен сообщать `packageVersion=2.0.0-beta.13`, `protocolVersion=2`,
|
|
60
|
+
Handshake beta.13.10 должен сообщать `packageVersion=2.0.0-beta.13.10`, `protocolVersion=2`,
|
|
61
61
|
`stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
|
|
62
62
|
Milestone autonomy, host-safe credential reference, failed-Step continuation transaction,
|
|
63
63
|
cause-bound rolling refinement, structural production edge, compact status, reviewer runtime preflight,
|
|
@@ -168,8 +168,6 @@ base HEAD. Final acceptance выполняй только по exact eligible gr
|
|
|
168
168
|
текущему MSA-code; иначе покажи полный requiredHumanGate и остановись.
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
<!-- pagebreak -->
|
|
172
|
-
|
|
173
171
|
## 4.1. Что должно получиться до autonomy gate
|
|
174
172
|
|
|
175
173
|
- Discovery без blocking unknowns;
|
|
@@ -282,6 +280,12 @@ effective scope той же Task только внутри затронутой
|
|
|
282
280
|
requirements, acceptance или security boundary. Это structural admission: оно не доказывает product
|
|
283
281
|
truth, не заменяет фактический check/review и не заявляет реализацию P02 Step-validity authority.
|
|
284
282
|
|
|
283
|
+
В beta.13.1 production-edge authority применяется prospective. Новые ordinary/corrective PRA получают
|
|
284
|
+
hash-chained marker `required-v1`. Markerless PRA и Task без production-edge fields считаются legacy и не
|
|
285
|
+
переписываются; content-only refresh сохраняет эту posture. Для native Task refresh обязан сохранить exact
|
|
286
|
+
`requiresProductionEdges`, `productionEdges[]` и строку edge в новом Plan artifact. Не редактируй state
|
|
287
|
+
вручную: после update следуй только fresh advertised reconcile/context-refresh route.
|
|
288
|
+
|
|
285
289
|
# 9. Atomic context refresh
|
|
286
290
|
|
|
287
291
|
Когда top-level `next.action` равен `task context-refresh`, нельзя сначала выполнять standalone
|
|
@@ -475,8 +479,8 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
475
479
|
|
|
476
480
|
# 14. Итоговый checklist пользователя
|
|
477
481
|
|
|
478
|
-
- beta.13 exact package и новый bundled gateway установлены; handshake показывает
|
|
479
|
-
`packageVersion=2.0.0-beta.13`, protocol/state schema `2/2` и beta.13 capabilities;
|
|
482
|
+
- beta.13.10 exact package и новый bundled gateway установлены; handshake показывает
|
|
483
|
+
`packageVersion=2.0.0-beta.13.10`, protocol/state schema `2/2` и beta.13 capabilities;
|
|
480
484
|
- новый Coordinator chat не является fork старого Milestone;
|
|
481
485
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
482
486
|
- Discovery не materialized при blocking unknowns;
|
|
@@ -15,7 +15,7 @@ authority сами: mutating permission определяется runtime state
|
|
|
15
15
|
|
|
16
16
|
| Параметр beta.13 | Значение |
|
|
17
17
|
|---|---|
|
|
18
|
-
| npm package | `codex-workflow-v2@2.0.0-beta.13` |
|
|
18
|
+
| npm package | `codex-workflow-v2@2.0.0-beta.13.10` |
|
|
19
19
|
| protocolVersion | 2 |
|
|
20
20
|
| stateSchemaVersion | 2 |
|
|
21
21
|
| lifecycle epoch | 2 |
|
|
@@ -228,6 +228,13 @@ requirements, acceptance и security boundary. Отдельно независи
|
|
|
228
228
|
Эти механизмы проверяют структурную форму и не утверждают product truth. Они не заменяют Plan Risk Audit,
|
|
229
229
|
Milestone authorization, фактический check result или не реализованную Step-validity authority P02.
|
|
230
230
|
|
|
231
|
+
Beta.13.1 вводит prospective, Plan-bound compatibility boundary. Новые ordinary PRA и atomic corrective
|
|
232
|
+
replan связывают `structuralProductionEdgeAuthority=required-v1` с hash chain. Историческая markerless PRA
|
|
233
|
+
не получает новую семантику задним числом, если текущая Task также не содержит production-edge fields.
|
|
234
|
+
Content-only knowledge rebind сохраняет exact native fields и rendered edge, а для такой legacy Task
|
|
235
|
+
сохраняет markerless posture. Это устраняет необходимость state migration; repository-local state остаётся
|
|
236
|
+
доверенной границей и не защищает от полного привилегированного переписывания всей chain.
|
|
237
|
+
|
|
231
238
|
# 9. C1 handoff и writer lease
|
|
232
239
|
|
|
233
240
|
## 9.1. Dependency binding
|
|
@@ -326,7 +333,7 @@ local reviewer внутри Codex App sandbox.
|
|
|
326
333
|
| Повтор stable reviewer `causeId` с `planConflict=true` | Root-cause replan той же Task обязателен |
|
|
327
334
|
| Похожий prose, номер попытки или reviewer cause без Plan conflict | Не создаёт replan authority |
|
|
328
335
|
| Finding `route=fix` или route отсутствует | Продолжить ту же Task/Step независимо от attempt count |
|
|
329
|
-
| Finding `route=replan` с exact Plan conflict |
|
|
336
|
+
| Finding `route=replan` с exact Plan conflict, включая первый провал | Штатный corrective yield/replan; повторный run запрещён, меняются только implementation Steps |
|
|
330
337
|
| `route=replan` без exact conflict | Невалидный review result, state не меняется |
|
|
331
338
|
| Explicit `split-required` | Structural replacement stop |
|
|
332
339
|
| Exact beta.11 attempt-four `stop-escalate` | Append-only Human-confirmed compatibility override |
|
|
@@ -662,6 +669,14 @@ beta.12.19 runner выдаёт `compatibilityMode=post-rebind-dirty-carryover`,
|
|
|
662
669
|
обычный dependency-only transport, repository-local registration, Knowledge rebind, PRA,
|
|
663
670
|
authorization, checks, Core commit и sealed review. Human approval не добавляется.
|
|
664
671
|
|
|
672
|
+
В beta.13.10 `task context-refresh` различает `authority=execution` и
|
|
673
|
+
`authority=planning-only`. Для начатой Task с failed Step, сохранённым stop-PRA и
|
|
674
|
+
проверенной историей Knowledge-only rebind безопасный content-only refresh обновляет
|
|
675
|
+
Knowledge-привязку и сохраняет отрицательный аудит. Task остаётся
|
|
676
|
+
`awaiting_execution_authorization`: разрешение исполнения не создаётся.
|
|
677
|
+
Далее требуется прежний corrective route, независимый аудит и точный human gate
|
|
678
|
+
замены Plan. Повреждённая история и неподходящий drift не дают этого режима.
|
|
679
|
+
|
|
665
680
|
# 15. P04-A structural replacement boundary
|
|
666
681
|
|
|
667
682
|
Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
|
|
@@ -760,7 +775,7 @@ dirty update.
|
|
|
760
775
|
observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
|
|
761
776
|
`npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
|
|
762
777
|
`npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
|
|
763
|
-
`npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13` tag binding и append-only
|
|
778
|
+
`npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.10` tag binding и append-only
|
|
764
779
|
real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
|
|
765
780
|
превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
|
|
766
781
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Updating while a strict Step review is pending
|
|
2
|
+
|
|
3
|
+
This narrow bridge supports source `codex-workflow-v2@2.0.0-beta.13.1` and the exact executing target package. It preserves the original completion commit, pending review chain, Plan and Knowledge authorization. It does not mark a review passed or bypass the following Knowledge refresh.
|
|
4
|
+
|
|
5
|
+
Use only a verified, exact target package runner with capability `pending-strict-review-dependency-bridge-v1`. The source preflight checks its package/build manifest and runtime file hashes. Never use a mutable version range or a global runner. The target runner exception before installation permits only the read-only source preflight below. Use the installed source runner for an explicitly returned stale lease repair.
|
|
6
|
+
|
|
7
|
+
1. Run the external target runner: `update pending-review-source-preflight --repo <repo> --id <Task> --json`. Save the complete JSON response outside the repository. If `staleLeaseRepair` names exactly this Task, use the **installed source** `locks repair --id <Task>` and rerun source preflight. The lock manager rechecks expiry; a live or unrelated lease is not repairable through this bridge. Do not transport until the fresh result has `eligible=true` and no blockers.
|
|
8
|
+
2. Retain the exact source receipt. Create one dependency transport commit on its `baseBranch` at `baseHead`, using a separate temporary worktree. Create one on `taskBranch` at `completionCommit`. Each commit must have one parent, change exactly `package.json` and `package-lock.json`, and change only the exact Workflow dependency entries from source to target. Preserve all product-owned manifest/lock fields independently on each branch. Do not merge, amend, reset, rebase, copy the base manifest over Task changes, or transport product work.
|
|
9
|
+
3. Install the exact target package in the Task repository. Use its repository-local runner for all remaining commands. Run `status`, then `next`; it must advertise `update pending-review-dependency-recover`. Run `update pending-review-dependency-preflight --id <Task> --file <source-receipt.json>`. Require `eligible=true` and no blockers.
|
|
10
|
+
4. Run `update pending-review-dependency-recover --id <Task> --expected-revision <source-task-revision> --file <source-receipt.json> --actor <coordinator> --reason <substantive-reason>`. Both plain preflight results and CLI `{ok:true,value:...}` receipts are accepted. The receipt is not authority: recovery reconstructs every source binding from canonical Task, artifacts, strict-review sidecars and Git parent commits. It checks clean checkout, all target version surfaces, exact base transport, and absence of any writer lease or pending transaction/Core operation again.
|
|
11
|
+
5. Recovery atomically registers the Task dependency commit in existing dependency provenance and writes the hash-chained `pending-review-updates.jsonl` sidecar. Task schema 2 is unchanged. It increments the Task revision but preserves the original pending event, product completion SHA and Step evidence. Repeating recovery is rejected rather than creating duplicate authority.
|
|
12
|
+
6. Run `status`, then `next`. Recover the exact advertised C1 writer credential if necessary. Generate a fresh `task step-review-packet`; use an independent external sealed reviewer and record the unchanged result with `task step-review-record`. The packet binds the original product commit and includes revalidated transport evidence; its repository seal binds the current dependency HEAD. Any later HEAD, base, Plan, evidence, packet, or seal change fails closed. Local nested review retains its original HEAD guard.
|
|
13
|
+
7. Follow fresh `status` and `next` after review. Under the original eligible Milestone Autonomy Grant, execute the advertised `task context-refresh` for predeclared supporting-source additions and dependency manifest drift. Then continue to the next normal Step or final Task boundary. Do not substitute standalone approval or manually edit state.
|
|
14
|
+
|
|
15
|
+
A failed preflight is a stop for this bridge. Repair only a specifically documented obstruction, then rerun the read-only assessment; never edit the receipt to hide a blocker. A pending or corrupt transaction must be recovered through its ordinary exact route before retrying.
|
package/docs/release.md
CHANGED
|
@@ -4,6 +4,262 @@ The npm package is `codex-workflow-v2` with public visibility. Consumers must pi
|
|
|
4
4
|
an exact version. Stable compatibility covers the latest minor release of the current
|
|
5
5
|
major only; older minors are unsupported unless a release note explicitly says otherwise.
|
|
6
6
|
|
|
7
|
+
## beta.13.10: planning-only context refresh
|
|
8
|
+
|
|
9
|
+
A dependency update can stale Knowledge while a started Task retains a failed Step
|
|
10
|
+
and a stop-escalate Plan Risk Audit. Navigation and execution now share the verified
|
|
11
|
+
planning-recovery predicate. Safe content-only refresh returns `authority: planning-only`,
|
|
12
|
+
rebinds Knowledge, preserves the stopped audit and completed evidence, and leaves the
|
|
13
|
+
Task awaiting execution authorization. It never authorizes the stopped Plan.
|
|
14
|
+
The ordinary corrective decision, original Worker recovery, independent replacement
|
|
15
|
+
audit and exact human corrective-replan gate remain required.
|
|
16
|
+
|
|
17
|
+
The regression follows actual dependency transport and provenance recovery through
|
|
18
|
+
Core-generated navigation and the refresh executor to the corrective human gate.
|
|
19
|
+
Tampered history, stale revision, missing grant and write failure are rejected without
|
|
20
|
+
partial Task/Knowledge/Plan/audit updates. Unsupported stopped Tasks are not offered
|
|
21
|
+
an executable context refresh.
|
|
22
|
+
|
|
23
|
+
## Prospective disposable-fixture bootstrap
|
|
24
|
+
|
|
25
|
+
For candidates after beta.13.9, release tests may initialize a disposable synthetic
|
|
26
|
+
fixture without requesting a live user's Knowledge approval for each candidate.
|
|
27
|
+
This does not change the completed beta.13.9 gate or reinterpret its evidence.
|
|
28
|
+
Production projects, including Signal, retain their existing human/delegation gates.
|
|
29
|
+
|
|
30
|
+
Run the repository-only `scripts/bootstrap-disposable-release-fixture.mjs` with
|
|
31
|
+
`--candidate <absolute tarball> --sha256 <exact SHA256> --version <exact version>`.
|
|
32
|
+
Use `--preflight` first. The tool accepts no repository, state-root or template
|
|
33
|
+
override: it creates fresh owned temporary roots, installs the verified candidate
|
|
34
|
+
with lifecycle scripts disabled, and initializes a fixed fixture with an immutable README and a mutable smoke.txt marker. It uses
|
|
35
|
+
the installed candidate's Core and explicit isolated state, following the existing
|
|
36
|
+
test-helper bootstrap pattern. No production credentials or grants are imported.
|
|
37
|
+
The same synthetic owner initializes a 24-hour fixture-project grant only for
|
|
38
|
+
`agent:disposable-release-worker`, limited to Task execution authorization and final
|
|
39
|
+
acceptance. Its confirmation is simulated and labelled accordingly. It grants no
|
|
40
|
+
Knowledge refresh, scope expansion or production access. Expiry requires a new
|
|
41
|
+
disposable run, not silent renewal. The fixed scenario must not modify Knowledge.
|
|
42
|
+
|
|
43
|
+
The receipt explicitly labels Knowledge consent as **simulated**. Core's stored
|
|
44
|
+
`authorizationMode: human` is test setup here, not evidence of an actual human
|
|
45
|
+
approval. Neither that state nor its receipt may be imported into a production
|
|
46
|
+
project or presented as production authorization. Candidate, template, repository
|
|
47
|
+
and state identities must accompany every downstream evidence record.
|
|
48
|
+
|
|
49
|
+
Synthetic lifecycle tests prove contract behavior, including approval rejection
|
|
50
|
+
and credential recovery. They do not prove the actual App writer/reviewer boundary.
|
|
51
|
+
The separate actual App gate remains required on the exact candidate: a live Worker
|
|
52
|
+
changes the fixed smoke.txt line `Release smoke: pending.` to `Release smoke: complete.`,
|
|
53
|
+
runs its declared check, and a separate App reviewer consumes a bound external-sealed
|
|
54
|
+
Step or Task packet, as advertised by Core. The minimum App smoke ends after the Worker records that review through
|
|
55
|
+
fresh `next` and obtains successful `status` then `next`; no additional human terminal
|
|
56
|
+
acceptance is imposed by this smoke. No new fixture product feature is required per release.
|
|
57
|
+
The App report must disclose the synthetic bootstrap and claim only the App behavior
|
|
58
|
+
actually observed; it must not claim real user consent. Prior failed attempts,
|
|
59
|
+
exact-candidate binding and the ordinary transcript validator remain mandatory.
|
|
60
|
+
This is a test evidence policy, not a runtime approval bypass or an expanded grant.
|
|
61
|
+
|
|
62
|
+
## beta.13.9: failed-Step planning recovery after Knowledge rebind
|
|
63
|
+
|
|
64
|
+
A started Task can retain completed Steps and a failed guarded Step while a Knowledge
|
|
65
|
+
rebind supersedes its execution authorization. A truthful blocking Plan Risk Audit must
|
|
66
|
+
not require a false approval to reach corrective planning. This recovery uses the current
|
|
67
|
+
blocking audit as planning evidence and proves its unchanged safety baseline through
|
|
68
|
+
hash-checked Knowledge-only Plan history and the historical superseded authorization.
|
|
69
|
+
It never treats either record as current execution authority.
|
|
70
|
+
|
|
71
|
+
Fresh navigation can then advertise the existing independent corrective-decision route.
|
|
72
|
+
The ordinary corrective yield, independent replacement validation and risk audit, exact
|
|
73
|
+
human corrective-replan confirmation, and fresh execution authorization remain mandatory.
|
|
74
|
+
An ordinary `plan-set` cannot bypass that chain. `continue-fix` is not a valid decision
|
|
75
|
+
for this stopped planning posture; ordinary execution repair retains its existing choices.
|
|
76
|
+
The additive upstream-remediation route remains limited to genuinely unstarted Tasks.
|
|
77
|
+
|
|
78
|
+
Release evidence must exercise the complete callable recovery chain, including original
|
|
79
|
+
Worker credential replacement and yield, repeated Knowledge rebind, unchanged completed
|
|
80
|
+
Step and failed review evidence, and rejection of damaged Plan/audit/authorization history.
|
|
81
|
+
|
|
82
|
+
The exact beta.13.9 runner retains the consumed-carryover compatibility profile from
|
|
83
|
+
beta.13.6 with beta.13.9 as its pinned target. The source, ownership, lease, candidate
|
|
84
|
+
Plan, provenance and transaction checks are unchanged. Historical beta.13.7 and
|
|
85
|
+
beta.13.8 transcripts remain bound to their original targets.
|
|
86
|
+
|
|
87
|
+
## beta.13.8: explain changes and continue active Milestones
|
|
88
|
+
|
|
89
|
+
Full autonomy can be issued during an active Milestone using an exact new human-confirmed
|
|
90
|
+
contract. Interrupted event-first issuance remains recoverable after expiry or revision change:
|
|
91
|
+
a fresh confirmation may supersede an inert missing grant, preserving its event and creating a
|
|
92
|
+
new grant identity. Known unpublished grant directories carry no authority; malformed state and
|
|
93
|
+
unknown incomplete delegations still fail closed.
|
|
94
|
+
|
|
95
|
+
The read-only `change explain` command separates execution context, external approval, semantic
|
|
96
|
+
scope, bounded check-support amendment, Plan correction, membership and context refresh. It
|
|
97
|
+
preserves the current Core route, including credential prerequisites and effective Step scope.
|
|
98
|
+
Its proposal hash is diagnostic evidence, not permission to apply a patch.
|
|
99
|
+
|
|
100
|
+
Chat dispatch records the observed child checkout and offers an advisory context check before
|
|
101
|
+
writes. Existing Workers are preserved; a parent repository path does not authorize writing
|
|
102
|
+
outside the actual child checkout. Model and reasoning selection remain task-specific.
|
|
103
|
+
|
|
104
|
+
The exact beta.13.8 runner retains the tested beta.13.6 consumed-carryover source
|
|
105
|
+
recovery profile with beta.13.8 as its pinned target. It does not admit a beta.13.7
|
|
106
|
+
source or a running Step; historical beta.13.7 transcript evidence remains separately
|
|
107
|
+
valid for its original target.
|
|
108
|
+
|
|
109
|
+
All ordinary release gates below apply to the exact versioned candidate. Historical failed
|
|
110
|
+
real-agent runs remain failed evidence; prior one-time release exceptions are not reused.
|
|
111
|
+
Signal deployment additionally requires a fresh safe update boundary, exact installed provenance
|
|
112
|
+
and verified continuation by the original Worker. This release does not waive external approval
|
|
113
|
+
or claim to prevent every future product failure.
|
|
114
|
+
|
|
115
|
+
## Active Milestone autonomy contract issuance
|
|
116
|
+
|
|
117
|
+
The candidate extends full human-confirmed autonomy to an already active Milestone.
|
|
118
|
+
Release evidence must cover both initial active issuance and replacement after revocation
|
|
119
|
+
or expiry, without resetting Task state, changing membership/semantic scope, or replacing
|
|
120
|
+
an existing Worker. A generic delegation is neither upgraded nor revoked implicitly.
|
|
121
|
+
|
|
122
|
+
The MAC includes the previous contract/grant snapshot so a revoked confirmation cannot
|
|
123
|
+
restore authority. Exact successful and interrupted-write retries must preserve identity;
|
|
124
|
+
legacy event-first records retain their bounded pre-execution recovery. Shared Milestone
|
|
125
|
+
exclusion protects issuance, revocation and scope/status transitions.
|
|
126
|
+
|
|
127
|
+
Acceptance must continue through same-Worker execution and guarded atomic context refresh
|
|
128
|
+
using the new full contract, with the old grant rejected without Task/Knowledge mutations.
|
|
129
|
+
Include read-only preparation, stale bindings, valid-contract replacement refusal, malformed
|
|
130
|
+
actors/expiry, unavailable Knowledge and disallowed Milestone states. Optional Task-first
|
|
131
|
+
navigation must not replace the current execution/recovery action. Run the full test suite,
|
|
132
|
+
release checks, downstream package smoke and plugin validation on the final candidate.
|
|
133
|
+
|
|
134
|
+
## beta.13.7 candidate: retire completed carryover authority
|
|
135
|
+
|
|
136
|
+
After a recovered Step passed review, its recorded dirty-work permission still
|
|
137
|
+
overrode the next Step's route. A later repeated mechanical failure therefore
|
|
138
|
+
returned `doctor` instead of ordinary Plan replacement. The completed record is
|
|
139
|
+
now retained as history and consumed only after its completion evidence, exact
|
|
140
|
+
PRA, required strict review and Git history are verified. Active or damaged
|
|
141
|
+
bindings continue to fail closed. A corrective claim must belong to the same
|
|
142
|
+
Worker who performed the terminal corrective yield.
|
|
143
|
+
|
|
144
|
+
The exact published beta.13.7 read-only compatibility preflight can guide a
|
|
145
|
+
stranded beta.13.6 source through its existing Plan replacement and original-Worker
|
|
146
|
+
handoff commands before transport. It does not mutate state, authorize execution,
|
|
147
|
+
or waive approval gates. Task and base transport must preserve all product bytes
|
|
148
|
+
and change only the exact Workflow dependency. See the packaged gateway skill for
|
|
149
|
+
the stage-specific bindings and mandatory source status/next readbacks.
|
|
150
|
+
|
|
151
|
+
Release evidence must include the published beta.13.6 runtime reproducing the
|
|
152
|
+
later-Step blocker, source Plan/PRA/authorization/handoff recovery, dependency
|
|
153
|
+
transport, target provenance/context refresh, same-Worker execution and strict
|
|
154
|
+
review. A route that reaches only `plan-set` is not sufficient. Prior one-time
|
|
155
|
+
release-gate exceptions do not authorize this candidate.
|
|
156
|
+
|
|
157
|
+
The trusted lifecycle harness must record each compatibility invocation and its
|
|
158
|
+
terminal observation. For source `task plan-set`, record `inputBinding` computed
|
|
159
|
+
from the actual files passed to that command: `candidatePlanHash` is the rendered
|
|
160
|
+
Plan hash, and `candidateInputHash`/`riskAuditInputHash` are SHA-256 of recursively
|
|
161
|
+
key-sorted canonical JSON inputs. Do not copy these values from an approval receipt
|
|
162
|
+
without checking the executed inputs. The validator checks this binding, the resulting
|
|
163
|
+
Plan hash, original-Worker ownership, ordered source status/next checkpoints, live-lease
|
|
164
|
+
waiting, exact stale repair, and a fresh preflight before transport.
|
|
165
|
+
|
|
166
|
+
## beta.13.6 candidate: preserve work across root-cause replan
|
|
167
|
+
|
|
168
|
+
A repeated mechanical failure can legitimately yield the same Task to a replacement
|
|
169
|
+
Plan while preserving uncommitted implementation. beta.13.5 authorizes that Plan but
|
|
170
|
+
then rejects its planned Step because the checkout is dirty. Reaching planning or
|
|
171
|
+
reauthorization therefore does not prove recovery.
|
|
172
|
+
|
|
173
|
+
Acceptance for this candidate must exercise the complete repeated mechanical failure,
|
|
174
|
+
automatic C1 yield, semantic replacement Plan, independent PRA, authorization, and
|
|
175
|
+
same-Worker execution sequence with the original dirty bytes. The carryover assessment
|
|
176
|
+
must bind the source remediation cycle, verified historical and current Plans, current
|
|
177
|
+
PRA and authorization, completed evidence, HEAD, file set and content hash. Every carried
|
|
178
|
+
path must already belong to the replacement Step and remain outside forbidden scope;
|
|
179
|
+
carryover never expands scope or forgives unrelated work.
|
|
180
|
+
|
|
181
|
+
Navigation and execution must use the same assessment. Changed bytes, paths, HEAD,
|
|
182
|
+
Plan artifacts, audit/authorization evidence or ambiguous source history must fail
|
|
183
|
+
closed before execution. Tests must continue beyond successful start through checks,
|
|
184
|
+
Core commit and strict review, and reject each material binding mismatch.
|
|
185
|
+
|
|
186
|
+
The stranded-source update must additionally prove a read-only compatibility preflight,
|
|
187
|
+
no writer lease or pending Core operation, exact coherent source/target versions,
|
|
188
|
+
dependency-only Task and Milestone-base commits, registration of the Task dependency
|
|
189
|
+
commit after verification of the base transport, and unchanged product bytes. It must preserve the original Task and Worker and must not
|
|
190
|
+
rely on manual product commits, stash/reset, installed-code edits or state-file edits.
|
|
191
|
+
|
|
192
|
+
All ordinary release gates below apply. The user's one-time beta.13.5 CI-based release
|
|
193
|
+
exception is consumed and is not evidence or an exception for this candidate.
|
|
194
|
+
|
|
195
|
+
## beta.13.5 preventive Plan correction before execution
|
|
196
|
+
|
|
197
|
+
A newly discovered implementation Plan defect can require changing unfinished scope
|
|
198
|
+
before its next Step runs. The preventive route withdraws the current execution
|
|
199
|
+
authorization under an independent blocking Plan Risk Audit, then requires a corrected
|
|
200
|
+
Plan, fresh independent audit and ordinary execution authorization. It must preserve
|
|
201
|
+
the same Task, completed Step definitions and evidence, requirements, acceptance,
|
|
202
|
+
review history and grants. It must not manufacture a failed run to unlock planning.
|
|
203
|
+
|
|
204
|
+
Initial eligibility is deliberately limited to a coherent, clean, idle `ready` Task
|
|
205
|
+
with no C1 ownership or writer lease. Stale bindings, existing ownership, incomplete
|
|
206
|
+
review, unexpected Git history and damaged state must fail closed. Regression gates
|
|
207
|
+
must prove authority withdrawal and actual same-Task continuation, plus rejection of
|
|
208
|
+
attempts to change the objective, discard completed evidence or weaken guarded scope.
|
|
209
|
+
|
|
210
|
+
Replacement Plan publication commits Task state, the current and immutable Plan artifacts,
|
|
211
|
+
and its independent audit atomically. Pending correction blocks C1 handoff and dependency
|
|
212
|
+
transport until the corrected Plan can be authorized. Proof bindings retain each Step,
|
|
213
|
+
failure mode and evidence association; revised proof prose requires an independent audit
|
|
214
|
+
with an explicit rationale. Core does not determine whether natural-language proof claims
|
|
215
|
+
are semantically stronger.
|
|
216
|
+
|
|
217
|
+
External sealed-review CLI help specifies the complete envelope, including its nested
|
|
218
|
+
review. Lifecycle validation admits one bounded expired-credential recovery between a
|
|
219
|
+
review-input syntax refusal and retry, with unchanged sealed evidence and fresh sequential
|
|
220
|
+
status/next bindings; unrelated or unbound mutations remain invalid.
|
|
221
|
+
|
|
222
|
+
## beta.13.4 candidate: continuation after accepted corrective Plan
|
|
223
|
+
|
|
224
|
+
This correction is included in beta.13.5; beta.13.4 was not published separately.
|
|
225
|
+
|
|
226
|
+
The beta.13.3 first-conflict recovery stopped too early: after a replacement Plan
|
|
227
|
+
was accepted and authorized, navigation still applied the old Plan's conflict to
|
|
228
|
+
the now-planned Step. Release acceptance for this correction must exercise the
|
|
229
|
+
complete same-Task sequence through fresh Plan Risk Audit, execution authorization,
|
|
230
|
+
the existing Worker claim, actual Step execution, and another failed review.
|
|
231
|
+
Reaching `task plan-set` alone is not sufficient evidence.
|
|
232
|
+
|
|
233
|
+
An accepted semantic replacement must be distinguished from a Knowledge-only
|
|
234
|
+
rebind using verified Plan artifacts and audit/review bindings. Historical failures
|
|
235
|
+
and their global ordinals remain append-only. A missing or damaged artifact must
|
|
236
|
+
not silently acknowledge a conflict, and a context refresh must not reopen execution.
|
|
237
|
+
|
|
238
|
+
## beta.13.3 explicit Plan conflict recovery
|
|
239
|
+
|
|
240
|
+
A first independently recorded reviewer `route=replan` with a validated Plan conflict
|
|
241
|
+
blocks current execution immediately and exposes corrective replan. Historical
|
|
242
|
+
rolling-cause classification remains unchanged; valid older histories are not
|
|
243
|
+
reclassified as corrupt. Ordinary new fix findings still continue in the same Task.
|
|
244
|
+
The failure transaction yields C1 and releases the exact writer lease. An older
|
|
245
|
+
failed Task with a retained C1 claim follows credential recovery and
|
|
246
|
+
`task corrective-yield` before planning; it cannot run or change its Plan while
|
|
247
|
+
the claim remains. Recovery binds the validated remediation event and preserves
|
|
248
|
+
the Task, review evidence, and existing worker identity.
|
|
249
|
+
The release also includes durable App dispatch and explicit role/phase model selection;
|
|
250
|
+
see the packaged `references/chat-dispatch.md`.
|
|
251
|
+
|
|
252
|
+
## beta.13.2 review recovery gate
|
|
253
|
+
|
|
254
|
+
The patch preserves protocol 2 and canonical entity schema 2. In addition to the
|
|
255
|
+
ordinary release gates, `release:check` executes the large-diff, pending-review
|
|
256
|
+
update, supporting-source refresh and Task guard regressions. Acceptance requires
|
|
257
|
+
complete external-sealed Step and Task packets above 2 MiB, explicit bounded
|
|
258
|
+
failure above the Git output limit, exact credential recovery before Knowledge
|
|
259
|
+
refresh, and a Signal-shaped delegated update followed by actual review,
|
|
260
|
+
context refresh and the next ordinary Step. A source preflight alone is not
|
|
261
|
+
recovery completion. See `beta13.2-signal-review-recovery.md`.
|
|
262
|
+
|
|
7
263
|
## Release gate
|
|
8
264
|
|
|
9
265
|
Before tagging a release:
|
|
@@ -52,8 +308,8 @@ surface and fails unless all of these release contracts remain present:
|
|
|
52
308
|
adds C1 yield before root-cause replan; the Signal-shaped E2E continues through recovery, the next
|
|
53
309
|
ordinary Step, Task completion, and next-Task dispatch;
|
|
54
310
|
- five distinct or unclassified review findings continue in the same Task without a numeric cap,
|
|
55
|
-
while
|
|
56
|
-
|
|
311
|
+
while repeated normalized mechanical failures still require root-cause replan; a current
|
|
312
|
+
explicit external reviewer Plan conflict requires replan immediately, without a synthetic retry;
|
|
57
313
|
- a transitive same-component check owner may refine the same Task only under the unchanged semantic
|
|
58
314
|
boundary; for a multi-Step `runtime-composition` consumer the independent PRA classification,
|
|
59
315
|
not a planner opt-in, requires an edge from a transitive owner to an exact executable consumer
|
|
@@ -83,6 +339,15 @@ surface and fails unless all of these release contracts remain present:
|
|
|
83
339
|
coordinator-replacement facts without claiming Codex App scheduling, chat mutation, consent, or
|
|
84
340
|
atomic App effects.
|
|
85
341
|
|
|
342
|
+
For beta.13.1 the same gate additionally verifies the post-publish compatibility boundary. A
|
|
343
|
+
markerless pre-authority PRA whose Task has no production-edge fields remains readable and does not
|
|
344
|
+
turn an intact beta.12 state into `STATE_CORRUPT`. Both ordinary and atomic corrective-replan PRA
|
|
345
|
+
writers persist `structuralProductionEdgeAuthority=required-v1`; that hash-chained marker keeps the
|
|
346
|
+
current-Plan structural gate fail-closed even if Task fields are removed. An audit belonging to an
|
|
347
|
+
older Plan is never revalidated against a later Plan's Step/edge graph. This is not signed
|
|
348
|
+
provenance: a privileged rewrite of the complete local Task and self-hashed chain remains outside
|
|
349
|
+
the local-state trust model.
|
|
350
|
+
|
|
86
351
|
For beta.12.19, the release gate also relies on `npm run release:check` to fail if:
|
|
87
352
|
|
|
88
353
|
- canonical entity schema 2 shapes drift;
|