codex-workflow-v2 2.0.0-beta.12.1 → 2.0.0-beta.12.11

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.
Files changed (61) hide show
  1. package/README.md +65 -5
  2. package/dist/src/alpha6/downstream-proof.d.ts +68 -0
  3. package/dist/src/alpha6/downstream-proof.js +604 -0
  4. package/dist/src/alpha6/downstream-proof.js.map +1 -0
  5. package/dist/src/alpha6/milestone.d.ts +6 -2
  6. package/dist/src/alpha6/milestone.js +164 -10
  7. package/dist/src/alpha6/milestone.js.map +1 -1
  8. package/dist/src/alpha6/plan-risk.js +2 -2
  9. package/dist/src/alpha6/plan-risk.js.map +1 -1
  10. package/dist/src/alpha6/remediation.d.ts +2 -2
  11. package/dist/src/alpha6/remediation.js +18 -2
  12. package/dist/src/alpha6/remediation.js.map +1 -1
  13. package/dist/src/alpha6/review.d.ts +6 -0
  14. package/dist/src/alpha6/review.js +12 -0
  15. package/dist/src/alpha6/review.js.map +1 -1
  16. package/dist/src/alpha7/corrective-recovery.d.ts +8 -1
  17. package/dist/src/alpha7/corrective-recovery.js +406 -26
  18. package/dist/src/alpha7/corrective-recovery.js.map +1 -1
  19. package/dist/src/cli.js +118 -5
  20. package/dist/src/cli.js.map +1 -1
  21. package/dist/src/contracts.d.ts +112 -3
  22. package/dist/src/dependency-provenance.d.ts +25 -2
  23. package/dist/src/dependency-provenance.js +199 -13
  24. package/dist/src/dependency-provenance.js.map +1 -1
  25. package/dist/src/git.d.ts +1 -1
  26. package/dist/src/git.js +6 -2
  27. package/dist/src/git.js.map +1 -1
  28. package/dist/src/historical-step-provenance.d.ts +20 -0
  29. package/dist/src/historical-step-provenance.js +111 -0
  30. package/dist/src/historical-step-provenance.js.map +1 -0
  31. package/dist/src/state/corrective-replan-executor.js +5 -0
  32. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  33. package/dist/src/version.d.ts +1 -1
  34. package/dist/src/version.js +1 -1
  35. package/dist/src/version.js.map +1 -1
  36. package/dist/src/workflow.d.ts +37 -2
  37. package/dist/src/workflow.js +1409 -44
  38. package/dist/src/workflow.js.map +1 -1
  39. package/docs/autonomy-guardrails.md +73 -4
  40. package/docs/decisions.md +14 -0
  41. package/docs/delegated-approval.md +6 -1
  42. package/docs/development-flow.md +60 -5
  43. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  44. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  45. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  46. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +94 -8
  47. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +72 -8
  48. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +145 -32
  49. package/docs/release.md +46 -8
  50. package/docs/updating-existing-project.md +142 -6
  51. package/docs/validation-report.md +109 -95
  52. package/package.json +7 -2
  53. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  54. package/plugins/codex-workflow-gateway/references/protocol.md +55 -1
  55. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +150 -2
  56. package/schemas/authorization-event.schema.json +8 -1
  57. package/schemas/downstream-proof-invalidation-event.schema.json +71 -0
  58. package/schemas/downstream-proof-replan-recovery-event.schema.json +61 -0
  59. package/schemas/milestone-scope-change-event.schema.json +25 -1
  60. package/schemas/task.schema.json +104 -0
  61. package/scripts/generate-pdf-docs.py +13 -2
@@ -7,7 +7,7 @@ export type StepStatus = 'planned' | 'in_progress' | 'completed' | 'failed' | 'b
7
7
  export type WorkspaceOwner = 'local' | 'external';
8
8
  export type ReviewStatus = 'pending' | 'passed' | 'failed' | 'unverified';
9
9
  export type AuthorizationKind = 'execution' | 'final_acceptance' | 'exception';
10
- export type AuthorizationMode = 'human' | 'delegated';
10
+ export type AuthorizationMode = 'human' | 'delegated' | 'corrective-derived';
11
11
  export type DelegationStatus = 'active' | 'revoked';
12
12
  export type DelegationTransition = 'project_memory.approve' | 'task.execution_authorize' | 'task.final_accept' | 'milestone.execution_authorize' | 'milestone.final_accept';
13
13
  export type KnowledgeImpact = 'none' | 'update' | 'create' | 'retire';
@@ -328,6 +328,50 @@ export interface SidecarEventRecord {
328
328
  recordedAt: string;
329
329
  eventHash: string;
330
330
  }
331
+ export interface DownstreamProofInvalidationEvent extends SidecarEventRecord {
332
+ taskId: string;
333
+ previousTaskRevision: number;
334
+ resultTaskRevision: number;
335
+ planHash: string;
336
+ activeStepId: string;
337
+ invalidatedSteps: Array<{
338
+ stepId: string;
339
+ evidenceCommit: string;
340
+ triggerFiles: string[];
341
+ }>;
342
+ dirtyFiles: string[];
343
+ dirtyWorktreeHash?: string;
344
+ preservedHeadCommit: string;
345
+ actor: string;
346
+ reason: string;
347
+ packageVersion: string;
348
+ }
349
+ export interface DownstreamProofReplanRecoveryEvent extends SidecarEventRecord {
350
+ taskId: string;
351
+ previousTaskRevision: number;
352
+ resultTaskRevision: number;
353
+ invalidationEventId: string;
354
+ invalidationPlanHash: string;
355
+ reboundPlanHash: string;
356
+ knowledgeRebindRecordedAt: string;
357
+ dirtyFiles: string[];
358
+ dirtyWorktreeHash: string;
359
+ preservedHeadCommit: string;
360
+ dependencyRecoveryCommit: string | null;
361
+ actor: string;
362
+ reason: string;
363
+ packageVersion: string;
364
+ }
365
+ export interface DownstreamProofReplanCompatibility {
366
+ invalidationEventId: string;
367
+ activeStepId: string;
368
+ sourcePlanHash: string;
369
+ reboundPlanHash: string;
370
+ knowledgeRebindRecordedAt: string;
371
+ dirtyFiles: string[];
372
+ dirtyWorktreeHash: string;
373
+ invalidatedStepIds: string[];
374
+ }
331
375
  export interface PlanRiskAuditStepClassification {
332
376
  stepId: string;
333
377
  categories: GuardedRiskCategory[];
@@ -593,6 +637,16 @@ export interface MilestoneScopeSnapshot {
593
637
  taskIds: string[];
594
638
  memberships: MilestoneMembership[];
595
639
  }
640
+ export interface AuditedRemediationEvidence {
641
+ blockedTaskId: string;
642
+ blockedTaskRevision: number;
643
+ blockedBriefHash: string;
644
+ blockedPlanHash: string;
645
+ planRiskAuditEventId: string;
646
+ planRiskAuditEventHash: string;
647
+ remediationTaskId: string;
648
+ predecessorTaskIds: string[];
649
+ }
596
650
  export interface MilestoneScopeChangeEvent extends SidecarEventRecord {
597
651
  milestoneId: string;
598
652
  previousMilestoneRevision: number;
@@ -604,8 +658,9 @@ export interface MilestoneScopeChangeEvent extends SidecarEventRecord {
604
658
  after: MilestoneScopeSnapshot;
605
659
  actor: string;
606
660
  confirmationCodeBindingHash: string;
607
- authorizationMode?: 'human' | 'milestone-autonomy';
661
+ authorizationMode?: 'human' | 'milestone-autonomy' | 'audited-remediation';
608
662
  autonomyContractEventHash?: string | null;
663
+ remediationEvidence?: AuditedRemediationEvidence | null;
609
664
  }
610
665
  export interface AdoptionTaskStepSnapshot {
611
666
  stepId: string;
@@ -825,10 +880,26 @@ export interface DependencyProvenanceRecoveryRecord {
825
880
  reason: string;
826
881
  recordedAt: string;
827
882
  retainedHistoricalCommits?: string[];
883
+ activeDownstreamProof?: {
884
+ activeStepId: string;
885
+ planHash: string;
886
+ dirtyFiles: string[];
887
+ dirtyWorktreeHash: string;
888
+ invalidatedStepIds: string[];
889
+ };
890
+ downstreamProofReplan?: DownstreamProofReplanCompatibility;
891
+ historicalStepProvenance?: HistoricalStepDependencyCompatibility;
892
+ }
893
+ export interface HistoricalStepDependencyCompatibility {
894
+ activeStepId: string;
895
+ planHash: string;
896
+ dirtyFiles: string[];
897
+ dirtyWorktreeHash: string;
898
+ retainedCommitSha: string;
828
899
  }
829
900
  export interface DependencyProvenanceRecoveryPreflight {
830
901
  eligible: boolean;
831
- action: 'update dependency-provenance-recover' | null;
902
+ action: 'update dependency-provenance-recover' | 'update downstream-proof-dependency-recover' | 'update downstream-proof-replan-dependency-recover' | 'update historical-step-dependency-recover' | null;
832
903
  projectId: string;
833
904
  taskId: string;
834
905
  taskRevision: number;
@@ -837,6 +908,40 @@ export interface DependencyProvenanceRecoveryPreflight {
837
908
  packageVersion: string;
838
909
  changedFiles: string[];
839
910
  retainedHistoricalCommits: string[];
911
+ activeDownstreamProof: {
912
+ activeStepId: string;
913
+ planHash: string;
914
+ dirtyFiles: string[];
915
+ dirtyWorktreeHash: string;
916
+ invalidatedStepIds: string[];
917
+ } | null;
918
+ downstreamProofReplan: DownstreamProofReplanCompatibility | null;
919
+ historicalStepProvenance: HistoricalStepDependencyCompatibility | null;
920
+ blockers: string[];
921
+ }
922
+ export interface HistoricalStepProvenanceRecoveryRecord {
923
+ commitSha: string;
924
+ actor: string;
925
+ reason: string;
926
+ recordedAt: string;
927
+ sourceFinalAcceptanceRecordedAt: string;
928
+ sourcePlanHash: string;
929
+ sourceResultHash: string;
930
+ sourceEvidenceHash: string;
931
+ }
932
+ export interface HistoricalStepProvenanceRecoveryPreflight {
933
+ eligible: boolean;
934
+ action: 'task historical-step-provenance-recover' | null;
935
+ projectId: string;
936
+ taskId: string;
937
+ taskRevision: number;
938
+ briefHash: string;
939
+ planHash: string | null;
940
+ headCommit: string;
941
+ activeStepId: string | null;
942
+ dirtyFiles: string[];
943
+ commitSha: string | null;
944
+ sourceFinalAcceptanceRecordedAt: string | null;
840
945
  blockers: string[];
841
946
  }
842
947
  export interface MilestoneProgressStepProjection {
@@ -913,6 +1018,10 @@ export interface TaskState extends RevisionedRecord {
913
1018
  blockReason: string | null;
914
1019
  mergedCommit: string | null;
915
1020
  systemCommits: string[];
1021
+ /** Product commits retained after bounded invalidation of stale completed-Step authority. */
1022
+ invalidatedStepCommits?: string[];
1023
+ /** Audit trail for bounded recovery of previously reviewed Step commits omitted by a corrective Plan. */
1024
+ historicalStepProvenanceRecoveries?: HistoricalStepProvenanceRecoveryRecord[];
916
1025
  /** Audit trail for bounded adoption of exact Workflow dependency-only commits. */
917
1026
  dependencyProvenanceRecoveries?: DependencyProvenanceRecoveryRecord[];
918
1027
  /** Set only by the beta replacement transaction; absent on legacy states. */
@@ -1,4 +1,4 @@
1
- import type { DependencyProvenanceRecoveryPreflight, TaskState } from './contracts.js';
1
+ import type { DependencyProvenanceRecoveryPreflight, DownstreamProofReplanCompatibility, HistoricalStepDependencyCompatibility, ProjectKnowledgeMap, TaskState } from './contracts.js';
2
2
  interface RecoveryEnvironment {
3
3
  activeLeaseCount: number;
4
4
  staleLeaseCount: number;
@@ -15,5 +15,28 @@ interface RecoveryEnvironment {
15
15
  baseBranch: string | null;
16
16
  };
17
17
  }
18
- export declare function inspectDependencyProvenanceRecovery(repositoryRoot: string, task: TaskState, environment: RecoveryEnvironment): DependencyProvenanceRecoveryPreflight;
18
+ export interface ActiveDownstreamProofCompatibility {
19
+ activeStepId: string;
20
+ planHash: string;
21
+ dirtyFiles: string[];
22
+ dirtyWorktreeHash: string;
23
+ invalidatedStepIds: string[];
24
+ }
25
+ export interface DependencyKnowledgeRefreshAssessment {
26
+ eligible: boolean;
27
+ changedKnowledgePaths: string[];
28
+ dependencyCommits: string[];
29
+ sourcePackageVersion: string | null;
30
+ targetPackageVersion: string;
31
+ blockers: string[];
32
+ }
33
+ /**
34
+ * Proves that a stale approved Knowledge Map differs only because one or more
35
+ * consecutive package.json edits changed the exact codex-workflow-v2 pin. The
36
+ * intervening repository history may contain ordinary product commits, but
37
+ * every commit that touched package.json after the approved content must be a
38
+ * package.json/package-lock.json-only dependency update.
39
+ */
40
+ export declare function inspectDependencyKnowledgeRefresh(repositoryRoot: string, milestoneBaseBranch: string, approved: ProjectKnowledgeMap, inspected: ProjectKnowledgeMap): DependencyKnowledgeRefreshAssessment;
41
+ export declare function inspectDependencyProvenanceRecovery(repositoryRoot: string, task: TaskState, environment: RecoveryEnvironment, activeDownstreamProof?: ActiveDownstreamProofCompatibility | null, downstreamProofReplan?: DownstreamProofReplanCompatibility | null, historicalStepProvenance?: HistoricalStepDependencyCompatibility | null): DependencyProvenanceRecoveryPreflight;
19
42
  export {};
@@ -1,16 +1,158 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { spawnSync } from 'node:child_process';
1
3
  import { PACKAGE_NAME, PACKAGE_VERSION } from './version.js';
2
4
  import { changedFiles, currentBranch, headCommit, runGit } from './repository.js';
5
+ import { hashDirtyWorktree } from './alpha6/downstream-proof.js';
6
+ import { inspectWorkflowVersions } from './diagnostics.js';
3
7
  const RECOVERY_FILES = ['package-lock.json', 'package.json'];
4
8
  const TERMINAL_TASK_STATUSES = new Set(['merged', 'cancelled']);
5
- export function inspectDependencyProvenanceRecovery(repositoryRoot, task, environment) {
9
+ /**
10
+ * Proves that a stale approved Knowledge Map differs only because one or more
11
+ * consecutive package.json edits changed the exact codex-workflow-v2 pin. The
12
+ * intervening repository history may contain ordinary product commits, but
13
+ * every commit that touched package.json after the approved content must be a
14
+ * package.json/package-lock.json-only dependency update.
15
+ */
16
+ export function inspectDependencyKnowledgeRefresh(repositoryRoot, milestoneBaseBranch, approved, inspected) {
17
+ const blockers = [];
18
+ const approvedByPath = new Map(approved.entries.map((entry) => [entry.path, entry]));
19
+ const inspectedByPath = new Map(inspected.entries.map((entry) => [entry.path, entry]));
20
+ const changedKnowledgePaths = [...new Set([
21
+ ...approved.entries.map((entry) => entry.path),
22
+ ...inspected.entries.map((entry) => entry.path),
23
+ ])].filter((candidatePath) => {
24
+ const before = approvedByPath.get(candidatePath);
25
+ const after = inspectedByPath.get(candidatePath);
26
+ return !before || !after
27
+ || before.id !== after.id
28
+ || before.category !== after.category
29
+ || before.scope !== after.scope
30
+ || before.authority !== after.authority
31
+ || before.discoveredBy !== after.discoveredBy
32
+ || before.contentHash !== after.contentHash;
33
+ }).sort();
34
+ if (approved.status !== 'active' || !approved.approval) {
35
+ blockers.push('Dependency Knowledge refresh requires a previously approved active map.');
36
+ }
37
+ if (inspected.status !== 'stale') {
38
+ blockers.push('Dependency Knowledge refresh requires an inspected stale map.');
39
+ }
40
+ if (JSON.stringify(changedKnowledgePaths) !== JSON.stringify(['package.json'])) {
41
+ blockers.push('Only package.json may differ in Project Knowledge.');
42
+ }
43
+ const versions = inspectWorkflowVersions(repositoryRoot, [milestoneBaseBranch]);
44
+ const versionSurfaces = [
45
+ versions.runtime,
46
+ versions.declared,
47
+ versions.locked,
48
+ versions.installed,
49
+ versions.currentBranch,
50
+ ...versions.milestoneBases.map((entry) => entry.version),
51
+ ];
52
+ if (versionSurfaces.some((version) => version !== PACKAGE_VERSION)) {
53
+ blockers.push(`Every Workflow version surface must equal ${PACKAGE_VERSION}.`);
54
+ }
55
+ if (changedFiles(repositoryRoot).length > 0) {
56
+ blockers.push('Dependency Knowledge refresh requires a clean checkout.');
57
+ }
58
+ const approvedPackage = approvedByPath.get('package.json') ?? null;
59
+ const dependencyCommits = [];
60
+ let sourcePackageVersion = null;
61
+ if (!approvedPackage) {
62
+ blockers.push('The approved Knowledge Map does not contain package.json.');
63
+ }
64
+ else {
65
+ try {
66
+ const historyOutput = runGit(repositoryRoot, ['rev-list', 'HEAD', '--', 'package.json']);
67
+ const packageHistory = historyOutput ? historyOutput.split('\n') : [];
68
+ const sourceIndex = packageHistory.findIndex((commit) => sha256(readGitFile(repositoryRoot, commit, 'package.json')) === approvedPackage.contentHash);
69
+ if (sourceIndex < 0) {
70
+ blockers.push('Approved package.json content is not present in current Git ancestry.');
71
+ }
72
+ else {
73
+ sourcePackageVersion = manifestDependencyVersion(parseJson(readGitFile(repositoryRoot, packageHistory[sourceIndex], 'package.json')));
74
+ for (const commit of packageHistory.slice(0, sourceIndex).reverse()) {
75
+ const parent = runGit(repositoryRoot, ['rev-parse', `${commit}^`]);
76
+ const filesOutput = runGit(repositoryRoot, ['diff-tree', '--no-commit-id', '--name-only', '-r', commit]);
77
+ const files = filesOutput ? filesOutput.split('\n').sort() : [];
78
+ if (JSON.stringify(files) !== JSON.stringify(RECOVERY_FILES)) {
79
+ blockers.push(`Knowledge-changing commit ${commit} is not dependency-only.`);
80
+ continue;
81
+ }
82
+ if (!workflowDependencyJsonDiffIsBounded(repositoryRoot, parent, commit, null)) {
83
+ blockers.push(`Knowledge-changing commit ${commit} changes fields beyond the Workflow dependency.`);
84
+ continue;
85
+ }
86
+ dependencyCommits.push(commit);
87
+ }
88
+ if (dependencyCommits.length === 0) {
89
+ blockers.push('No bounded Workflow dependency commit explains the Knowledge drift.');
90
+ }
91
+ }
92
+ }
93
+ catch {
94
+ blockers.push('Dependency Knowledge refresh Git ancestry could not be verified.');
95
+ }
96
+ }
97
+ return {
98
+ eligible: blockers.length === 0,
99
+ changedKnowledgePaths,
100
+ dependencyCommits,
101
+ sourcePackageVersion,
102
+ targetPackageVersion: PACKAGE_VERSION,
103
+ blockers,
104
+ };
105
+ }
106
+ export function inspectDependencyProvenanceRecovery(repositoryRoot, task, environment, activeDownstreamProof = null, downstreamProofReplan = null, historicalStepProvenance = null) {
6
107
  const blockers = [];
7
108
  const dirty = changedFiles(repositoryRoot);
8
109
  const head = headCommit(repositoryRoot);
9
110
  let parent = null;
10
111
  let commitFiles = [];
11
112
  let retainedHistoricalCommits = [];
12
- if (dirty.length > 0)
13
- blockers.push('Repository checkout must be clean.');
113
+ const dirtyCompatibility = activeDownstreamProof ?? downstreamProofReplan ?? historicalStepProvenance;
114
+ if (dirtyCompatibility) {
115
+ if (JSON.stringify(dirty.sort()) !== JSON.stringify([...dirtyCompatibility.dirtyFiles].sort())) {
116
+ blockers.push('Dirty files changed after the compatibility assessment.');
117
+ }
118
+ try {
119
+ if (hashDirtyWorktree(repositoryRoot, dirty) !== dirtyCompatibility.dirtyWorktreeHash) {
120
+ blockers.push('Dirty file content changed after the compatibility assessment.');
121
+ }
122
+ }
123
+ catch (error) {
124
+ blockers.push(error instanceof Error ? error.message : String(error));
125
+ }
126
+ if (activeDownstreamProof) {
127
+ if (!task.planHash || task.planHash !== activeDownstreamProof.planHash) {
128
+ blockers.push('The current Task Plan must match the active downstream-proof compatibility binding.');
129
+ }
130
+ const inProgressSteps = task.steps.filter((step) => step.status === 'in_progress');
131
+ if (inProgressSteps.length !== 1 || inProgressSteps[0]?.id !== activeDownstreamProof.activeStepId) {
132
+ blockers.push('Exactly the bound downstream-proof Step must remain in progress.');
133
+ }
134
+ }
135
+ else if (downstreamProofReplan) {
136
+ if (task.status !== 'awaiting_execution_authorization'
137
+ || task.planHash !== downstreamProofReplan.reboundPlanHash
138
+ || task.steps.some((step) => step.status === 'in_progress')) {
139
+ blockers.push('The Task must retain the exact stranded post-rebind/no-running-Step posture.');
140
+ }
141
+ }
142
+ else if (historicalStepProvenance) {
143
+ if (task.status !== 'in_progress' || task.planHash !== historicalStepProvenance.planHash) {
144
+ blockers.push('The current in-progress Task Plan must match the historical Step compatibility binding.');
145
+ }
146
+ const inProgressSteps = task.steps.filter((step) => step.status === 'in_progress');
147
+ if (inProgressSteps.length !== 1 || inProgressSteps[0]?.id !== historicalStepProvenance.activeStepId) {
148
+ blockers.push('Exactly the bound corrective Step must remain in progress.');
149
+ }
150
+ }
151
+ }
152
+ else {
153
+ if (dirty.length > 0)
154
+ blockers.push('Repository checkout must be clean.');
155
+ }
14
156
  if (task.workspaceOwner !== 'local')
15
157
  blockers.push('Recovery is limited to a local Task workspace.');
16
158
  if (!task.taskBranch || currentBranch(repositoryRoot) !== task.taskBranch) {
@@ -20,8 +162,9 @@ export function inspectDependencyProvenanceRecovery(repositoryRoot, task, enviro
20
162
  blockers.push('The Task must have a recorded base commit.');
21
163
  if (TERMINAL_TASK_STATUSES.has(task.status))
22
164
  blockers.push('Terminal Tasks cannot recover dependency provenance.');
23
- if (task.steps.some((step) => step.status === 'in_progress'))
165
+ if (!dirtyCompatibility && task.steps.some((step) => step.status === 'in_progress')) {
24
166
  blockers.push('No Step may be in progress.');
167
+ }
25
168
  if (environment.activeLeaseCount > 0)
26
169
  blockers.push('No active writer lease may exist.');
27
170
  if (environment.staleLeaseCount > 0)
@@ -52,11 +195,17 @@ export function inspectDependencyProvenanceRecovery(repositoryRoot, task, enviro
52
195
  const expectedBeforeHead = [
53
196
  ...task.steps.flatMap((step) => (step.evidence ? [step.evidence.commitSha] : [])),
54
197
  ...task.systemCommits,
198
+ ...(task.invalidatedStepCommits ?? []),
199
+ ...(task.dependencyProvenanceRecoveries ?? []).flatMap((recovery) => recovery.retainedHistoricalCommits ?? []),
55
200
  ...environment.verifiedHistoricalStepCommits.filter((commit) => actualBeforeHead.includes(commit)),
56
201
  ];
57
202
  retainedHistoricalCommits = environment.verifiedHistoricalStepCommits.filter((commit) => actualBeforeHead.includes(commit)
58
203
  && !task.systemCommits.includes(commit)
59
204
  && !task.steps.some((step) => step.evidence?.commitSha === commit));
205
+ if (historicalStepProvenance
206
+ && !retainedHistoricalCommits.includes(historicalStepProvenance.retainedCommitSha)) {
207
+ blockers.push('The dependency candidate no longer retains the bound reviewed historical Step commit.');
208
+ }
60
209
  if (history.at(-1) !== head || !sameCommitSet(actualBeforeHead, [...new Set(expectedBeforeHead)])) {
61
210
  blockers.push('HEAD must be the only unregistered commit after the exact recorded Task history.');
62
211
  }
@@ -73,7 +222,15 @@ export function inspectDependencyProvenanceRecovery(repositoryRoot, task, enviro
73
222
  }
74
223
  return {
75
224
  eligible: blockers.length === 0,
76
- action: blockers.length === 0 ? 'update dependency-provenance-recover' : null,
225
+ action: blockers.length === 0
226
+ ? activeDownstreamProof
227
+ ? 'update downstream-proof-dependency-recover'
228
+ : downstreamProofReplan
229
+ ? 'update downstream-proof-replan-dependency-recover'
230
+ : historicalStepProvenance
231
+ ? 'update historical-step-dependency-recover'
232
+ : 'update dependency-provenance-recover'
233
+ : null,
77
234
  projectId: task.projectId,
78
235
  taskId: task.id,
79
236
  taskRevision: task.revision,
@@ -82,6 +239,9 @@ export function inspectDependencyProvenanceRecovery(repositoryRoot, task, enviro
82
239
  packageVersion: PACKAGE_VERSION,
83
240
  changedFiles: commitFiles,
84
241
  retainedHistoricalCommits,
242
+ activeDownstreamProof,
243
+ downstreamProofReplan,
244
+ historicalStepProvenance,
85
245
  blockers,
86
246
  };
87
247
  }
@@ -93,15 +253,18 @@ function sameCommitSet(actual, expected) {
93
253
  function dependencyJsonDiffIsBounded(repositoryRoot, parent, baseBranch) {
94
254
  if (!parent)
95
255
  return false;
96
- const beforeManifestContent = runGit(repositoryRoot, ['show', `${parent}:package.json`]);
97
- const afterManifestContent = runGit(repositoryRoot, ['show', 'HEAD:package.json']);
98
- const beforeLockContent = runGit(repositoryRoot, ['show', `${parent}:package-lock.json`]);
99
- const afterLockContent = runGit(repositoryRoot, ['show', 'HEAD:package-lock.json']);
100
256
  // The base branch remains version authority through environment.versions.baseBranch.
101
257
  // Product-owned manifest/lock fields may legitimately differ on the Task branch;
102
258
  // the candidate itself must preserve them byte-for-structure after removing only
103
259
  // the Workflow dependency entries.
104
260
  void baseBranch;
261
+ return workflowDependencyJsonDiffIsBounded(repositoryRoot, parent, 'HEAD', PACKAGE_VERSION);
262
+ }
263
+ function workflowDependencyJsonDiffIsBounded(repositoryRoot, parent, revision, expectedAfterVersion) {
264
+ const beforeManifestContent = runGit(repositoryRoot, ['show', `${parent}:package.json`]);
265
+ const afterManifestContent = runGit(repositoryRoot, ['show', `${revision}:package.json`]);
266
+ const beforeLockContent = runGit(repositoryRoot, ['show', `${parent}:package-lock.json`]);
267
+ const afterLockContent = runGit(repositoryRoot, ['show', `${revision}:package-lock.json`]);
105
268
  const beforeManifest = parseJson(beforeManifestContent);
106
269
  const afterManifest = parseJson(afterManifestContent);
107
270
  const beforeLock = parseJson(beforeLockContent);
@@ -109,13 +272,19 @@ function dependencyJsonDiffIsBounded(repositoryRoot, parent, baseBranch) {
109
272
  if (!beforeManifest || !afterManifest || !beforeLock || !afterLock)
110
273
  return false;
111
274
  const beforeManifestDependencies = manifestDependencyValues(beforeManifest);
112
- if (!targetsExactDevDependency(afterManifest, PACKAGE_VERSION))
275
+ const beforeVersion = beforeManifestDependencies.length === 1 ? beforeManifestDependencies[0] : null;
276
+ const afterVersion = manifestDependencyVersion(afterManifest);
277
+ if (!beforeVersion || !afterVersion || beforeVersion === afterVersion)
278
+ return false;
279
+ if (!targetsExactDevDependency(beforeManifest, beforeVersion))
113
280
  return false;
114
- if (beforeManifestDependencies.length !== 1 || beforeManifestDependencies[0] === PACKAGE_VERSION)
281
+ if (!targetsExactDevDependency(afterManifest, afterVersion))
115
282
  return false;
116
- if (!lockTargetsExactVersion(afterLock, PACKAGE_VERSION))
283
+ if (expectedAfterVersion !== null && afterVersion !== expectedAfterVersion)
117
284
  return false;
118
- if (lockTargetsExactVersion(beforeLock, PACKAGE_VERSION))
285
+ if (!lockTargetsExactVersion(beforeLock, beforeVersion))
286
+ return false;
287
+ if (!lockTargetsExactVersion(afterLock, afterVersion))
119
288
  return false;
120
289
  return JSON.stringify(stripManifestDependency(beforeManifest)) === JSON.stringify(stripManifestDependency(afterManifest))
121
290
  && JSON.stringify(stripLockDependency(beforeLock)) === JSON.stringify(stripLockDependency(afterLock));
@@ -138,6 +307,12 @@ function manifestDependencyValues(manifest) {
138
307
  }
139
308
  return values;
140
309
  }
310
+ function manifestDependencyVersion(manifest) {
311
+ if (!manifest)
312
+ return null;
313
+ const values = manifestDependencyValues(manifest);
314
+ return values.length === 1 ? values[0] : null;
315
+ }
141
316
  function lockTargetsExactVersion(lock, version) {
142
317
  const packages = record(lock.packages);
143
318
  const entry = record(packages?.[`node_modules/${PACKAGE_NAME}`]);
@@ -184,4 +359,15 @@ function stripLockDependency(source) {
184
359
  function record(value) {
185
360
  return value && typeof value === 'object' && !Array.isArray(value) ? value : null;
186
361
  }
362
+ function sha256(value) {
363
+ return createHash('sha256').update(value).digest('hex');
364
+ }
365
+ function readGitFile(repositoryRoot, revision, filePath) {
366
+ const result = spawnSync('git', ['-C', repositoryRoot, 'show', `${revision}:${filePath}`], {
367
+ encoding: 'utf8',
368
+ });
369
+ if (result.status !== 0)
370
+ throw new Error(result.stderr.trim() || `Cannot read ${revision}:${filePath}.`);
371
+ return result.stdout;
372
+ }
187
373
  //# sourceMappingURL=dependency-provenance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-provenance.js","sourceRoot":"","sources":["../../src/dependency-provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependency-provenance.js","sourceRoot":"","sources":["../../src/dependency-provenance.ts"],"names":[],"mappings":"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"}
package/dist/src/git.d.ts CHANGED
@@ -16,4 +16,4 @@ export declare function syncBaseIntoTask(repositoryRoot: string, taskBranch: str
16
16
  baseCommit: string;
17
17
  syncCommit: string;
18
18
  };
19
- export declare function validateTaskHistory(repositoryRoot: string, task: TaskState): void;
19
+ export declare function validateTaskHistory(repositoryRoot: string, task: TaskState, historyBoundary?: string): void;
package/dist/src/git.js CHANGED
@@ -96,14 +96,17 @@ export function syncBaseIntoTask(repositoryRoot, taskBranch, baseBranch) {
96
96
  syncCommit: headCommit(repositoryRoot),
97
97
  };
98
98
  }
99
- export function validateTaskHistory(repositoryRoot, task) {
99
+ export function validateTaskHistory(repositoryRoot, task, historyBoundary = 'HEAD') {
100
100
  if (!task.baseCommit)
101
101
  throw new WorkflowError('STATE_CORRUPT', `Task ${task.id} has no base commit.`);
102
- const actualOutput = runGit(repositoryRoot, ['rev-list', '--reverse', `${task.baseCommit}..HEAD`]);
102
+ const boundaryCommit = runGit(repositoryRoot, ['rev-parse', historyBoundary]);
103
+ const actualOutput = runGit(repositoryRoot, ['rev-list', '--reverse', `${task.baseCommit}..${boundaryCommit}`]);
103
104
  const actual = actualOutput ? actualOutput.split('\n') : [];
104
105
  const expected = [...new Set([
105
106
  ...task.steps.flatMap((step) => (step.evidence ? [step.evidence.commitSha] : [])),
106
107
  ...task.systemCommits,
108
+ ...(task.invalidatedStepCommits ?? []),
109
+ ...(task.historicalStepProvenanceRecoveries ?? []).map((recovery) => recovery.commitSha),
107
110
  ...(task.dependencyProvenanceRecoveries ?? []).flatMap((recovery) => recovery.retainedHistoricalCommits ?? []),
108
111
  ])];
109
112
  const missing = expected.filter((commit) => !actual.includes(commit));
@@ -114,6 +117,7 @@ export function validateTaskHistory(repositoryRoot, task) {
114
117
  unexpected,
115
118
  baseCommit: task.baseCommit,
116
119
  headCommit: headCommit(repositoryRoot),
120
+ historyBoundary: boundaryCommit,
117
121
  recovery: 'Restore the pre-commit working changes under coordinator control, then invoke task step-complete.',
118
122
  });
119
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { HistoricalStepProvenanceRecoveryPreflight, TaskState } from './contracts.js';
2
+ export interface HistoricalStepProvenanceEnvironment {
3
+ activeLeaseCount: number;
4
+ staleLeaseCount: number;
5
+ pendingTransactionCount: number;
6
+ corruptTransactionCount: number;
7
+ coreOperationCount: number;
8
+ verifiedHistoricalStepBindings: Array<{
9
+ stepId: string;
10
+ commitSha: string;
11
+ planHash: string;
12
+ recordedAt: string;
13
+ }>;
14
+ }
15
+ export interface HistoricalStepProvenanceInspectionOptions {
16
+ historyBoundary?: string;
17
+ preservedHeadCommit?: string;
18
+ }
19
+ export declare function omittedStepEvidenceCommits(task: TaskState, nextSteps: ReadonlyArray<Pick<TaskState['steps'][number], 'evidence'>>): string[];
20
+ export declare function inspectHistoricalStepProvenanceRecovery(repositoryRoot: string, task: TaskState, environment: HistoricalStepProvenanceEnvironment, options?: HistoricalStepProvenanceInspectionOptions): HistoricalStepProvenanceRecoveryPreflight;