@msn-control/liftoff 0.11.1 → 0.11.3

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 (135) hide show
  1. package/DEVELOPER.md +29 -10
  2. package/README.md +11 -6
  3. package/dist/adapters/filesystem/project-transaction.d.ts +2 -1
  4. package/dist/adapters/filesystem/project-transaction.js +25 -6
  5. package/dist/adapters/filesystem/project-transaction.js.map +1 -1
  6. package/dist/adapters/filesystem/reviewed-update-transaction.d.ts +53 -0
  7. package/dist/adapters/filesystem/reviewed-update-transaction.js +864 -0
  8. package/dist/adapters/filesystem/reviewed-update-transaction.js.map +1 -0
  9. package/dist/adapters/filesystem/update-previews.d.ts +50 -0
  10. package/dist/adapters/filesystem/update-previews.js +612 -0
  11. package/dist/adapters/filesystem/update-previews.js.map +1 -0
  12. package/dist/adapters/process/shell-command.d.ts +2 -0
  13. package/dist/adapters/process/shell-command.js +10 -1
  14. package/dist/adapters/process/shell-command.js.map +1 -1
  15. package/dist/application/context.d.ts +5 -0
  16. package/dist/application/diagnose/doctor.js +9 -15
  17. package/dist/application/diagnose/doctor.js.map +1 -1
  18. package/dist/application/update/approval.d.ts +39 -0
  19. package/dist/application/update/approval.js +54 -0
  20. package/dist/application/update/approval.js.map +1 -0
  21. package/dist/application/update/command-guidance.d.ts +19 -0
  22. package/dist/application/update/command-guidance.js +28 -0
  23. package/dist/application/update/command-guidance.js.map +1 -0
  24. package/dist/application/update/guidance-context.d.ts +2 -0
  25. package/dist/application/update/guidance-context.js +35 -0
  26. package/dist/application/update/guidance-context.js.map +1 -0
  27. package/dist/application/update/inspection.d.ts +40 -0
  28. package/dist/application/update/inspection.js +241 -0
  29. package/dist/application/update/inspection.js.map +1 -0
  30. package/dist/application/update/migration-runtime.d.ts +14 -0
  31. package/dist/application/update/migration-runtime.js +177 -0
  32. package/dist/application/update/migration-runtime.js.map +1 -0
  33. package/dist/application/update/output.d.ts +135 -0
  34. package/dist/application/update/output.js +182 -0
  35. package/dist/application/update/output.js.map +1 -0
  36. package/dist/application/update/preview.d.ts +58 -0
  37. package/dist/application/update/preview.js +242 -0
  38. package/dist/application/update/preview.js.map +1 -0
  39. package/dist/application/update/protected-source.d.ts +25 -0
  40. package/dist/application/update/protected-source.js +81 -0
  41. package/dist/application/update/protected-source.js.map +1 -0
  42. package/dist/application/update/reporting.d.ts +4 -4
  43. package/dist/application/update/reporting.js +14 -13
  44. package/dist/application/update/reporting.js.map +1 -1
  45. package/dist/application/update/revalidation-plan.d.ts +22 -0
  46. package/dist/application/update/revalidation-plan.js +107 -0
  47. package/dist/application/update/revalidation-plan.js.map +1 -0
  48. package/dist/application/update/revalidation.d.ts +70 -0
  49. package/dist/application/update/revalidation.js +337 -0
  50. package/dist/application/update/revalidation.js.map +1 -0
  51. package/dist/application/update/review-plan.d.ts +25 -0
  52. package/dist/application/update/review-plan.js +89 -0
  53. package/dist/application/update/review-plan.js.map +1 -0
  54. package/dist/application/update/transaction-approval.d.ts +29 -0
  55. package/dist/application/update/transaction-approval.js +82 -0
  56. package/dist/application/update/transaction-approval.js.map +1 -0
  57. package/dist/application/update/use-case.d.ts +1 -0
  58. package/dist/application/update/use-case.js +252 -568
  59. package/dist/application/update/use-case.js.map +1 -1
  60. package/dist/application/update/write-plan.d.ts +15 -0
  61. package/dist/application/update/write-plan.js +115 -0
  62. package/dist/application/update/write-plan.js.map +1 -0
  63. package/dist/cli/args/definitions.js +5 -4
  64. package/dist/cli/args/definitions.js.map +1 -1
  65. package/dist/cli/args/help.js +13 -1
  66. package/dist/cli/args/help.js.map +1 -1
  67. package/dist/cli/args/parser.js +22 -7
  68. package/dist/cli/args/parser.js.map +1 -1
  69. package/dist/cli/commands/update.js +1 -0
  70. package/dist/cli/commands/update.js.map +1 -1
  71. package/dist/domain/governance/policy/identity.d.ts +1 -1
  72. package/dist/domain/governance/policy/identity.js +2 -2
  73. package/dist/domain/governance/policy/identity.js.map +1 -1
  74. package/dist/domain/project/infrastructure-layout.d.ts +1 -1
  75. package/dist/domain/project/infrastructure-layout.js +3 -1
  76. package/dist/domain/project/infrastructure-layout.js.map +1 -1
  77. package/dist/domain/project/reviewed-update-artifacts.d.ts +2 -0
  78. package/dist/domain/project/reviewed-update-artifacts.js +3 -0
  79. package/dist/domain/project/reviewed-update-artifacts.js.map +1 -0
  80. package/dist/generators/common/base.js +5 -1
  81. package/dist/generators/common/base.js.map +1 -1
  82. package/dist/governance-activation/activation-state.js +4 -1
  83. package/dist/governance-activation/activation-state.js.map +1 -1
  84. package/dist/governance-activation/commands.d.ts +5 -0
  85. package/dist/governance-activation/commands.js +65 -3
  86. package/dist/governance-activation/commands.js.map +1 -1
  87. package/dist/governance-activation/compatibility.d.ts +21 -4
  88. package/dist/governance-activation/compatibility.js +47 -8
  89. package/dist/governance-activation/compatibility.js.map +1 -1
  90. package/dist/governance-activation/doctor.js +32 -5
  91. package/dist/governance-activation/doctor.js.map +1 -1
  92. package/dist/governance-activation/historical-state.d.ts +81 -0
  93. package/dist/governance-activation/historical-state.js +817 -0
  94. package/dist/governance-activation/historical-state.js.map +1 -0
  95. package/dist/governance-activation/history-contracts.d.ts +109 -0
  96. package/dist/governance-activation/history-contracts.js +303 -0
  97. package/dist/governance-activation/history-contracts.js.map +1 -0
  98. package/dist/governance-activation/inputs.d.ts +2 -0
  99. package/dist/governance-activation/inputs.js +13 -1
  100. package/dist/governance-activation/inputs.js.map +1 -1
  101. package/dist/governance-activation/migration-history.d.ts +97 -0
  102. package/dist/governance-activation/migration-history.js +388 -0
  103. package/dist/governance-activation/migration-history.js.map +1 -0
  104. package/dist/governance-activation/migration.js +1 -1
  105. package/dist/governance-activation/migration.js.map +1 -1
  106. package/dist/governance-activation/proof-records.d.ts +3 -0
  107. package/dist/governance-activation/proof-records.js +78 -0
  108. package/dist/governance-activation/proof-records.js.map +1 -0
  109. package/dist/governance-activation/read-only.d.ts +4 -4
  110. package/dist/governance-activation/read-only.js +9 -69
  111. package/dist/governance-activation/read-only.js.map +1 -1
  112. package/dist/governance-activation/seed-lifecycle.d.ts +28 -6
  113. package/dist/governance-activation/seed-lifecycle.js +258 -25
  114. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  115. package/dist/governance-activation/transition-planning.d.ts +2 -0
  116. package/dist/governance-activation/transition-planning.js +12 -3
  117. package/dist/governance-activation/transition-planning.js.map +1 -1
  118. package/dist/governance-activation/transitions.d.ts +8 -2
  119. package/dist/governance-activation/transitions.js +36 -11
  120. package/dist/governance-activation/transitions.js.map +1 -1
  121. package/dist/governance-assessment/engine.js +30 -3
  122. package/dist/governance-assessment/engine.js.map +1 -1
  123. package/dist/governance-assessment/project.d.ts +7 -0
  124. package/dist/governance-assessment/project.js +44 -4
  125. package/dist/governance-assessment/project.js.map +1 -1
  126. package/dist/repository-governance.js +25 -12
  127. package/dist/repository-governance.js.map +1 -1
  128. package/docs/cli-reference.md +134 -28
  129. package/docs/configuration-and-manifests.md +27 -15
  130. package/docs/existing-repositories.md +19 -10
  131. package/docs/repository-governance.md +9 -5
  132. package/docs/safety-and-consent.md +27 -18
  133. package/docs/troubleshooting.md +37 -7
  134. package/docs/workloads.md +5 -4
  135. package/package.json +1 -1
package/DEVELOPER.md CHANGED
@@ -51,7 +51,7 @@ and successful generated-file checks must not be described as those capabilities
51
51
 
52
52
  ## Activation version vector
53
53
 
54
- Current deterministic setup contract, retained by the 0.11.1 CLI patch:
54
+ Current deterministic setup contract, retained by the 0.11.3 CLI patch:
55
55
 
56
56
  ```json
57
57
  {
@@ -76,7 +76,7 @@ do not fabricate a historical value.
76
76
 
77
77
  The generated `liftoff.manifest.json` records this as manifest `artifactVersion`
78
78
  7 plus the activation identity fields shown above. Compatibility metadata uses
79
- schema version 2 in its own document, not a new required manifest field.
79
+ schema version 3 in its own document, not a new required manifest field.
80
80
  Assessment report/catalog, graph, supersession, and credential-policy schemas
81
81
  remain at version 1; normative policy remains 6.
82
82
 
@@ -126,9 +126,18 @@ changes in another.
126
126
  - Manifest composition injects `validateReadableActivationIdentity` only at the
127
127
  manifest boundary. Exact known v1 identities remain readable without retagging;
128
128
  state, evidence, approval, readiness, and scope use strict current validation.
129
- - Known v1 activation is diagnostic-only. `diagnosticOnly` maintenance may update
130
- safe managed core while retaining historical identity/state/evidence. No public
131
- history reconciliation or automatic old-to-new state migration is implemented.
129
+ - Known v1 activation remains non-executable. The exact packaged successor lane
130
+ requires update preview and approval, preserves original history, and creates
131
+ new v2 proof only through current validation. Never add v1 to the executable map.
132
+ - Compatibility metadata v3 distinguishes successor eligibility from execution;
133
+ retain strict schema-2 input reading without treating it as migration authority.
134
+ Update report v3 distinguishes local commit from incomplete revalidation.
135
+ - Preview receipts are external user-local metadata, never approval. Persist
136
+ transaction approval separately after explicit consent; recovery must validate
137
+ that external binding rather than trust project-local JSON claiming approval.
138
+ - Durable history stays inside the project and outside managed-core ownership.
139
+ It preserves historical state and evidence byte-for-byte. After migration
140
+ commits, repair/resume blocked v2 rather than restore v1.
132
141
  - The eight flat-root OpenTofu identities are an explicit new-output-only
133
142
  exception to append-only naming in 0.11.0. Preserve historical records and
134
143
  files; use the exact [retirement inventory](docs/azure-deployment.md#explicit-flat-root-identity-retirement),
@@ -264,16 +273,22 @@ npm run verify:generated-containers
264
273
  npm run verify:release-identity
265
274
  ```
266
275
 
267
- ## 0.11.1 release checklist
276
+ ## 0.11.3 release checklist
268
277
 
269
278
  - Package metadata, lockfile metadata, `liftoff --version`, and tag agree on
270
- `0.11.1`. Preparing these files is not publication or permission to create a tag.
279
+ `0.11.3`. Preparing these files is not publication or permission to create a tag.
271
280
  - Activation package identity remains `0.11.0`; no phase semantics or graph
272
281
  identity change is introduced by patch-release preparation.
282
+ - Release notes identify context-aware update follow-ups, root-aware validation
283
+ guidance, and reason-specific preview errors. Mandatory matching preview and
284
+ exact-plan approval, schema-3 project-update reports, and exit 2 after committed
285
+ but incomplete local revalidation remain unchanged.
273
286
  - Manifest writes use artifactVersion 7; readers accept v2-v7.
274
287
  - Policy version is `"6"`; activation contract/state/evidence-header/approval
275
- and compatibility metadata are v2. Graph, supersession, credential-policy,
276
- assessment report, and assessment catalog schemas remain v1.
288
+ remain v2. Compatibility metadata and update reports are v3; preview receipts,
289
+ transaction approvals, history indexes, and migration journals are v1. Graph,
290
+ supersession, credential-policy, assessment report, and assessment catalog
291
+ schemas remain v1.
277
292
  - The graph hash in code, docs, generated artifacts, compatibility metadata, and
278
293
  release-integrity tests is
279
294
  `ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c`.
@@ -281,7 +296,11 @@ npm run verify:release-identity
281
296
  B001–B006 bundle locally before separate publication and Phase 0 gates.
282
297
  - Power Apps and the eight explicitly retired flat-root infrastructure IDs have
283
298
  no positive new-generation lane. Old API/GenAI project provenance and v1
284
- activation history remain preserved, not converted by update or force.
299
+ activation history remain preserved. Only the exact approved migration lane
300
+ can create a linked v2 successor; it does not retag historical proof.
301
+ - Independent infrastructure provenance explicitly admits generation versions
302
+ `0.11.0`, `0.11.1`, `0.11.2`, and `0.11.3`, including mixed component histories.
303
+ Unknown releases remain blocked rather than being accepted through a version range.
285
304
  - No setup-skill version exists in manifests, JSON status, docs, or generated
286
305
  integrations.
287
306
  - Doctor states and remedies cover seed-incomplete, phase-blocked,
package/README.md CHANGED
@@ -38,7 +38,7 @@ automation.
38
38
  After the first self-upgrade-capable release is installed globally through npm,
39
39
  later CLI releases use `liftoff upgrade --check` followed by `liftoff upgrade`.
40
40
  This replaces the CLI only; generated projects use `liftoff update` separately
41
- for Liftoff-managed core files. Useful read-only checks:
41
+ for reviewed project maintenance. Useful project-read-only checks:
42
42
 
43
43
  ```bash
44
44
  liftoff validate
@@ -47,11 +47,16 @@ liftoff upgrade --check
47
47
  liftoff update --check
48
48
  ```
49
49
 
50
- Plain `liftoff update` applies safe managed-core changes immediately and skips
51
- core conflicts. Application source, dependencies, schemas, containers,
52
- environments, documentation, and infrastructure are project-owned after
53
- generation and remain outside every update mode, including `--force`. Use
54
- `liftoff update --check --json` for a read-only core-maintenance gate.
50
+ Start with `liftoff update --check`, then run `liftoff update` and approve the
51
+ matching plan. Check leaves project bytes unchanged and discloses a preview
52
+ receipt saved outside the repository. Missing or stale previews block apply.
53
+ Automation uses `--approve-plan <fingerprint>`; `--json` only selects formatting.
54
+
55
+ Supported activation-v1 migration preserves original records inside the project
56
+ and creates a linked v2 activation. Failed revalidation leaves v2 blocked and
57
+ resumable, not reset to v1. Application source, dependencies, schemas, containers,
58
+ environments, documentation, and infrastructure remain project-owned and outside
59
+ template replacement, including `--force`.
55
60
 
56
61
  Older projects may display the retired `/liftoff-repository-governance` alias.
57
62
  After upgrading the CLI, review `liftoff update --check`; `liftoff update --force`
@@ -2,7 +2,8 @@ import { FileSystemError } from '../../domain/project/errors.js';
2
2
  export type ProjectFileMutation = {
3
3
  type: 'write';
4
4
  pathParts: string[];
5
- content: string;
5
+ content: string | Buffer;
6
+ mode?: number;
6
7
  } | {
7
8
  type: 'delete';
8
9
  pathParts: string[];
@@ -40,7 +40,7 @@ async function assertProjectFileSnapshot(projectRoot, snapshot) {
40
40
  throw new FileSystemError(`Project update target changed after review: ${snapshot.pathParts.join('/')}`);
41
41
  }
42
42
  }
43
- async function assertAppliedMutationCurrent(projectRoot, mutation, original) {
43
+ async function assertAppliedMutationCurrent(projectRoot, mutation, expectedMode) {
44
44
  const current = await captureProjectFileSnapshot(projectRoot, mutation.pathParts);
45
45
  if (mutation.type === 'delete') {
46
46
  if (current.content !== undefined) {
@@ -49,8 +49,8 @@ async function assertAppliedMutationCurrent(projectRoot, mutation, original) {
49
49
  return;
50
50
  }
51
51
  if (current.content === undefined ||
52
- !current.content.equals(Buffer.from(mutation.content, 'utf8')) ||
53
- original.mode !== undefined && current.mode !== original.mode) {
52
+ !current.content.equals(typeof mutation.content === 'string' ? Buffer.from(mutation.content, 'utf8') : mutation.content) ||
53
+ expectedMode !== undefined && current.mode !== expectedMode) {
54
54
  throw new FileSystemError(`Project update target changed before rollback: ${mutation.pathParts.join('/')}`);
55
55
  }
56
56
  }
@@ -88,6 +88,10 @@ export async function applyProjectFileTransaction(projectRoot, mutations, option
88
88
  preconditions.set(key, snapshot);
89
89
  }
90
90
  for (const mutation of mutations) {
91
+ if (mutation.type === 'write' && mutation.mode !== undefined &&
92
+ (!Number.isInteger(mutation.mode) || mutation.mode < 0 || mutation.mode > 0o7777)) {
93
+ throw new FileSystemError(`Invalid project update mode for ${mutation.pathParts.join('/')}.`);
94
+ }
91
95
  const key = mutation.pathParts.join('\0');
92
96
  if (snapshots.has(key)) {
93
97
  throw new FileSystemError(`Project update contains duplicate mutations for ${mutation.pathParts.join('/')}.`);
@@ -110,20 +114,35 @@ export async function applyProjectFileTransaction(projectRoot, mutations, option
110
114
  await lease.assertHeld();
111
115
  await assertProjectFileSnapshot(projectRoot, snapshots.get(mutation.pathParts.join('\0')));
112
116
  if (mutation.type === 'write') {
117
+ const originalMode = snapshots.get(mutation.pathParts.join('\0')).mode;
118
+ const createdMode = 0o666 & ~process.umask();
119
+ const appliedMutation = {
120
+ mutation,
121
+ mode: originalMode ?? (mutation.mode === undefined ? undefined
122
+ : process.platform === 'win32' ? (createdMode & 0o200 ? 0o666 : 0o444) : createdMode)
123
+ };
113
124
  await writeProjectFile(projectRoot, mutation.pathParts, mutation.content);
125
+ applied.push(appliedMutation);
126
+ if (mutation.mode !== undefined) {
127
+ await lease.assertHeld();
128
+ await assertAppliedMutationCurrent(projectRoot, mutation, appliedMutation.mode);
129
+ await chmod(await resolveProjectPath(projectRoot, mutation.pathParts), mutation.mode);
130
+ appliedMutation.mode = process.platform === 'win32'
131
+ ? (mutation.mode & 0o200 ? 0o666 : 0o444) : mutation.mode;
132
+ }
114
133
  }
115
134
  else {
116
135
  await deleteProjectFile(projectRoot, mutation.pathParts);
136
+ applied.push({ mutation });
117
137
  }
118
- applied.push(mutation);
119
138
  }
120
139
  }
121
140
  catch (error) {
122
141
  const rollbackFailures = [];
123
- for (const mutation of [...applied].reverse()) {
142
+ for (const { mutation, mode } of [...applied].reverse()) {
124
143
  const snapshot = snapshots.get(mutation.pathParts.join('\0'));
125
144
  try {
126
- await assertAppliedMutationCurrent(projectRoot, mutation, snapshot);
145
+ await assertAppliedMutationCurrent(projectRoot, mutation, mode);
127
146
  if (snapshot.content === undefined) {
128
147
  await deleteProjectFile(projectRoot, mutation.pathParts);
129
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-transaction.js","sourceRoot":"","sources":["../../../src/adapters/filesystem/project-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-transaction.js","sourceRoot":"","sources":["../../../src/adapters/filesystem/project-transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { ProjectFileTransactionError } from './project-transaction.js';
2
+ import type { ProjectFileMutation, ProjectFileSnapshot } from './project-transaction.js';
3
+ export { reviewedUpdateTransactionPathParts, reviewedUpdateTransactionSchemaVersion } from '../../domain/project/reviewed-update-artifacts.js';
4
+ export interface ReviewedUpdateApprovalStore {
5
+ write(planFingerprint: string, transactionDigest: string): Promise<void>;
6
+ verify(planFingerprint: string, transactionDigest: string): Promise<boolean>;
7
+ remove(planFingerprint: string, transactionDigest: string): Promise<void>;
8
+ }
9
+ export interface ReviewedUpdateTransactionCheckpoint {
10
+ phase: 'prepared' | 'before-mutation' | 'staged' | 'after-mutation' | 'before-commit' | 'committed';
11
+ index?: number;
12
+ }
13
+ export interface ReviewedUpdateTransactionOptions {
14
+ planFingerprint: string;
15
+ approvalStore: ReviewedUpdateApprovalStore;
16
+ preconditions?: readonly ProjectFileSnapshot[];
17
+ validatePlan?: () => Promise<void>;
18
+ onBeforeMutation?: (mutation: ProjectFileMutation, index: number) => Promise<void>;
19
+ onCheckpoint?: (checkpoint: ReviewedUpdateTransactionCheckpoint) => Promise<void>;
20
+ }
21
+ export interface ReviewedUpdateRecoveryOptions {
22
+ approvalStore?: ReviewedUpdateApprovalStore;
23
+ }
24
+ export interface ReviewedUpdateTransactionDestination {
25
+ pathParts: string[];
26
+ attempted: boolean;
27
+ disposition: 'original' | 'target' | 'changed';
28
+ }
29
+ export interface ReviewedUpdateTransactionInspection {
30
+ status: 'absent' | 'interrupted' | 'committed' | 'blocked';
31
+ committed: boolean;
32
+ journalPath: string;
33
+ planFingerprint?: string;
34
+ transactionDigest?: string;
35
+ reason?: string;
36
+ destinations: ReviewedUpdateTransactionDestination[];
37
+ }
38
+ export interface ReviewedUpdateTransactionOutcome {
39
+ status: 'absent' | 'rolled-back' | 'committed' | 'blocked';
40
+ committed: boolean;
41
+ planFingerprint?: string;
42
+ transactionDigest?: string;
43
+ rollbackFailures: string[];
44
+ cleanupFailures: string[];
45
+ }
46
+ export declare class ReviewedUpdateTransactionError extends ProjectFileTransactionError {
47
+ readonly committed = false;
48
+ constructor(message: string, rollbackFailures?: readonly string[]);
49
+ }
50
+ export declare function reviewedUpdateTargetMode(mode: number | undefined, originalMode?: number): number;
51
+ export declare function inspectReviewedUpdateTransaction(projectRoot: string, options?: ReviewedUpdateRecoveryOptions): Promise<ReviewedUpdateTransactionInspection>;
52
+ export declare function recoverReviewedUpdateTransaction(projectRoot: string, options?: ReviewedUpdateRecoveryOptions): Promise<ReviewedUpdateTransactionOutcome>;
53
+ export declare function applyReviewedUpdateTransaction(projectRoot: string, mutations: readonly ProjectFileMutation[], options: ReviewedUpdateTransactionOptions): Promise<ReviewedUpdateTransactionOutcome>;