codex-workflow-v2 2.0.0-beta.13 → 2.0.0-beta.13.2
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 +1 -1
- package/dist/reviewer-runtime-build.json +17 -13
- package/dist/src/alpha6/plan-risk.d.ts +1 -0
- package/dist/src/alpha6/plan-risk.js +34 -7
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/cli-actions.d.ts +1 -1
- package/dist/src/cli-actions.js +3 -0
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +15 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +2 -0
- package/dist/src/gateway-handshake.js +1 -0
- package/dist/src/gateway-handshake.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/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 +10 -0
- package/dist/src/workflow.js +161 -2
- package/dist/src/workflow.js.map +1 -1
- package/docs/beta13.2-signal-review-recovery.md +38 -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 -3
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +9 -2
- package/docs/pending-review-update.md +15 -0
- package/docs/release.md +20 -0
- package/docs/updating-existing-project.md +26 -4
- package/docs/validation-report.md +30 -9
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +7 -0
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +36 -13
- package/schemas/plan-risk-audit-event.schema.json +1 -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.
|
|
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.2`, 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.1 должен сообщать `packageVersion=2.0.0-beta.13.2`, `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,
|
|
@@ -282,6 +282,12 @@ effective scope той же Task только внутри затронутой
|
|
|
282
282
|
requirements, acceptance или security boundary. Это structural admission: оно не доказывает product
|
|
283
283
|
truth, не заменяет фактический check/review и не заявляет реализацию P02 Step-validity authority.
|
|
284
284
|
|
|
285
|
+
В beta.13.1 production-edge authority применяется prospective. Новые ordinary/corrective PRA получают
|
|
286
|
+
hash-chained marker `required-v1`. Markerless PRA и Task без production-edge fields считаются legacy и не
|
|
287
|
+
переписываются; content-only refresh сохраняет эту posture. Для native Task refresh обязан сохранить exact
|
|
288
|
+
`requiresProductionEdges`, `productionEdges[]` и строку edge в новом Plan artifact. Не редактируй state
|
|
289
|
+
вручную: после update следуй только fresh advertised reconcile/context-refresh route.
|
|
290
|
+
|
|
285
291
|
# 9. Atomic context refresh
|
|
286
292
|
|
|
287
293
|
Когда top-level `next.action` равен `task context-refresh`, нельзя сначала выполнять standalone
|
|
@@ -475,8 +481,8 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
|
|
|
475
481
|
|
|
476
482
|
# 14. Итоговый checklist пользователя
|
|
477
483
|
|
|
478
|
-
- beta.13 exact package и новый bundled gateway установлены; handshake показывает
|
|
479
|
-
`packageVersion=2.0.0-beta.13`, protocol/state schema `2/2` и beta.13 capabilities;
|
|
484
|
+
- beta.13.1 exact package и новый bundled gateway установлены; handshake показывает
|
|
485
|
+
`packageVersion=2.0.0-beta.13.2`, protocol/state schema `2/2` и beta.13 capabilities;
|
|
480
486
|
- новый Coordinator chat не является fork старого Milestone;
|
|
481
487
|
- bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
|
|
482
488
|
- 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.2` |
|
|
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
|
|
@@ -760,7 +767,7 @@ dirty update.
|
|
|
760
767
|
observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
|
|
761
768
|
`npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
|
|
762
769
|
`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
|
|
770
|
+
`npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.2` tag binding и append-only
|
|
764
771
|
real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
|
|
765
772
|
превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
|
|
766
773
|
|
|
@@ -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,17 @@ 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.2 review recovery gate
|
|
8
|
+
|
|
9
|
+
The patch preserves protocol 2 and canonical entity schema 2. In addition to the
|
|
10
|
+
ordinary release gates, `release:check` executes the large-diff, pending-review
|
|
11
|
+
update, supporting-source refresh and Task guard regressions. Acceptance requires
|
|
12
|
+
complete external-sealed Step and Task packets above 2 MiB, explicit bounded
|
|
13
|
+
failure above the Git output limit, exact credential recovery before Knowledge
|
|
14
|
+
refresh, and a Signal-shaped delegated update followed by actual review,
|
|
15
|
+
context refresh and the next ordinary Step. A source preflight alone is not
|
|
16
|
+
recovery completion. See `beta13.2-signal-review-recovery.md`.
|
|
17
|
+
|
|
7
18
|
## Release gate
|
|
8
19
|
|
|
9
20
|
Before tagging a release:
|
|
@@ -83,6 +94,15 @@ surface and fails unless all of these release contracts remain present:
|
|
|
83
94
|
coordinator-replacement facts without claiming Codex App scheduling, chat mutation, consent, or
|
|
84
95
|
atomic App effects.
|
|
85
96
|
|
|
97
|
+
For beta.13.1 the same gate additionally verifies the post-publish compatibility boundary. A
|
|
98
|
+
markerless pre-authority PRA whose Task has no production-edge fields remains readable and does not
|
|
99
|
+
turn an intact beta.12 state into `STATE_CORRUPT`. Both ordinary and atomic corrective-replan PRA
|
|
100
|
+
writers persist `structuralProductionEdgeAuthority=required-v1`; that hash-chained marker keeps the
|
|
101
|
+
current-Plan structural gate fail-closed even if Task fields are removed. An audit belonging to an
|
|
102
|
+
older Plan is never revalidated against a later Plan's Step/edge graph. This is not signed
|
|
103
|
+
provenance: a privileged rewrite of the complete local Task and self-hashed chain remains outside
|
|
104
|
+
the local-state trust model.
|
|
105
|
+
|
|
86
106
|
For beta.12.19, the release gate also relies on `npm run release:check` to fail if:
|
|
87
107
|
|
|
88
108
|
- canonical entity schema 2 shapes drift;
|
|
@@ -22,23 +22,45 @@ state schema. Совпадение `stateSchemaVersion` до и после об
|
|
|
22
22
|
нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
|
|
23
23
|
adoption posture.
|
|
24
24
|
|
|
25
|
+
### beta.13.1: legacy PRA compatibility after beta.13
|
|
26
|
+
|
|
27
|
+
`2.0.0-beta.13.1` preserves the beta.13 protocol/schema `2/2` and adds no state migration. The
|
|
28
|
+
structural production-edge rule is prospective: every newly written ordinary or atomic
|
|
29
|
+
corrective-replan PRA receives the hash-chained `structuralProductionEdgeAuthority=required-v1`
|
|
30
|
+
marker, and its current Plan must satisfy the edge contract. A markerless PRA and Task written
|
|
31
|
+
before that authority existed remain readable; Workflow must not reinterpret their historical
|
|
32
|
+
`runtime-composition` classification as proof that their old Plan contained beta.13 fields.
|
|
33
|
+
Historical PRA events from an earlier Plan are hash/shape validated but are not compared with the
|
|
34
|
+
current Plan's edges. This compatibility rule never edits, migrates or silently approves external
|
|
35
|
+
state. A later Plan/PRA recorded by beta.13.1 must satisfy the full structural boundary.
|
|
36
|
+
|
|
37
|
+
This does not add signed provenance to local Workflow state. A full privileged rewrite of Task
|
|
38
|
+
state and its complete self-hashed sidecar chain remains outside the trust model; repository rules
|
|
39
|
+
continue to prohibit manual state edits. The regression proves compatibility and fail-closed
|
|
40
|
+
partial mismatch, not authenticity against the machine owner.
|
|
41
|
+
|
|
42
|
+
The normal safe-update sequence below targets exact `2.0.0-beta.13.1`. It is also the supported
|
|
43
|
+
patch path from beta.13 when `status` or `next` reports `STATE_CORRUPT` solely because a markerless
|
|
44
|
+
pre-beta.13 PRA lacks production-edge fields: run the old-version read-only preflight first, install
|
|
45
|
+
the patch dependency-only, and resume from a fresh handshake. Never edit the PRA sidecar manually.
|
|
46
|
+
|
|
25
47
|
### beta.13: coherent continuation and host-safe credentials
|
|
26
48
|
|
|
27
|
-
`2.0.0-beta.13` сохраняет `protocolVersion: 2` и `stateSchemaVersion: 2`; отдельная state migration
|
|
49
|
+
`2.0.0-beta.13.1` сохраняет `protocolVersion: 2` и `stateSchemaVersion: 2`; отдельная state migration
|
|
28
50
|
для перехода с beta.12.19 не нужна. Обновление выполняется только на безопасной границе обычного
|
|
29
51
|
`update preflight`: нет running Step, active/stale writer lease, незавершённой transaction/Core
|
|
30
52
|
operation и неучтённых dirty product bytes. Если хотя бы одно условие не выполнено, сначала
|
|
31
|
-
завершите advertised recovery текущей repository-local версией; установка beta.13 сама по себе не
|
|
53
|
+
завершите advertised recovery текущей repository-local версией; установка beta.13.1 сама по себе не
|
|
32
54
|
является recovery-route и не разрешает переносить или редактировать внешний state.
|
|
33
55
|
|
|
34
56
|
Точный путь обновления:
|
|
35
57
|
|
|
36
58
|
1. Старой repository-local версией зафиксируйте `handshake`, `status`, `next` и read-only
|
|
37
59
|
`update preflight`; продолжайте только при `safe=true`.
|
|
38
|
-
2. Установите exact `codex-workflow-v2@2.0.0-beta.13` без диапазона и измените только
|
|
60
|
+
2. Установите exact `codex-workflow-v2@2.0.0-beta.13.1` без диапазона и измените только
|
|
39
61
|
`package.json` и lock-файл.
|
|
40
62
|
3. Новой repository-local версией подтвердите совпадение declared, locked и installed
|
|
41
|
-
`2.0.0-beta.13`, прежний `projectId`, protocol/schema `2/2`, затем выполните `handshake`,
|
|
63
|
+
`2.0.0-beta.13.1`, прежний `projectId`, protocol/schema `2/2`, затем выполните `handshake`,
|
|
42
64
|
`doctor`, компактный `status` и `next`.
|
|
43
65
|
4. Обновите персональный `codex-workflow-gateway` только штатным installer из установленного
|
|
44
66
|
exact пакета и продолжайте работу в новом чате, который загрузит новую skill-инструкцию.
|
|
@@ -1,13 +1,34 @@
|
|
|
1
|
-
# V2 beta.13 Validation Report
|
|
1
|
+
# V2 beta.13.1 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.13` was validated during 2026-09-02--03 (Europe/Moscow) with
|
|
3
|
+
Release candidate `2.0.0-beta.13.1` was validated during 2026-09-02--03 (Europe/Moscow) with
|
|
4
4
|
Node.js 24.17.0.
|
|
5
5
|
|
|
6
|
+
## beta.13.1 post-publication compatibility correction
|
|
7
|
+
|
|
8
|
+
After published beta.13 was installed dependency-only into the clean Signal `main` checkout,
|
|
9
|
+
declared, locked and installed versions and registry integrity matched, but the first compact
|
|
10
|
+
`status` failed before navigation. The loader had applied the new structural production-edge rule
|
|
11
|
+
to the first markerless beta.12.19 PRA for `TASK-01M1B79C660YMNSRRZ236NTR1T`; that historical Task
|
|
12
|
+
contains neither `requiresProductionEdges` nor `productionEdges`. This was a runtime compatibility
|
|
13
|
+
defect, not corrupt Signal state.
|
|
14
|
+
|
|
15
|
+
beta.13.1 makes the authority prospective and Plan-bound. New ordinary and atomic
|
|
16
|
+
corrective-replan PRA writers persist one hash-chained marker. Stored structural validation runs only
|
|
17
|
+
for the current Plan when either that marker or the new Task fields establish the boundary.
|
|
18
|
+
Markerless pre-authority events remain hash/shape validated and readable, while marker-bearing
|
|
19
|
+
current events still fail closed if Task structural fields are removed. A source-built read-only
|
|
20
|
+
probe against the untouched real Signal external state changed the exact failing observation into
|
|
21
|
+
the expected `project-memory reconcile` route with the retained-historical frozen-M3 cancellation
|
|
22
|
+
option. The focused production-edge and corrective-replan executor suites passed `14/14` before
|
|
23
|
+
the full release gate. The compatibility gate does not claim signed provenance against a privileged
|
|
24
|
+
rewrite of the entire local Task and self-hashed chain; it proves ordinary read compatibility and
|
|
25
|
+
fail-closed partial mismatch within the existing trusted-local-state model.
|
|
26
|
+
|
|
6
27
|
## Automated release evidence
|
|
7
28
|
|
|
8
29
|
- A clean `npm ci` completed from the exact lockfile. A network-enabled `npm audit --json` reported
|
|
9
30
|
zero vulnerabilities at every severity across all eight installed dependencies.
|
|
10
|
-
- `npm run validate` passed typecheck and `
|
|
31
|
+
- `npm run validate` passed typecheck and `409/409` sequential tests with no failures, skips,
|
|
11
32
|
cancellations or todos in 2,761,796.900458 ms.
|
|
12
33
|
- `npm run test:signal-t10-check-support-e2e` passed `8/8` after the final clean install in
|
|
13
34
|
203,155.332125 ms. It covers an impossible selector-less check, machine-derived support scope,
|
|
@@ -20,7 +41,7 @@ Node.js 24.17.0.
|
|
|
20
41
|
recovers an accidental rebind, replans and completes the consolidated guarded Step.
|
|
21
42
|
- `npm run test:signal-t04-recovery` passed `11/11` in 22,021.439625 ms. It preserves only exact
|
|
22
43
|
reviewed Step provenance and rejects pending, corrupt, unrelated or stale recovery evidence.
|
|
23
|
-
- `npm run pack:check` produced the exact `2.0.0-beta.13` tarball with 309 files, package size
|
|
44
|
+
- `npm run pack:check` produced the exact `2.0.0-beta.13.1` tarball with 309 files, package size
|
|
24
45
|
1.2 MB and unpacked size 4.8 MB. It includes the shared gateway-handshake module and the
|
|
25
46
|
hash-verifiable reviewer runtime build manifest.
|
|
26
47
|
- `npm run smoke:downstream` packed the release, installed it into an empty project and returned
|
|
@@ -28,7 +49,7 @@ Node.js 24.17.0.
|
|
|
28
49
|
network-enabled invocation passed.
|
|
29
50
|
- `npm run plugin:check`, `npm run docs:pdf:check`, `npm run typecheck` and `git diff --check` all
|
|
30
51
|
passed. The PDF checker reported no stale generated document. `npm run release:check` passed
|
|
31
|
-
`
|
|
52
|
+
`104/104` tests in 298,521.790541 ms and returned the exact package/version assertion.
|
|
32
53
|
|
|
33
54
|
## Release-candidate regressions found and closed
|
|
34
55
|
|
|
@@ -92,8 +113,8 @@ stale nearer-copy regressions expanded the complete suite.
|
|
|
92
113
|
A real native reviewer preflight then exposed an API-level Structured Output incompatibility: every
|
|
93
114
|
declared object property must also be present in `required`. The reviewer schema now makes nullable
|
|
94
115
|
optional semantics explicit, while the semantic parser still rejects absent or contradictory
|
|
95
|
-
cause/plan-conflict evidence. The complete suite consequently reached `
|
|
96
|
-
release check reached `
|
|
116
|
+
cause/plan-conflict evidence. The complete suite consequently reached `409/409`, and the expanded
|
|
117
|
+
release check reached `104/104`.
|
|
97
118
|
|
|
98
119
|
The same real-agent exercise corrected the release proof boundary without weakening Core. A nested
|
|
99
120
|
`codex exec` reviewer is not treated as independent production evidence: the Coordinator stops at a
|
|
@@ -154,8 +175,8 @@ mutation. This changes release-evidence interpretation only; it grants no lifecy
|
|
|
154
175
|
- This report does not claim commit/tag/push, npm publication, installation into Signal or Milestone
|
|
155
176
|
4 readiness until those operations receive exact readback.
|
|
156
177
|
|
|
157
|
-
Confidence is high for package behavior and the stated compatibility boundary: the final `
|
|
158
|
-
run, `
|
|
178
|
+
Confidence is high for package behavior and the stated compatibility boundary: the final `409/409`
|
|
179
|
+
run, `104/104` release check, four Signal-shaped E2E suites, package/downstream smoke, CPU-saturation,
|
|
159
180
|
warm-cache and fail-closed negative cases agree. Live Signal readiness remains conditional on
|
|
160
181
|
publication, exact repository-local installation, safe
|
|
161
182
|
closure of the frozen Milestone 3 authority and a fresh read-only `status`/`next` observation.
|
package/package.json
CHANGED
|
@@ -56,6 +56,13 @@
|
|
|
56
56
|
A provenance recovery recorded after the final context-refresh audit may explain exactly one
|
|
57
57
|
additional Task revision only when it belongs to that verified Git chain. Any unexplained
|
|
58
58
|
revision remains a `doctor` boundary.
|
|
59
|
+
- Before a credential-consuming mutation, check the public `writerCredentialReference.expiresAt`
|
|
60
|
+
against the current time and its actor/action binding. Lease heartbeat or renewal does not
|
|
61
|
+
extend that reference's expiry. An expired, missing, consumed or unverifiable reference requires
|
|
62
|
+
the simultaneously advertised `next.writerCredentialRecovery` action with its exact Task,
|
|
63
|
+
revision and `requiredActor`, followed by fresh `status` and `next`; use the new reference.
|
|
64
|
+
If no recovery is advertised, stop before mutation. Never read or patch the vault, extend expiry
|
|
65
|
+
manually, or reuse the old reference. This check also applies after independent reviews and pauses.
|
|
59
66
|
- `milestone progress --id <MS-ID>` is a read-only projection and the sole source for Coordinator
|
|
60
67
|
progress tables. It preserves cancelled/replacement Tasks as distinct membership rows.
|
|
61
68
|
- `scripts/chat-registry.mjs` atomically allocates project-monotonic `#NNN`, builds all six title
|
|
@@ -278,22 +278,32 @@ because the sandboxed call returned a permission error; those actions require th
|
|
|
278
278
|
authorization and evidence.
|
|
279
279
|
|
|
280
280
|
When `next` includes `writerTokenContract`, treat it as an exact first-call precondition. Retain
|
|
281
|
-
the
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
281
|
+
the `writerCredentialReference` returned by `task run`, `task claim`, or
|
|
282
|
+
`task writer-credential-replace`, including its public `credentialRef`, actor, allowed actions and
|
|
283
|
+
`expiresAt`. Pass the reference using the advertised `--writer-credential-ref` option. The secret
|
|
284
|
+
stays in the local vault: never read, print, copy, or edit vault records or substitute a redacted
|
|
285
|
+
token. This input contract is independent from `gitMutationPolicy`; satisfy both when present.
|
|
286
|
+
|
|
287
|
+
Before every credential-consuming mutation, especially after an independent review or a pause,
|
|
288
|
+
compare the held reference's `expiresAt` with the current time and verify its actor/action binding.
|
|
289
|
+
A live or renewed lease does not extend an existing reference's expiry; `reuse-reference` is not
|
|
290
|
+
permission to reuse an expired reference. If the reference is expired, missing, consumed, or its
|
|
291
|
+
validity cannot be established, use only the simultaneously advertised
|
|
292
|
+
`next.writerCredentialRecovery` action with its exact Task, revision and `requiredActor` before
|
|
293
|
+
attempting the blocked mutation. Follow successful replacement with `status` then `next`, retain
|
|
294
|
+
the newly returned reference and expiry, and discard the prior reference. If recovery is not
|
|
295
|
+
advertised, stop before mutation. Never extend expiry manually or retry with the old reference.
|
|
296
|
+
|
|
297
|
+
Successful `task handoff-prepare` returns a one-time `claimCredentialReference`; use its
|
|
298
|
+
`credentialRef` with the declared `--claim-credential-ref` option for `task claim` and the bound
|
|
299
|
+
actor. Successful claim consumes that reference. A renewed claim/run may return
|
|
300
|
+
`writerCredential.disposition=renewed` without a new reference; the held reference must still
|
|
301
|
+
satisfy its own expiry and binding checks. Never search later payload fields for raw tokens and
|
|
302
|
+
never copy credentials into evidence.
|
|
293
303
|
|
|
294
304
|
When a passed final Task review routes to `task result-set`, pass the active writer credential and,
|
|
295
305
|
for claimed C1 posture, the exact claimant as `--actor`. A successful `result-set` consumes that
|
|
296
|
-
execution lease before entering `awaiting_final_acceptance`; never reuse the old
|
|
306
|
+
execution lease before entering `awaiting_final_acceptance`; never reuse the old reference and never
|
|
297
307
|
leave or manufacture a lease while waiting for the Human decision. After `task accept`, follow fresh
|
|
298
308
|
`next`: local merge or external merge confirmation normally advertises
|
|
299
309
|
`task writer-credential-replace`, which acquires a new bounded lease for the exact recovery actor.
|
|
@@ -571,6 +581,19 @@ When `next` returns a derived C1 Worker or corrective Auditor actor, use that ex
|
|
|
571
581
|
asking the user to name one. Derivation removes a routing pause; handoff claim, writer lease,
|
|
572
582
|
strict review, and auditor-independence checks remain mandatory.
|
|
573
583
|
|
|
584
|
+
The beta.13.2 pending strict-review update exception is documented in
|
|
585
|
+
`docs/pending-review-update.md` in the exact package. An exact external target runner may run
|
|
586
|
+
only `update pending-review-source-preflight` against the known beta.13.1 source. Require its
|
|
587
|
+
verified runtime build, exact Task/revision/Plan/HEAD/pending binding and no blockers. If it
|
|
588
|
+
returns an exact stale Task lease repair, run that `locks repair` with the installed source and
|
|
589
|
+
repeat preflight. Preserve the eligible receipt outside the checkout; transport only the two
|
|
590
|
+
bound dependency commits on base and Task, then install the target locally. Fresh local `next`
|
|
591
|
+
must advertise `update pending-review-dependency-recover`; run its matching read-only preflight
|
|
592
|
+
with `--file <source-receipt>` before recovery. Recovery does not approve Knowledge or review.
|
|
593
|
+
Use the original pending product SHA through the newly sealed external packet and record,
|
|
594
|
+
then follow fresh credential/context-refresh/ordinary lifecycle actions. Never treat this as
|
|
595
|
+
permission for other external-runner mutations, product transport, or manual state repair.
|
|
596
|
+
|
|
574
597
|
Before an npm package update, run the project-local `update preflight` and stop unless it
|
|
575
598
|
returns `safe=true` with a clean checkout, no running Step, and no active writer lease.
|
|
576
599
|
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"summary": { "type": "string", "minLength": 1 },
|
|
36
36
|
"decision": { "enum": ["approved", "approved-with-rationale", "split-required", "stop-escalate"] },
|
|
37
37
|
"splitRationale": { "type": ["string", "null"], "minLength": 1 },
|
|
38
|
+
"structuralProductionEdgeAuthority": { "const": "required-v1" },
|
|
38
39
|
"stepClassifications": {
|
|
39
40
|
"type": "array",
|
|
40
41
|
"minItems": 1,
|