@msn-control/liftoff 0.11.3 → 0.12.1
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/DEVELOPER.md +26 -35
- package/README.md +18 -18
- package/assets/governance/single-maintainer-gitflow/activation-v2-graph.json +1583 -0
- package/dist/adapters/credentials/github-enrollment.d.ts +51 -0
- package/dist/adapters/credentials/github-enrollment.js +226 -0
- package/dist/adapters/credentials/github-enrollment.js.map +1 -0
- package/dist/adapters/credentials/protected-input.d.ts +7 -0
- package/dist/adapters/credentials/protected-input.js +68 -0
- package/dist/adapters/credentials/protected-input.js.map +1 -0
- package/dist/adapters/filesystem/executables.d.ts +2 -0
- package/dist/adapters/filesystem/executables.js +70 -0
- package/dist/adapters/filesystem/executables.js.map +1 -0
- package/dist/adapters/filesystem/update-previews.d.ts +9 -0
- package/dist/adapters/filesystem/update-previews.js +44 -0
- package/dist/adapters/filesystem/update-previews.js.map +1 -1
- package/dist/adapters/filesystem/workstation-attempts.d.ts +13 -0
- package/dist/adapters/filesystem/workstation-attempts.js +78 -0
- package/dist/adapters/filesystem/workstation-attempts.js.map +1 -0
- package/dist/adapters/github/activation-rest.d.ts +40 -0
- package/dist/adapters/github/activation-rest.js +272 -0
- package/dist/adapters/github/activation-rest.js.map +1 -0
- package/dist/adapters/state/azure-blob.d.ts +43 -0
- package/dist/adapters/state/azure-blob.js +335 -0
- package/dist/adapters/state/azure-blob.js.map +1 -0
- package/dist/adapters/state/darwin-capabilities.d.ts +33 -0
- package/dist/adapters/state/darwin-capabilities.js +146 -0
- package/dist/adapters/state/darwin-capabilities.js.map +1 -0
- package/dist/adapters/state/darwin-native-host.d.ts +32 -0
- package/dist/adapters/state/darwin-native-host.js +294 -0
- package/dist/adapters/state/darwin-native-host.js.map +1 -0
- package/dist/adapters/state/darwin-profile.d.ts +6 -0
- package/dist/adapters/state/darwin-profile.js +56 -0
- package/dist/adapters/state/darwin-profile.js.map +1 -0
- package/dist/adapters/state/darwin-system-program.d.ts +1 -0
- package/dist/adapters/state/darwin-system-program.js +94 -0
- package/dist/adapters/state/darwin-system-program.js.map +1 -0
- package/dist/adapters/state/local-qualification.d.ts +16 -0
- package/dist/adapters/state/local-qualification.js +299 -0
- package/dist/adapters/state/local-qualification.js.map +1 -0
- package/dist/adapters/state/local.d.ts +25 -0
- package/dist/adapters/state/local.js +145 -0
- package/dist/adapters/state/local.js.map +1 -0
- package/dist/adapters/state/native-command.d.ts +21 -0
- package/dist/adapters/state/native-command.js +82 -0
- package/dist/adapters/state/native-command.js.map +1 -0
- package/dist/adapters/state/native-files.d.ts +2 -0
- package/dist/adapters/state/native-files.js +47 -0
- package/dist/adapters/state/native-files.js.map +1 -0
- package/dist/adapters/state/native-system.d.ts +38 -0
- package/dist/adapters/state/native-system.js +86 -0
- package/dist/adapters/state/native-system.js.map +1 -0
- package/dist/adapters/state/opentofu.d.ts +35 -0
- package/dist/adapters/state/opentofu.js +350 -0
- package/dist/adapters/state/opentofu.js.map +1 -0
- package/dist/adapters/state/owned-process.d.ts +43 -0
- package/dist/adapters/state/owned-process.js +252 -0
- package/dist/adapters/state/owned-process.js.map +1 -0
- package/dist/adapters/state/posix-lock-program.d.ts +1 -0
- package/dist/adapters/state/posix-lock-program.js +185 -0
- package/dist/adapters/state/posix-lock-program.js.map +1 -0
- package/dist/adapters/state/posix-native-lock.d.ts +15 -0
- package/dist/adapters/state/posix-native-lock.js +145 -0
- package/dist/adapters/state/posix-native-lock.js.map +1 -0
- package/dist/adapters/state/protected-workspace.d.ts +57 -0
- package/dist/adapters/state/protected-workspace.js +412 -0
- package/dist/adapters/state/protected-workspace.js.map +1 -0
- package/dist/application/context.d.ts +3 -0
- package/dist/application/diagnose/doctor.d.ts +5 -0
- package/dist/application/diagnose/doctor.js +21 -5
- package/dist/application/diagnose/doctor.js.map +1 -1
- package/dist/application/diagnose/generated-project.js +2 -7
- package/dist/application/diagnose/generated-project.js.map +1 -1
- package/dist/application/initialize/fixture.js +8 -1
- package/dist/application/initialize/fixture.js.map +1 -1
- package/dist/application/initialize/use-case.js +70 -36
- package/dist/application/initialize/use-case.js.map +1 -1
- package/dist/application/project/manifest.js +5 -4
- package/dist/application/project/manifest.js.map +1 -1
- package/dist/application/state-migration/execution.d.ts +32 -0
- package/dist/application/state-migration/execution.js +440 -0
- package/dist/application/state-migration/execution.js.map +1 -0
- package/dist/application/state-migration/index.d.ts +22 -0
- package/dist/application/state-migration/index.js +17 -0
- package/dist/application/state-migration/index.js.map +1 -0
- package/dist/application/state-migration/lifecycle.d.ts +3 -0
- package/dist/application/state-migration/lifecycle.js +149 -0
- package/dist/application/state-migration/lifecycle.js.map +1 -0
- package/dist/application/state-migration/planning.d.ts +7 -0
- package/dist/application/state-migration/planning.js +150 -0
- package/dist/application/state-migration/planning.js.map +1 -0
- package/dist/application/state-migration/recovery.d.ts +5 -0
- package/dist/application/state-migration/recovery.js +145 -0
- package/dist/application/state-migration/recovery.js.map +1 -0
- package/dist/application/state-migration/runtime.d.ts +32 -0
- package/dist/application/state-migration/runtime.js +188 -0
- package/dist/application/state-migration/runtime.js.map +1 -0
- package/dist/application/state-migration/service.d.ts +2 -0
- package/dist/application/state-migration/service.js +20 -0
- package/dist/application/state-migration/service.js.map +1 -0
- package/dist/application/update/inspection.d.ts +16 -2
- package/dist/application/update/inspection.js +76 -23
- package/dist/application/update/inspection.js.map +1 -1
- package/dist/application/update/migration-runtime.js +24 -11
- package/dist/application/update/migration-runtime.js.map +1 -1
- package/dist/application/update/output.d.ts +2 -0
- package/dist/application/update/output.js +11 -1
- package/dist/application/update/output.js.map +1 -1
- package/dist/application/update/revalidation-plan.d.ts +1 -0
- package/dist/application/update/revalidation-plan.js +25 -12
- package/dist/application/update/revalidation-plan.js.map +1 -1
- package/dist/application/update/revalidation.d.ts +4 -1
- package/dist/application/update/revalidation.js +62 -21
- package/dist/application/update/revalidation.js.map +1 -1
- package/dist/application/update/use-case.js +25 -17
- package/dist/application/update/use-case.js.map +1 -1
- package/dist/application/upgrade/use-case.js +3 -0
- package/dist/application/upgrade/use-case.js.map +1 -1
- package/dist/cli/args/definitions.js +11 -3
- package/dist/cli/args/definitions.js.map +1 -1
- package/dist/cli/args/parser.js +29 -3
- package/dist/cli/args/parser.js.map +1 -1
- package/dist/domain/governance/activation/approvals.d.ts +264 -7
- package/dist/domain/governance/activation/approvals.js +166 -23
- package/dist/domain/governance/activation/approvals.js.map +1 -1
- package/dist/domain/governance/activation/capabilities.js +5 -2
- package/dist/domain/governance/activation/capabilities.js.map +1 -1
- package/dist/domain/governance/activation/evidence.d.ts +2 -1
- package/dist/domain/governance/activation/evidence.js +64 -11
- package/dist/domain/governance/activation/evidence.js.map +1 -1
- package/dist/domain/governance/activation/graph.d.ts +11 -384
- package/dist/domain/governance/activation/graph.js +424 -379
- package/dist/domain/governance/activation/graph.js.map +1 -1
- package/dist/domain/governance/activation/inputs.d.ts +3 -1
- package/dist/domain/governance/activation/inputs.js +47 -6
- package/dist/domain/governance/activation/inputs.js.map +1 -1
- package/dist/domain/governance/activation/operations.d.ts +4 -1
- package/dist/domain/governance/activation/operations.js +110 -22
- package/dist/domain/governance/activation/operations.js.map +1 -1
- package/dist/domain/governance/activation/readiness.d.ts +10 -0
- package/dist/domain/governance/activation/readiness.js +77 -38
- package/dist/domain/governance/activation/readiness.js.map +1 -1
- package/dist/domain/governance/activation/types.d.ts +151 -9
- package/dist/domain/governance/activation/types.js +23 -1
- package/dist/domain/governance/activation/types.js.map +1 -1
- package/dist/domain/governance/activation/validators.d.ts +4 -1
- package/dist/domain/governance/activation/validators.js +419 -26
- package/dist/domain/governance/activation/validators.js.map +1 -1
- package/dist/domain/governance/policy/identity.d.ts +55 -13
- package/dist/domain/governance/policy/identity.js +28 -8
- package/dist/domain/governance/policy/identity.js.map +1 -1
- package/dist/domain/project/artifact-lifecycle.d.ts +2 -1
- package/dist/domain/project/artifact-lifecycle.js +7 -1
- package/dist/domain/project/artifact-lifecycle.js.map +1 -1
- package/dist/domain/project/catalog.d.ts +50 -1
- package/dist/domain/project/catalog.js +104 -4
- package/dist/domain/project/catalog.js.map +1 -1
- package/dist/domain/project/contracts.d.ts +9 -1
- package/dist/domain/project/infrastructure-layout.d.ts +1 -1
- package/dist/domain/project/infrastructure-layout.js +3 -1
- package/dist/domain/project/infrastructure-layout.js.map +1 -1
- package/dist/domain/project/manifest/governance.d.ts +1 -1
- package/dist/domain/project/manifest/governance.js +9 -10
- package/dist/domain/project/manifest/governance.js.map +1 -1
- package/dist/domain/project/planning.js +4 -5
- package/dist/domain/project/planning.js.map +1 -1
- package/dist/domain/repair/stateful-bounded.d.ts +1 -0
- package/dist/domain/repair/stateful-bounded.js +37 -0
- package/dist/domain/repair/stateful-bounded.js.map +1 -0
- package/dist/domain/repair/stateful-invariants.d.ts +28 -0
- package/dist/domain/repair/stateful-invariants.js +278 -0
- package/dist/domain/repair/stateful-invariants.js.map +1 -0
- package/dist/domain/repair/stateful.d.ts +690 -0
- package/dist/domain/repair/stateful.js +26 -0
- package/dist/domain/repair/stateful.js.map +1 -0
- package/dist/domain/workstation/constraints.d.ts +1 -0
- package/dist/domain/workstation/constraints.js.map +1 -1
- package/dist/domain/workstation/contracts.d.ts +42 -0
- package/dist/domain/workstation/contracts.js +2 -0
- package/dist/domain/workstation/contracts.js.map +1 -0
- package/dist/domain/workstation/executables.d.ts +19 -0
- package/dist/domain/workstation/executables.js +68 -0
- package/dist/domain/workstation/executables.js.map +1 -0
- package/dist/domain/workstation/versions.d.ts +8 -0
- package/dist/domain/workstation/versions.js +145 -0
- package/dist/domain/workstation/versions.js.map +1 -0
- package/dist/framework-adapters.d.ts +2 -0
- package/dist/framework-adapters.js +148 -22
- package/dist/framework-adapters.js.map +1 -1
- package/dist/framework-validation.d.ts +6 -0
- package/dist/framework-validation.js +89 -24
- package/dist/framework-validation.js.map +1 -1
- package/dist/generators/common/base.js +57 -17
- package/dist/generators/common/base.js.map +1 -1
- package/dist/governance-activation/activation-state.js +39 -7
- package/dist/governance-activation/activation-state.js.map +1 -1
- package/dist/governance-activation/authority-records.d.ts +4 -0
- package/dist/governance-activation/authority-records.js +24 -0
- package/dist/governance-activation/authority-records.js.map +1 -0
- package/dist/governance-activation/commands.d.ts +9 -1
- package/dist/governance-activation/commands.js +392 -97
- package/dist/governance-activation/commands.js.map +1 -1
- package/dist/governance-activation/compatibility.d.ts +11 -8
- package/dist/governance-activation/compatibility.js +37 -23
- package/dist/governance-activation/compatibility.js.map +1 -1
- package/dist/governance-activation/doctor.js +40 -16
- package/dist/governance-activation/doctor.js.map +1 -1
- package/dist/governance-activation/github-config.d.ts +17 -0
- package/dist/governance-activation/github-config.js +88 -0
- package/dist/governance-activation/github-config.js.map +1 -0
- package/dist/governance-activation/github-discovery.d.ts +18 -0
- package/dist/governance-activation/github-discovery.js +229 -0
- package/dist/governance-activation/github-discovery.js.map +1 -0
- package/dist/governance-activation/github-ports.d.ts +12 -0
- package/dist/governance-activation/github-ports.js +4 -0
- package/dist/governance-activation/github-ports.js.map +1 -0
- package/dist/governance-activation/github-publication.d.ts +3 -0
- package/dist/governance-activation/github-publication.js +190 -0
- package/dist/governance-activation/github-publication.js.map +1 -0
- package/dist/governance-activation/historical-common.d.ts +98 -0
- package/dist/governance-activation/historical-common.js +269 -0
- package/dist/governance-activation/historical-common.js.map +1 -0
- package/dist/governance-activation/historical-credential-policy.d.ts +3 -0
- package/dist/governance-activation/historical-credential-policy.js +91 -0
- package/dist/governance-activation/historical-credential-policy.js.map +1 -0
- package/dist/governance-activation/historical-inputs.d.ts +6 -0
- package/dist/governance-activation/historical-inputs.js +57 -0
- package/dist/governance-activation/historical-inputs.js.map +1 -0
- package/dist/governance-activation/historical-safety.d.ts +9 -0
- package/dist/governance-activation/historical-safety.js +102 -0
- package/dist/governance-activation/historical-safety.js.map +1 -0
- package/dist/governance-activation/historical-source-metadata.d.ts +31 -0
- package/dist/governance-activation/historical-source-metadata.js +55 -0
- package/dist/governance-activation/historical-source-metadata.js.map +1 -0
- package/dist/governance-activation/historical-state.d.ts +12 -50
- package/dist/governance-activation/historical-state.js +195 -308
- package/dist/governance-activation/historical-state.js.map +1 -1
- package/dist/governance-activation/historical-v1-auxiliary.d.ts +1 -0
- package/dist/governance-activation/historical-v1-auxiliary.js +43 -0
- package/dist/governance-activation/historical-v1-auxiliary.js.map +1 -0
- package/dist/governance-activation/historical-v1-phase-contracts.d.ts +31 -0
- package/dist/governance-activation/historical-v1-phase-contracts.js +46 -0
- package/dist/governance-activation/historical-v1-phase-contracts.js.map +1 -0
- package/dist/governance-activation/historical-v2.d.ts +53 -0
- package/dist/governance-activation/historical-v2.js +313 -0
- package/dist/governance-activation/historical-v2.js.map +1 -0
- package/dist/governance-activation/history-contracts.d.ts +21 -12
- package/dist/governance-activation/history-contracts.js +99 -27
- package/dist/governance-activation/history-contracts.js.map +1 -1
- package/dist/governance-activation/inputs.d.ts +8 -2
- package/dist/governance-activation/inputs.js +41 -6
- package/dist/governance-activation/inputs.js.map +1 -1
- package/dist/governance-activation/migration-history.d.ts +43 -5
- package/dist/governance-activation/migration-history.js +231 -50
- package/dist/governance-activation/migration-history.js.map +1 -1
- package/dist/governance-activation/migration.d.ts +7 -4
- package/dist/governance-activation/migration.js +53 -252
- package/dist/governance-activation/migration.js.map +1 -1
- package/dist/governance-activation/phase-azure.d.ts +3 -0
- package/dist/governance-activation/phase-azure.js +205 -0
- package/dist/governance-activation/phase-azure.js.map +1 -0
- package/dist/governance-activation/phase-bootstrap-state.js +3 -0
- package/dist/governance-activation/phase-bootstrap-state.js.map +1 -1
- package/dist/governance-activation/phase-github.d.ts +3 -0
- package/dist/governance-activation/phase-github.js +192 -0
- package/dist/governance-activation/phase-github.js.map +1 -0
- package/dist/governance-activation/phase-governance.js +8 -2
- package/dist/governance-activation/phase-governance.js.map +1 -1
- package/dist/governance-activation/public-plans.d.ts +36 -0
- package/dist/governance-activation/public-plans.js +100 -0
- package/dist/governance-activation/public-plans.js.map +1 -0
- package/dist/governance-activation/read-only.d.ts +3 -1
- package/dist/governance-activation/read-only.js +7 -3
- package/dist/governance-activation/read-only.js.map +1 -1
- package/dist/governance-activation/reconciliation.js +10 -0
- package/dist/governance-activation/reconciliation.js.map +1 -1
- package/dist/governance-activation/seed-lifecycle.js +14 -25
- package/dist/governance-activation/seed-lifecycle.js.map +1 -1
- package/dist/governance-activation/source-of-truth.d.ts +21 -5
- package/dist/governance-activation/source-of-truth.js +102 -13
- package/dist/governance-activation/source-of-truth.js.map +1 -1
- package/dist/governance-activation/task-projection.d.ts +4 -1
- package/dist/governance-activation/task-projection.js +32 -3
- package/dist/governance-activation/task-projection.js.map +1 -1
- package/dist/governance-activation/task-writes.d.ts +42 -0
- package/dist/governance-activation/task-writes.js +250 -0
- package/dist/governance-activation/task-writes.js.map +1 -0
- package/dist/governance-activation/transition-files.d.ts +12 -0
- package/dist/governance-activation/transition-files.js +109 -0
- package/dist/governance-activation/transition-files.js.map +1 -0
- package/dist/governance-activation/transition-planning.d.ts +3 -1
- package/dist/governance-activation/transition-planning.js +158 -20
- package/dist/governance-activation/transition-planning.js.map +1 -1
- package/dist/governance-activation/transition-ports.d.ts +31 -3
- package/dist/governance-activation/transition-records.d.ts +11 -1
- package/dist/governance-activation/transition-records.js +52 -6
- package/dist/governance-activation/transition-records.js.map +1 -1
- package/dist/governance-activation/transitions.d.ts +5 -0
- package/dist/governance-activation/transitions.js +271 -37
- package/dist/governance-activation/transitions.js.map +1 -1
- package/dist/governance-assessment/engine.js +22 -15
- package/dist/governance-assessment/engine.js.map +1 -1
- package/dist/governance-assessment/project.d.ts +2 -0
- package/dist/governance-assessment/project.js +2 -1
- package/dist/governance-assessment/project.js.map +1 -1
- package/dist/interactive.d.ts +0 -1
- package/dist/interactive.js +3 -22
- package/dist/interactive.js.map +1 -1
- package/dist/openspec-profile.d.ts +2 -1
- package/dist/openspec-profile.js +11 -41
- package/dist/openspec-profile.js.map +1 -1
- package/dist/repository-governance.d.ts +10 -5
- package/dist/repository-governance.js +178 -92
- package/dist/repository-governance.js.map +1 -1
- package/dist/self-upgrade.d.ts +8 -2
- package/dist/self-upgrade.js +180 -47
- package/dist/self-upgrade.js.map +1 -1
- package/dist/telemetry/contract.d.ts +1 -1
- package/dist/telemetry/contract.js +3 -0
- package/dist/telemetry/contract.js.map +1 -1
- package/dist/workstation-catalog.d.ts +13 -1
- package/dist/workstation-catalog.js +122 -0
- package/dist/workstation-catalog.js.map +1 -1
- package/dist/workstation.d.ts +69 -14
- package/dist/workstation.js +600 -215
- package/dist/workstation.js.map +1 -1
- package/docs/cli-reference.md +69 -22
- package/docs/configuration-and-manifests.md +9 -8
- package/docs/prerequisites.md +93 -18
- package/docs/repository-governance.md +68 -40
- package/docs/spec-workflows-and-agents.md +132 -13
- package/docs/troubleshooting.md +32 -2
- package/package.json +1 -1
|
@@ -2,22 +2,59 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { lstat, realpath } from 'node:fs/promises';
|
|
3
3
|
import { canonicalJson, canonicalSha256, isRecord } from '../domain/governance/activation/canonical-json.js';
|
|
4
4
|
import { currentActivationIdentity } from '../domain/governance/activation/graph.js';
|
|
5
|
+
import { phaseIds } from '../domain/governance/activation/types.js';
|
|
5
6
|
import { validateApprovalEnvelope, validateUserActivationState } from '../domain/governance/activation/validators.js';
|
|
6
7
|
import { evidenceBodyDigest } from '../domain/governance/activation/evidence.js';
|
|
7
|
-
import { isHistoricalActivationIdentity } from '../domain/governance/policy/identity.js';
|
|
8
|
+
import { activationStateSchemaVersion, isHistoricalActivationIdentity, isHistoricalV2ActivationIdentity } from '../domain/governance/policy/identity.js';
|
|
8
9
|
import { parseManifest } from '../application/project/manifest.js';
|
|
9
10
|
import { FileSystemError } from '../domain/project/errors.js';
|
|
10
11
|
import { errorCode } from '../adapters/filesystem/errors.js';
|
|
11
12
|
import { packagedActivationSuccessorMigrations } from './compatibility.js';
|
|
12
|
-
import { ActivationHistoryError, activationHistoryCopyPathParts, activationHistoryIndexPathParts, activationHistorySnapshotId, activationHistoryTargetModes, historicalActivationStatePathParts, historicalManifestPathParts, historyDigest, historyFail, historyPathKey, historyRecordId, historyTimestamp, migrationStateFilePathParts, migrationRevalidationPhaseIds, migrationTargetIdentity, parseHistoryJson, rawHistoryDigest, validateActivationHistoryIndex, validateMigrationJournal } from './history-contracts.js';
|
|
13
|
-
import {
|
|
13
|
+
import { ActivationHistoryError, activationHistoryCopyPathParts, activationHistoryIndexPathParts, activationHistorySnapshotId, activationHistoryTargetModes, historicalActivationStatePathParts, historicalManifestPathParts, historyCaseKey, historyDigest, historyFail, historyPathKey, historyRecordId, historyTimestamp, migrationStateFilePathParts, migrationRevalidationPhaseIds, migrationTargetIdentity, parseHistoryJson, rawHistoryDigest, validateActivationHistoryIndex, validateMigrationJournal } from './history-contracts.js';
|
|
14
|
+
import { captureHistoryFile, historicalActiveRecordPaths, readHistoricalActivationInventory, readHistoricalSnapshotInventory, resolveHistoryProjectPath, validateReadableHistoricalActivationState, validateHistoricalSourceManifest } from './historical-state.js';
|
|
14
15
|
import { readActivationEvidence, readReviewedTransitionPlans } from './proof-records.js';
|
|
16
|
+
import { assertSafeHistoricalRecord } from './historical-safety.js';
|
|
17
|
+
import { assertGovernanceApprovalIssued } from './authority-records.js';
|
|
18
|
+
function historicalSources(index, inventory) {
|
|
19
|
+
if (!inventory.state.activeChange)
|
|
20
|
+
return [];
|
|
21
|
+
const metadata = index.files.find((file) => file.kind === 'source-metadata');
|
|
22
|
+
return [{
|
|
23
|
+
snapshotId: index.snapshotId,
|
|
24
|
+
sourceIdentity: inventory.sourceChangeMetadata?.activationIdentity ?? index.sourceIdentity,
|
|
25
|
+
activeChange: { ...inventory.state.activeChange },
|
|
26
|
+
metadata: inventory.sourceChangeMetadata ?? null,
|
|
27
|
+
metadataCopyPathParts: metadata ? [...metadata.copyPathParts] : null,
|
|
28
|
+
metadataDigest: metadata?.digest ?? null
|
|
29
|
+
}];
|
|
30
|
+
}
|
|
31
|
+
function validLocalAnchor(value) {
|
|
32
|
+
return /^local:[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/u.test(value);
|
|
33
|
+
}
|
|
34
|
+
function lifecycleObligations(index, inventory) {
|
|
35
|
+
return inventory.state.bootstrapState ? [{
|
|
36
|
+
snapshotId: index.snapshotId, sourceIdentity: index.sourceIdentity,
|
|
37
|
+
repositoryId: inventory.state.repository.id,
|
|
38
|
+
retention: structuredClone(inventory.state.bootstrapState),
|
|
39
|
+
verification: 'required', authority: 'historical-protection-only'
|
|
40
|
+
}] : [];
|
|
41
|
+
}
|
|
42
|
+
/** Consumers must retain these safety blockers until separately authorized current lifecycle binding. */
|
|
43
|
+
export function historicalLifecyclePhaseBlockers(obligations) {
|
|
44
|
+
if (!obligations.length)
|
|
45
|
+
return {};
|
|
46
|
+
const blockers = obligations.map((obligation) => obligation.retention.status === 'disposed'
|
|
47
|
+
? `History ${obligation.snapshotId} records disposed bootstrap material; identity migration cannot recreate it or its keys. Current lifecycle verification is separate.`
|
|
48
|
+
: `History ${obligation.snapshotId} retains bootstrap material from ${obligation.retention.retainedAt} until ${obligation.retention.disposeAfter}; it must not be reused for ordinary plan/apply or disposed under migration approval. Verify ownership through separate lifecycle planning.`);
|
|
49
|
+
return Object.fromEntries(['bootstrap-local', 'remote-import-verified', 'bootstrap-state-disposed'].map((id) => [id, [...blockers]]));
|
|
50
|
+
}
|
|
15
51
|
function requireContent(snapshot, detail) {
|
|
16
52
|
if (snapshot.content === undefined)
|
|
17
53
|
historyFail(historyPathKey(snapshot.pathParts), detail, 'missing-history-record');
|
|
18
54
|
return snapshot.content;
|
|
19
55
|
}
|
|
20
56
|
function currentState(value, location) {
|
|
57
|
+
assertSafeHistoricalRecord(value, location);
|
|
21
58
|
try {
|
|
22
59
|
return validateUserActivationState(value);
|
|
23
60
|
}
|
|
@@ -28,6 +65,7 @@ function currentState(value, location) {
|
|
|
28
65
|
}
|
|
29
66
|
}
|
|
30
67
|
function currentManifestIdentity(value, location) {
|
|
68
|
+
assertSafeHistoricalRecord(value, location);
|
|
31
69
|
let manifest;
|
|
32
70
|
try {
|
|
33
71
|
manifest = parseManifest(value);
|
|
@@ -50,6 +88,20 @@ function preconditionIdentities(preconditions) {
|
|
|
50
88
|
mode: snapshot.mode ?? null
|
|
51
89
|
})).sort((a, b) => historyPathKey(a.pathParts) < historyPathKey(b.pathParts) ? -1 : 1);
|
|
52
90
|
}
|
|
91
|
+
function uniqueHistoryPreconditions(preconditions) {
|
|
92
|
+
const unique = new Map();
|
|
93
|
+
for (const snapshot of preconditions) {
|
|
94
|
+
const key = historyCaseKey(snapshot.pathParts);
|
|
95
|
+
const previous = unique.get(key);
|
|
96
|
+
if (previous && (historyPathKey(previous.pathParts) !== historyPathKey(snapshot.pathParts) ||
|
|
97
|
+
previous.mode !== snapshot.mode || (previous.content === undefined
|
|
98
|
+
? snapshot.content !== undefined : snapshot.content === undefined || !previous.content.equals(snapshot.content)))) {
|
|
99
|
+
historyFail(historyPathKey(snapshot.pathParts), 'protected bytes, path casing or modes changed during inspection.', 'historical-source-changed');
|
|
100
|
+
}
|
|
101
|
+
unique.set(key, snapshot);
|
|
102
|
+
}
|
|
103
|
+
return [...unique.values()];
|
|
104
|
+
}
|
|
53
105
|
async function directoryExists(projectRoot, parts) {
|
|
54
106
|
const target = await resolveHistoryProjectPath(projectRoot, parts);
|
|
55
107
|
try {
|
|
@@ -71,7 +123,7 @@ export async function readActivationHistoryIndex(projectRoot, snapshotId) {
|
|
|
71
123
|
const index = validateActivationHistoryIndex(parseHistoryJson(content, historyPathKey(parts)));
|
|
72
124
|
if (index.snapshotId !== snapshotId)
|
|
73
125
|
historyFail(historyPathKey(parts), 'index declares another snapshot.', 'history-digest-mismatch');
|
|
74
|
-
return { index, content, digest: rawHistoryDigest(content) };
|
|
126
|
+
return { index, content, digest: rawHistoryDigest(content), snapshot };
|
|
75
127
|
}
|
|
76
128
|
export async function readMigrationJournal(projectRoot) {
|
|
77
129
|
const snapshot = await captureHistoryFile(projectRoot, migrationStateFilePathParts);
|
|
@@ -91,6 +143,78 @@ async function verifyHistoryCopies(projectRoot, index) {
|
|
|
91
143
|
}
|
|
92
144
|
return snapshots;
|
|
93
145
|
}
|
|
146
|
+
async function inspectAncestorHistory(projectRoot, inventory) {
|
|
147
|
+
const journal = inventory.sourceMigration;
|
|
148
|
+
if (!journal)
|
|
149
|
+
return { references: [], obligations: [], preconditions: [], historicalSources: [] };
|
|
150
|
+
const loaded = await readActivationHistoryIndex(projectRoot, journal.snapshotId);
|
|
151
|
+
if (loaded.index.files.some((file) => !['manifest', 'state', 'metadata', 'evidence', 'plan', 'approval'].includes(file.kind))) {
|
|
152
|
+
historyFail(historyPathKey(journal.historyIndexPathParts), 'the published v1-to-v2 history contract does not contain these record roles.', 'unsupported-historical-record');
|
|
153
|
+
}
|
|
154
|
+
if (loaded.digest !== journal.historyIndexDigest ||
|
|
155
|
+
canonicalSha256(loaded.index.sourceIdentity) !== canonicalSha256(journal.sourceIdentity)) {
|
|
156
|
+
historyFail(historyPathKey(journal.historyIndexPathParts), 'ancestor index digest or source contract contradicts the preserved migration.', 'history-digest-mismatch');
|
|
157
|
+
}
|
|
158
|
+
const copies = await verifyHistoryCopies(projectRoot, loaded.index);
|
|
159
|
+
const source = await readHistoricalSnapshotInventory(projectRoot, loaded.index);
|
|
160
|
+
if (source.sourceMigration)
|
|
161
|
+
historyFail('ancestor history', 'published v1 history cannot contain another migration.', 'invalid-historical-reference');
|
|
162
|
+
if (inventory.sourceChangeMetadata &&
|
|
163
|
+
canonicalSha256(inventory.sourceChangeMetadata.activationIdentity) !== canonicalSha256(inventory.state.identity) &&
|
|
164
|
+
(canonicalSha256(inventory.sourceChangeMetadata.activationIdentity) !== canonicalSha256(source.state.identity) ||
|
|
165
|
+
canonicalSha256(inventory.state.activeChange) !== canonicalSha256(source.state.activeChange))) {
|
|
166
|
+
historyFail('ancestor history', 'historical source metadata is not bound to the preserved ancestor pointer.', 'invalid-historical-reference');
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
references: [{
|
|
170
|
+
snapshotId: loaded.index.snapshotId, sourceIdentity: loaded.index.sourceIdentity,
|
|
171
|
+
historyIndexPathParts: [...journal.historyIndexPathParts], historyIndexDigest: loaded.digest
|
|
172
|
+
}],
|
|
173
|
+
obligations: lifecycleObligations(loaded.index, source),
|
|
174
|
+
historicalSources: historicalSources(loaded.index, source),
|
|
175
|
+
preconditions: [loaded.snapshot, ...copies]
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
export async function activeActivationRecordsWithoutState(projectRoot) {
|
|
179
|
+
const records = [];
|
|
180
|
+
for (const directory of ['evidence', 'plans', 'approvals', 'reconciliation']) {
|
|
181
|
+
records.push(...await historicalActiveRecordPaths(projectRoot, directory));
|
|
182
|
+
}
|
|
183
|
+
const supersessionPaths = await historicalActiveRecordPaths(projectRoot, 'supersessions');
|
|
184
|
+
for (const parts of supersessionPaths) {
|
|
185
|
+
const file = await captureHistoryFile(projectRoot, parts);
|
|
186
|
+
if (!file.content)
|
|
187
|
+
continue;
|
|
188
|
+
try {
|
|
189
|
+
const parsed = JSON.parse(file.content.toString('utf8'));
|
|
190
|
+
if (parsed.schemaVersion !== currentActivationIdentity.supersessionSchemaVersion ||
|
|
191
|
+
canonicalSha256(parsed.identity) !== canonicalSha256(currentActivationIdentity)) {
|
|
192
|
+
records.push(parts);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
records.push(parts);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
for (const parts of [
|
|
200
|
+
[...migrationStateFilePathParts], ['governance', 'credentials', 'preflight-policy.json'], ['governance', 'activation-baseline.json']
|
|
201
|
+
]) {
|
|
202
|
+
if ((await captureHistoryFile(projectRoot, parts)).content !== undefined)
|
|
203
|
+
records.push(parts);
|
|
204
|
+
}
|
|
205
|
+
return records;
|
|
206
|
+
}
|
|
207
|
+
export async function verifyActivationHistoryBeforeReplacement(projectRoot, plan, mutation) {
|
|
208
|
+
const original = plan.index.files.find((file) => historyPathKey(file.originalPathParts) === historyPathKey(mutation.pathParts));
|
|
209
|
+
if (!original)
|
|
210
|
+
return;
|
|
211
|
+
const index = await captureHistoryFile(projectRoot, activationHistoryIndexPathParts(plan.index.snapshotId));
|
|
212
|
+
const copy = await captureHistoryFile(projectRoot, original.copyPathParts);
|
|
213
|
+
if (!index.content || rawHistoryDigest(index.content) !== plan.indexDigest ||
|
|
214
|
+
!copy.content || rawHistoryDigest(copy.content) !== original.digest) {
|
|
215
|
+
historyFail(historyPathKey(mutation.pathParts), 'original bytes and their completed history index must be verified before replacement or retirement.', 'history-preservation-failed');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
94
218
|
async function inspectActiveProofRecords(projectRoot, state) {
|
|
95
219
|
// Current proof is validated separately; no preserved record is considered here.
|
|
96
220
|
for (const directory of ['evidence', 'plans', 'approvals']) {
|
|
@@ -141,6 +265,7 @@ async function inspectActiveProofRecords(projectRoot, state) {
|
|
|
141
265
|
historyRecordId(approval.id, `${historyPathKey(parts)}.id`);
|
|
142
266
|
if (approvals.has(approval.id))
|
|
143
267
|
historyFail(historyPathKey(parts), 'duplicates a current approval ID.', 'invalid-current-proof');
|
|
268
|
+
await assertGovernanceApprovalIssued(projectRoot, approval);
|
|
144
269
|
approvals.set(approval.id, approval.phaseId);
|
|
145
270
|
}
|
|
146
271
|
catch (error) {
|
|
@@ -163,32 +288,45 @@ async function inspectActiveProofRecords(projectRoot, state) {
|
|
|
163
288
|
}
|
|
164
289
|
export async function inspectActivationMigrationHistory(projectRoot) {
|
|
165
290
|
const journal = await readMigrationJournal(projectRoot);
|
|
166
|
-
|
|
291
|
+
const stateSnapshot = await captureHistoryFile(projectRoot, historicalActivationStatePathParts);
|
|
292
|
+
if (journal === undefined) {
|
|
293
|
+
if (stateSnapshot.content) {
|
|
294
|
+
const raw = parseHistoryJson(stateSnapshot.content, historyPathKey(stateSnapshot.pathParts));
|
|
295
|
+
if (isRecord(raw) && Object.hasOwn(raw, 'successorHistory')) {
|
|
296
|
+
currentState(raw, historyPathKey(stateSnapshot.pathParts));
|
|
297
|
+
historyFail(historyPathKey(migrationStateFilePathParts), 'the current successor declares a missing migration journal.', 'missing-migration-journal');
|
|
298
|
+
}
|
|
299
|
+
}
|
|
167
300
|
return { status: 'none' };
|
|
301
|
+
}
|
|
302
|
+
const state = currentState(parseHistoryJson(requireContent(stateSnapshot, 'committed successor state is missing.'), historyPathKey(stateSnapshot.pathParts)), historyPathKey(stateSnapshot.pathParts));
|
|
303
|
+
const link = state.successorHistory;
|
|
304
|
+
if (!link || link.snapshotId !== journal.snapshotId || link.historyIndexDigest !== journal.historyIndexDigest ||
|
|
305
|
+
historyPathKey(link.journalPathParts) !== historyPathKey(migrationStateFilePathParts) ||
|
|
306
|
+
historyPathKey(link.historyIndexPathParts) !== historyPathKey(journal.historyIndexPathParts)) {
|
|
307
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), 'successor history backlink is missing or contradicts the committed journal.', 'invalid-migration-successor');
|
|
308
|
+
}
|
|
168
309
|
const loaded = await readActivationHistoryIndex(projectRoot, journal.snapshotId);
|
|
169
310
|
if (loaded.digest !== journal.historyIndexDigest ||
|
|
170
311
|
canonicalSha256(loaded.index.sourceIdentity) !== canonicalSha256(journal.sourceIdentity)) {
|
|
171
312
|
historyFail(historyPathKey(journal.historyIndexPathParts), 'index digest or source identity contradicts the migration journal.', 'history-digest-mismatch');
|
|
172
313
|
}
|
|
173
314
|
const copies = await verifyHistoryCopies(projectRoot, loaded.index);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const copy = copies.find((entry) => historyPathKey(entry.pathParts) === historyPathKey(file.copyPathParts));
|
|
178
|
-
if (copy === undefined)
|
|
179
|
-
historyFail(historyPathKey(file.copyPathParts), 'required copy was not verified.');
|
|
180
|
-
const parsed = parseHistoryJson(requireContent(copy, 'required copy is missing.'), historyPathKey(file.copyPathParts));
|
|
181
|
-
if (file.kind === 'state')
|
|
182
|
-
validateHistoricalActivationState(parsed);
|
|
183
|
-
else
|
|
184
|
-
validateHistoricalSourceManifest(parsed);
|
|
315
|
+
const source = await readHistoricalSnapshotInventory(projectRoot, loaded.index);
|
|
316
|
+
if (canonicalSha256(link.sourceActiveChange) !== canonicalSha256(source.state.activeChange)) {
|
|
317
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), 'sourceActiveChange contradicts the exact archived source pointer.', 'invalid-migration-successor');
|
|
185
318
|
}
|
|
186
|
-
|
|
187
|
-
|
|
319
|
+
if (source.state.activeChange && !source.sourceChangeMetadata) {
|
|
320
|
+
historyFail(historyPathKey(journal.historyIndexPathParts), 'the successor lacks its required preserved source-change metadata and tasks.', 'missing-historical-record');
|
|
321
|
+
}
|
|
322
|
+
const ancestors = await inspectAncestorHistory(projectRoot, source);
|
|
188
323
|
if (canonicalSha256(state.identity) !== canonicalSha256(journal.targetIdentity) ||
|
|
189
324
|
state.repository.id !== journal.successor.repositoryId || state.createdAt !== journal.successor.createdAt) {
|
|
190
325
|
historyFail(historyPathKey(stateSnapshot.pathParts), 'active successor identity or stable local anchor contradicts the journal.', 'invalid-migration-successor');
|
|
191
326
|
}
|
|
327
|
+
if (validLocalAnchor(source.state.repository.id) && source.state.repository.id !== state.repository.id) {
|
|
328
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), 'successor replaced a valid protected source-local anchor.', 'invalid-migration-successor');
|
|
329
|
+
}
|
|
192
330
|
const manifestSnapshot = await captureHistoryFile(projectRoot, historicalManifestPathParts);
|
|
193
331
|
currentManifestIdentity(parseHistoryJson(requireContent(manifestSnapshot, 'committed active manifest is missing.'), historyPathKey(manifestSnapshot.pathParts)), historyPathKey(manifestSnapshot.pathParts));
|
|
194
332
|
const records = await inspectActiveProofRecords(projectRoot, state);
|
|
@@ -202,46 +340,58 @@ export async function inspectActivationMigrationHistory(projectRoot) {
|
|
|
202
340
|
historyFail(historyPathKey(migrationStateFilePathParts), `revalidation result for ${result.phaseId} has no corresponding current state references.`, 'invalid-migration-progress');
|
|
203
341
|
}
|
|
204
342
|
}
|
|
205
|
-
return {
|
|
343
|
+
return {
|
|
344
|
+
status: 'committed', journal, index: loaded.index, state,
|
|
345
|
+
ancestorHistory: ancestors.references,
|
|
346
|
+
lifecycleObligations: [...lifecycleObligations(loaded.index, source), ...ancestors.obligations],
|
|
347
|
+
historicalSources: [...historicalSources(loaded.index, source), ...ancestors.historicalSources],
|
|
348
|
+
preconditions: [
|
|
349
|
+
await captureHistoryFile(projectRoot, migrationStateFilePathParts),
|
|
350
|
+
loaded.snapshot,
|
|
351
|
+
...copies, ...ancestors.preconditions
|
|
352
|
+
]
|
|
353
|
+
};
|
|
206
354
|
}
|
|
207
355
|
/** Project-read-only. This creates neither mutations nor approval, runtime IDs or timestamps. */
|
|
208
356
|
export async function planActivationHistoryMigration(projectRoot, options = {}) {
|
|
209
357
|
try {
|
|
210
358
|
const stateSnapshot = await captureHistoryFile(projectRoot, historicalActivationStatePathParts);
|
|
211
359
|
const journalSnapshot = await captureHistoryFile(projectRoot, migrationStateFilePathParts);
|
|
212
|
-
if (journalSnapshot.content !== undefined) {
|
|
213
|
-
const history = await inspectActivationMigrationHistory(projectRoot);
|
|
214
|
-
if (history.status !== 'committed')
|
|
215
|
-
historyFail('migration-state.json', 'declared journal disappeared during inspection.');
|
|
216
|
-
return { status: 'current', state: history.state, history };
|
|
217
|
-
}
|
|
218
360
|
if (stateSnapshot.content === undefined) {
|
|
219
|
-
const
|
|
220
|
-
if (
|
|
221
|
-
|
|
222
|
-
if (isRecord(manifest) && isRecord(manifest.governance) && isHistoricalActivationIdentity(manifest.governance.activationIdentity)) {
|
|
223
|
-
historyFail(historyPathKey(stateSnapshot.pathParts), 'the historical manifest has no required v1 activation state.', 'missing-historical-record');
|
|
224
|
-
}
|
|
361
|
+
const orphaned = await activeActivationRecordsWithoutState(projectRoot);
|
|
362
|
+
if (orphaned.length > 0) {
|
|
363
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), `required activation state is missing while active records remain: ${orphaned.map(historyPathKey).join(', ')}.`, 'missing-historical-record');
|
|
225
364
|
}
|
|
226
365
|
return { status: 'not-present' };
|
|
227
366
|
}
|
|
228
367
|
const raw = parseHistoryJson(stateSnapshot.content, historyPathKey(stateSnapshot.pathParts));
|
|
229
|
-
if (isRecord(raw) && raw.
|
|
368
|
+
if (journalSnapshot.content !== undefined && !(isRecord(raw) && isHistoricalV2ActivationIdentity(raw.identity))) {
|
|
369
|
+
const history = await inspectActivationMigrationHistory(projectRoot);
|
|
370
|
+
if (history.status !== 'committed')
|
|
371
|
+
historyFail('migration-state.json', 'declared journal disappeared during inspection.');
|
|
372
|
+
return { status: 'current', state: history.state, history };
|
|
373
|
+
}
|
|
374
|
+
if (isRecord(raw) && raw.schemaVersion === activationStateSchemaVersion) {
|
|
230
375
|
const state = currentState(raw, historyPathKey(stateSnapshot.pathParts));
|
|
231
376
|
migrationTargetIdentity(state.identity, 'activation-state.json.identity');
|
|
232
377
|
const manifest = await captureHistoryFile(projectRoot, historicalManifestPathParts);
|
|
233
378
|
currentManifestIdentity(parseHistoryJson(requireContent(manifest, 'active manifest is missing.'), historyPathKey(manifest.pathParts)), historyPathKey(manifest.pathParts));
|
|
234
379
|
await inspectActiveProofRecords(projectRoot, state);
|
|
235
|
-
return { status: 'current', state, history:
|
|
380
|
+
return { status: 'current', state, history: await inspectActivationMigrationHistory(projectRoot) };
|
|
236
381
|
}
|
|
237
|
-
if (!isRecord(raw) ||
|
|
238
|
-
|
|
382
|
+
if (!isRecord(raw) || !isHistoricalActivationIdentity(raw.identity) ||
|
|
383
|
+
raw.schemaVersion !== raw.identity.activationStateSchemaVersion) {
|
|
384
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), 'only exact versioned historical v1/v2 representations have a successor lane.', 'unsupported-historical-identity');
|
|
239
385
|
}
|
|
240
386
|
const lane = packagedActivationSuccessorMigrations().find((entry) => canonicalSha256(entry.fromIdentity) === canonicalSha256(raw.identity) &&
|
|
241
387
|
canonicalSha256(entry.toIdentity) === canonicalSha256(currentActivationIdentity));
|
|
242
388
|
if (lane === undefined)
|
|
243
389
|
historyFail(historyPathKey(stateSnapshot.pathParts), 'no exact packaged successor lane exists.', 'unsupported-historical-identity');
|
|
244
390
|
const inventory = await readHistoricalActivationInventory(projectRoot, options);
|
|
391
|
+
if (canonicalSha256(inventory.state.identity) !== canonicalSha256(lane.fromIdentity) ||
|
|
392
|
+
!inventory.files.find((file) => file.kind === 'state')?.content.equals(stateSnapshot.content)) {
|
|
393
|
+
historyFail(historyPathKey(stateSnapshot.pathParts), 'source changed during preview; obtain a fresh check.', 'historical-source-changed');
|
|
394
|
+
}
|
|
245
395
|
if (inventory.unreviewedRecords.length > 0) {
|
|
246
396
|
return {
|
|
247
397
|
status: 'blocked', reasonCode: 'unreviewed-historical-records',
|
|
@@ -249,6 +399,7 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
|
|
|
249
399
|
unreviewedPathParts: inventory.unreviewedRecords.map((file) => [...file.pathParts])
|
|
250
400
|
};
|
|
251
401
|
}
|
|
402
|
+
const ancestors = await inspectAncestorHistory(projectRoot, inventory);
|
|
252
403
|
const sourceFiles = inventory.files.map((file) => ({
|
|
253
404
|
kind: file.kind, originalPathParts: [...file.pathParts], digest: file.digest, mode: file.mode
|
|
254
405
|
}));
|
|
@@ -257,18 +408,20 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
|
|
|
257
408
|
schemaVersion: 1, snapshotId, sourceIdentity: inventory.state.identity,
|
|
258
409
|
files: sourceFiles.map((file) => ({ ...file, copyPathParts: activationHistoryCopyPathParts(snapshotId, file.originalPathParts) }))
|
|
259
410
|
});
|
|
260
|
-
|
|
261
|
-
|
|
411
|
+
let indexContent = Buffer.from(canonicalJson(index), 'utf8');
|
|
412
|
+
let indexDigest = rawHistoryDigest(indexContent);
|
|
262
413
|
const indexPath = activationHistoryIndexPathParts(snapshotId);
|
|
263
414
|
const indexSnapshot = await captureHistoryFile(projectRoot, indexPath);
|
|
264
|
-
const preconditions = [...inventory.preconditions, journalSnapshot, indexSnapshot];
|
|
415
|
+
const preconditions = uniqueHistoryPreconditions([...inventory.preconditions, ...ancestors.preconditions, journalSnapshot, indexSnapshot]);
|
|
265
416
|
let historyDisposition = 'create';
|
|
266
417
|
if (indexSnapshot.content !== undefined) {
|
|
267
418
|
const existing = validateActivationHistoryIndex(parseHistoryJson(indexSnapshot.content, historyPathKey(indexPath)));
|
|
268
|
-
if (
|
|
419
|
+
if (canonicalSha256(existing) !== canonicalSha256(index)) {
|
|
269
420
|
historyFail(historyPathKey(indexPath), 'existing immutable snapshot differs; force cannot replace history.', 'historical-destination-conflict');
|
|
270
421
|
}
|
|
271
422
|
preconditions.push(...await verifyHistoryCopies(projectRoot, index));
|
|
423
|
+
indexContent = indexSnapshot.content;
|
|
424
|
+
indexDigest = rawHistoryDigest(indexContent);
|
|
272
425
|
historyDisposition = 'reuse';
|
|
273
426
|
}
|
|
274
427
|
else {
|
|
@@ -282,7 +435,7 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
|
|
|
282
435
|
preconditions.push(snapshot);
|
|
283
436
|
}
|
|
284
437
|
}
|
|
285
|
-
const requiredRetirements = index.files.filter((file) => ['evidence', 'plan', 'approval'].includes(file.kind)).map((file) => ({
|
|
438
|
+
const requiredRetirements = index.files.filter((file) => ['evidence', 'plan', 'approval', 'supersession', 'reconciliation', 'credential-policy'].includes(file.kind)).map((file) => ({
|
|
286
439
|
pathParts: [...file.originalPathParts], digest: file.digest, copyPathParts: [...file.copyPathParts]
|
|
287
440
|
}));
|
|
288
441
|
const semanticPlan = {
|
|
@@ -292,10 +445,14 @@ export async function planActivationHistoryMigration(projectRoot, options = {})
|
|
|
292
445
|
preconditions: preconditionIdentities(preconditions), requiredRetirements,
|
|
293
446
|
revalidationPhaseIds: [...migrationRevalidationPhaseIds],
|
|
294
447
|
targetModes: { ...activationHistoryTargetModes },
|
|
448
|
+
ancestorHistory: ancestors.references,
|
|
449
|
+
lifecycleObligations: [...lifecycleObligations(index, inventory), ...ancestors.obligations],
|
|
295
450
|
successor: {
|
|
296
451
|
statePathParts: [...historicalActivationStatePathParts], journalPathParts: [...migrationStateFilePathParts],
|
|
297
|
-
policy: '
|
|
298
|
-
|
|
452
|
+
policy: 'preserve-valid-local-anchor-no-inherited-proof',
|
|
453
|
+
localRepositoryId: validLocalAnchor(inventory.state.repository.id) ? inventory.state.repository.id : null,
|
|
454
|
+
projectName: inventory.manifest.project.name,
|
|
455
|
+
activeChange: null, sourceActiveChange: inventory.state.activeChange
|
|
299
456
|
}
|
|
300
457
|
};
|
|
301
458
|
return {
|
|
@@ -314,13 +471,13 @@ export function finalizeActivationHistoryMigration(plan, approvedPlanFingerprint
|
|
|
314
471
|
historyDigest(approvedPlanFingerprint, 'approvedPlanFingerprint');
|
|
315
472
|
const timestamp = historyTimestamp(now.toISOString(), 'migration finalization timestamp');
|
|
316
473
|
validateActivationHistoryIndex(plan.index);
|
|
317
|
-
const retirements = plan.index.files.filter((file) => ['evidence', 'plan', 'approval'].includes(file.kind)).map((file) => ({
|
|
474
|
+
const retirements = plan.index.files.filter((file) => ['evidence', 'plan', 'approval', 'supersession', 'reconciliation', 'credential-policy'].includes(file.kind)).map((file) => ({
|
|
318
475
|
pathParts: file.originalPathParts, digest: file.digest, copyPathParts: file.copyPathParts
|
|
319
476
|
}));
|
|
320
477
|
if (canonicalSha256(plan.semanticPlan) !== plan.planDigest ||
|
|
321
478
|
canonicalSha256(preconditionIdentities(plan.preconditions)) !== canonicalSha256(plan.semanticPlan.preconditions) ||
|
|
322
479
|
canonicalSha256(plan.index) !== canonicalSha256(plan.semanticPlan.historyIndex) ||
|
|
323
|
-
|
|
480
|
+
canonicalSha256(parseHistoryJson(plan.indexContent, 'planned history index')) !== canonicalSha256(plan.index) ||
|
|
324
481
|
rawHistoryDigest(plan.indexContent) !== plan.indexDigest || plan.indexDigest !== plan.semanticPlan.historyIndexDigest ||
|
|
325
482
|
plan.historyDisposition !== plan.semanticPlan.historyDisposition ||
|
|
326
483
|
canonicalSha256(plan.semanticPlan.targetModes) !== canonicalSha256(activationHistoryTargetModes) ||
|
|
@@ -335,14 +492,38 @@ export function finalizeActivationHistoryMigration(plan, approvedPlanFingerprint
|
|
|
335
492
|
historyFail(historyPathKey(file.originalPathParts), 'planned historical bytes changed.', 'historical-plan-changed');
|
|
336
493
|
}
|
|
337
494
|
}
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
495
|
+
const sourceState = plan.inventory.files.find((file) => file.kind === 'state');
|
|
496
|
+
const sourceManifest = plan.inventory.files.find((file) => file.kind === 'manifest');
|
|
497
|
+
if (!sourceState || !sourceManifest)
|
|
498
|
+
historyFail('migration plan', 'required source records are missing.', 'historical-plan-changed');
|
|
499
|
+
const originalState = validateReadableHistoricalActivationState(parseHistoryJson(sourceState.content, 'source state'));
|
|
500
|
+
const originalManifest = validateHistoricalSourceManifest(parseHistoryJson(sourceManifest.content, 'source manifest'));
|
|
501
|
+
const expectedAnchor = validLocalAnchor(originalState.repository.id) ? originalState.repository.id : null;
|
|
502
|
+
const lane = packagedActivationSuccessorMigrations().find((entry) => entry.id === plan.semanticPlan.laneId);
|
|
503
|
+
if (!lane || canonicalSha256(lane.fromIdentity) !== canonicalSha256(plan.index.sourceIdentity) ||
|
|
504
|
+
canonicalSha256(lane.toIdentity) !== canonicalSha256(plan.semanticPlan.targetIdentity) ||
|
|
505
|
+
canonicalSha256(originalState) !== canonicalSha256(plan.inventory.state) ||
|
|
506
|
+
canonicalSha256(originalManifest) !== canonicalSha256(plan.inventory.manifest) ||
|
|
507
|
+
plan.semanticPlan.successor.localRepositoryId !== expectedAnchor ||
|
|
508
|
+
plan.semanticPlan.successor.projectName !== originalManifest.project.name ||
|
|
509
|
+
plan.semanticPlan.successor.activeChange !== null ||
|
|
510
|
+
canonicalSha256(plan.semanticPlan.successor.sourceActiveChange) !== canonicalSha256(originalState.activeChange)) {
|
|
511
|
+
historyFail('migration plan', 'source mapping differs from the exact reviewed source bytes.', 'historical-plan-changed');
|
|
512
|
+
}
|
|
513
|
+
const phases = Object.fromEntries(phaseIds.map((id) => [id, {
|
|
514
|
+
state: 'pending', updatedAt: timestamp, evidence: [], approvals: [], blockers: []
|
|
515
|
+
}]));
|
|
342
516
|
const successor = validateUserActivationState({
|
|
343
|
-
schemaVersion:
|
|
344
|
-
repository: { id: `local:${randomUUID()}`, name: plan.semanticPlan.successor.projectName, defaultBranch: 'develop' },
|
|
517
|
+
schemaVersion: activationStateSchemaVersion, identity: plan.semanticPlan.targetIdentity,
|
|
518
|
+
repository: { id: expectedAnchor ?? `local:${randomUUID()}`, name: plan.semanticPlan.successor.projectName, defaultBranch: 'develop' },
|
|
345
519
|
activeChange: plan.semanticPlan.successor.activeChange,
|
|
520
|
+
successorHistory: {
|
|
521
|
+
schemaVersion: 1, snapshotId: plan.index.snapshotId,
|
|
522
|
+
journalPathParts: [...migrationStateFilePathParts],
|
|
523
|
+
historyIndexPathParts: activationHistoryIndexPathParts(plan.index.snapshotId),
|
|
524
|
+
historyIndexDigest: plan.indexDigest,
|
|
525
|
+
sourceActiveChange: originalState.activeChange
|
|
526
|
+
},
|
|
346
527
|
applicability: { statePath: 'none', privateStagingDast: 'unknown', credentialRequired: 'unknown' },
|
|
347
528
|
phases, createdAt: timestamp, updatedAt: timestamp
|
|
348
529
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-history.js","sourceRoot":"","sources":["../../src/governance-activation/migration-history.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migration-history.js","sourceRoot":"","sources":["../../src/governance-activation/migration-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type HistoricalActivationStateMigration } from './compatibility.js';
|
|
2
1
|
import { type ActivationCompatibilityMap } from '../domain/governance/policy/identity.js';
|
|
3
2
|
import type { ActivationIdentity, PhaseId } from '../domain/governance/activation/types.js';
|
|
4
|
-
import {
|
|
3
|
+
import type { ProjectFileMutation, ProjectFileSnapshot } from '../adapters/filesystem/project-transaction.js';
|
|
4
|
+
import type { HistoricalActivationStateMigration } from './compatibility.js';
|
|
5
5
|
export declare const updateFailureInjectionEnv: 'LIFTOFF_UPDATE_INJECT_FAILURE';
|
|
6
6
|
export type ActivationStateMigrationPlan = {
|
|
7
7
|
status: 'not-present' | 'current';
|
|
@@ -9,6 +9,7 @@ export type ActivationStateMigrationPlan = {
|
|
|
9
9
|
preconditions: readonly ProjectFileSnapshot[];
|
|
10
10
|
report: ActivationStateMigrationReport;
|
|
11
11
|
} | {
|
|
12
|
+
/** Retained for API compatibility; installed releases never mint an in-place identity relabel. */
|
|
12
13
|
status: 'migrate';
|
|
13
14
|
mutations: readonly ProjectFileMutation[];
|
|
14
15
|
preconditions: readonly ProjectFileSnapshot[];
|
|
@@ -24,7 +25,7 @@ export type ActivationStateMigrationPlan = {
|
|
|
24
25
|
mutations: readonly ProjectFileMutation[];
|
|
25
26
|
preconditions: readonly ProjectFileSnapshot[];
|
|
26
27
|
report: ActivationStateMigrationReport & {
|
|
27
|
-
reasonCode: 'ad-hoc-state' | 'future-state-schema' | 'unsupported-activation-identity' | 'malformed-state' | 'reconciliation-conflict';
|
|
28
|
+
reasonCode: 'ad-hoc-state' | 'future-state-schema' | 'unsupported-activation-identity' | 'malformed-state' | 'reconciliation-conflict' | 'missing-historical-record';
|
|
28
29
|
issues: readonly string[];
|
|
29
30
|
};
|
|
30
31
|
};
|
|
@@ -38,8 +39,10 @@ export interface ActivationStateMigrationReport {
|
|
|
38
39
|
diagnosticOnly?: boolean;
|
|
39
40
|
}
|
|
40
41
|
export interface ActivationStateMigrationMappingInput {
|
|
42
|
+
/** Diagnostic legacy inputs cannot extend installed successor-lane authority. */
|
|
41
43
|
compatibility?: ActivationCompatibilityMap;
|
|
42
44
|
historicalStateMigrations?: readonly HistoricalActivationStateMigration[];
|
|
43
45
|
}
|
|
44
|
-
|
|
46
|
+
/** Read-only diagnostic compatibility. Actual successors use the reviewed history transaction. */
|
|
47
|
+
export declare function planHistoricalActivationStateMigration(projectRoot: string, _nowIso?: string, _mappingInput?: ActivationStateMigrationMappingInput): Promise<ActivationStateMigrationPlan>;
|
|
45
48
|
export declare function activationStateMigrationFingerprint(content: string | Buffer): string;
|