@msn-control/liftoff 0.12.0 → 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 +8 -18
- package/dist/application/upgrade/use-case.js +3 -0
- package/dist/application/upgrade/use-case.js.map +1 -1
- package/dist/domain/project/infrastructure-layout.d.ts +1 -1
- package/dist/domain/project/infrastructure-layout.js +2 -1
- package/dist/domain/project/infrastructure-layout.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/docs/cli-reference.md +10 -1
- package/docs/configuration-and-manifests.md +4 -4
- package/docs/troubleshooting.md +32 -2
- package/package.json +1 -1
package/DEVELOPER.md
CHANGED
|
@@ -274,33 +274,23 @@ npm run verify:generated-containers
|
|
|
274
274
|
npm run verify:release-identity
|
|
275
275
|
```
|
|
276
276
|
|
|
277
|
-
## 0.12.
|
|
277
|
+
## 0.12.1 release checklist
|
|
278
278
|
|
|
279
279
|
- Package metadata, lockfile metadata, `liftoff --version`, and tag agree on
|
|
280
|
-
`0.
|
|
281
|
-
- Activation package identity remains `0.
|
|
280
|
+
`0.12.1`. Preparing these files is not publication or permission to create a tag.
|
|
281
|
+
- Activation package identity remains `0.12.0`; no phase semantics or graph
|
|
282
282
|
identity change is introduced by patch-release preparation.
|
|
283
|
-
- Release notes identify
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
but incomplete local revalidation remain unchanged.
|
|
283
|
+
- Release notes identify the verified macOS Homebrew npm global prefix recovery
|
|
284
|
+
in `liftoff upgrade`, binding registry probes, exact installation, pre-write
|
|
285
|
+
rechecks, and replacement verification to the verified Homebrew target prefix.
|
|
287
286
|
- Manifest writes use artifactVersion 7; readers accept v2-v7.
|
|
288
287
|
- Policy version is `"6"`; activation contract/state/evidence-header/approval
|
|
289
|
-
remain
|
|
288
|
+
remain v3. Compatibility metadata is v4; preview receipts,
|
|
290
289
|
transaction approvals, history indexes, and migration journals are v1. Graph,
|
|
291
290
|
supersession, credential-policy, assessment report, and assessment catalog
|
|
292
291
|
schemas remain v1.
|
|
293
|
-
- The graph hash in code, docs, generated artifacts, compatibility metadata, and
|
|
294
|
-
release-integrity tests is
|
|
295
|
-
`ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c`.
|
|
296
|
-
- `/liftoff-setup` archives the OpenSpec bootstrap or finalizes the real Spec Kit
|
|
297
|
-
B001–B006 bundle locally before separate publication and Phase 0 gates.
|
|
298
|
-
- Power Apps and the eight explicitly retired flat-root infrastructure IDs have
|
|
299
|
-
no positive new-generation lane. Old API/GenAI project provenance and v1
|
|
300
|
-
activation history remain preserved. Only the exact approved migration lane
|
|
301
|
-
can create a linked v2 successor; it does not retag historical proof.
|
|
302
292
|
- Independent infrastructure provenance explicitly admits generation versions
|
|
303
|
-
`0.11.0`, `0.11.1`, `0.11.2`,
|
|
293
|
+
`0.11.0`, `0.11.1`, `0.11.2`, `0.11.3`, `0.12.0`, and `0.12.1`, including mixed component histories.
|
|
304
294
|
Unknown releases remain blocked rather than being accepted through a version range.
|
|
305
295
|
- No setup-skill version exists in manifests, JSON status, docs, or generated
|
|
306
296
|
integrations.
|
|
@@ -4,6 +4,9 @@ import { liftoffVersion } from '../../version.js';
|
|
|
4
4
|
function renderSelfUpgradeResult(value, presentation) {
|
|
5
5
|
const details = [
|
|
6
6
|
{ label: 'Current CLI', value: value.currentVersion },
|
|
7
|
+
...(value.installationTarget
|
|
8
|
+
? [{ label: 'Installation target', value: value.installationTarget }]
|
|
9
|
+
: []),
|
|
7
10
|
...('targetVersion' in value && value.targetVersion
|
|
8
11
|
? [{ label: 'Canonical target', value: value.targetVersion }]
|
|
9
12
|
: []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.js","sourceRoot":"","sources":["../../../src/application/upgrade/use-case.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-case.js","sourceRoot":"","sources":["../../../src/application/upgrade/use-case.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,SAAS,uBAAuB,CAC9B,KAAwB,EACxB,YAAiC;IAEjC,MAAM,OAAO,GAAG;QACd,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE;QACrD,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC1B,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACrE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa;YACjD,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,cAAc,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY;YAC/C,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YAC7D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,YAAY,CAAC,WAAW,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,KAAK,kBAAkB;YACrB,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAClF,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO;QACT,KAAK,UAAU;YACb,YAAY,CAAC,UAAU,CACrB,sBAAsB,EACtB,kBAAkB,CAAC,KAAK,CAAC,EACzB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,EAC5D,wBAAwB,CACzB,CAAC;YACF,OAAO;QACT,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,EAAE,CAAC;YACd,YAAY,CAAC,MAAM,CACjB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAChD,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,EACzE,kBAAkB,CAAC,KAAK,CAAC,CAC1B,CAAC;YACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO;QACT,CAAC;QACD,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,KAAK,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,OAAyB;IAEzB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,YAAY,CAAC,eAAe,CAClC,SAAS,EACT,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAClD,cAAc,CAAC,OAAO,EAAE;QACtB,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;KACxC,CAAC,CAAC,CAAC;IACN,IAAI,KAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,OAAO,CAAC;YACpB,IAAI;YACJ,cAAc,EAAE,cAAc;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI;YACJ,GAAG,CAAC,CAAC,IAAI;gBACP,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC,KAAkF,EAAE,MAAe,EAAE,EAAE,CAC/G,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3C,gBAAgB,EAAE,CAAC,OAA6F,EAAE,EAAE,CAClH,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;iBACvD;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG;YACN,aAAa,EAAE,CAAC;YAChB,IAAI;YACJ,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,cAAc;YAC9B,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -16,7 +16,7 @@ export interface InfrastructureProvisioningGate {
|
|
|
16
16
|
reason: string;
|
|
17
17
|
}
|
|
18
18
|
export declare const independentInfrastructureGenerationVersion: '0.11.0';
|
|
19
|
-
export declare const compatibleIndependentInfrastructureGenerationVersions: readonly ["0.11.0", '0.11.1', '0.11.2', '0.11.3', '0.12.0'];
|
|
19
|
+
export declare const compatibleIndependentInfrastructureGenerationVersions: readonly ["0.11.0", '0.11.1', '0.11.2', '0.11.3', '0.12.0', '0.12.1'];
|
|
20
20
|
export declare const sharedApplicationModuleIdentities: InfrastructureArtifactIdentity[];
|
|
21
21
|
export declare const retainedInfrastructureIdentities: readonly InfrastructureArtifactIdentity[];
|
|
22
22
|
export declare const retiredFlatRootInfrastructureIdentities: InfrastructureArtifactIdentity[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrastructure-layout.js","sourceRoot":"","sources":["../../../src/domain/project/infrastructure-layout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrastructure-layout.js","sourceRoot":"","sources":["../../../src/domain/project/infrastructure-layout.ts"],"names":[],"mappings":"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"}
|
package/dist/self-upgrade.d.ts
CHANGED
|
@@ -6,16 +6,22 @@ export declare const selfUpgradeSchemaVersion: 1;
|
|
|
6
6
|
export declare const selfUpgradeInstallTimeoutMs: number;
|
|
7
7
|
export declare const selfUpgradeProbeTimeoutMs = 30000;
|
|
8
8
|
export declare const selfUpgradeVerificationTimeoutMs = 15000;
|
|
9
|
+
declare const homebrewPrefixes: {
|
|
10
|
+
readonly 'homebrew-opt': string;
|
|
11
|
+
readonly 'homebrew-usr-local': string;
|
|
12
|
+
};
|
|
13
|
+
export type SelfUpgradeInstallationTarget = keyof typeof homebrewPrefixes;
|
|
9
14
|
export type SelfUpgradeMode = 'apply' | 'check';
|
|
10
15
|
export type SelfUpgradeStatus = 'blocked' | 'current' | 'failed' | 'update-available' | 'upgraded';
|
|
11
16
|
export type SelfUpgradeRegistryKind = 'canonical' | 'configured';
|
|
12
|
-
export type SelfUpgradeReasonCode = 'canonical_invalid' | 'canonical_timeout' | 'canonical_unavailable' | 'current' | 'downgrade_refused' | 'invalid_global_root' | 'invalid_package' | 'npm_install_failed' | 'npm_install_timeout' | 'npm_unavailable' | 'registry_invalid' | 'registry_stale' | 'registry_unavailable' | 'unsupported_installation' | 'update_available' | 'upgrade_complete' | 'verification_failed';
|
|
17
|
+
export type SelfUpgradeReasonCode = 'canonical_invalid' | 'canonical_timeout' | 'canonical_unavailable' | 'current' | 'downgrade_refused' | 'invalid_global_root' | 'invalid_package' | 'npm_install_failed' | 'npm_install_timeout' | 'npm_unavailable' | 'registry_invalid' | 'registry_prefix_mismatch' | 'registry_stale' | 'registry_unavailable' | 'unsupported_installation' | 'update_available' | 'upgrade_complete' | 'verification_failed';
|
|
13
18
|
interface SelfUpgradeResultBase {
|
|
14
19
|
schemaVersion: typeof selfUpgradeSchemaVersion;
|
|
15
20
|
mode: SelfUpgradeMode;
|
|
16
21
|
status: SelfUpgradeStatus;
|
|
17
22
|
currentVersion: string;
|
|
18
23
|
reasonCode: SelfUpgradeReasonCode;
|
|
24
|
+
installationTarget?: SelfUpgradeInstallationTarget;
|
|
19
25
|
}
|
|
20
26
|
export type SelfUpgradeResult = (SelfUpgradeResultBase & {
|
|
21
27
|
status: 'current';
|
|
@@ -68,7 +74,7 @@ export type ConfiguredRegistryTargetResult = {
|
|
|
68
74
|
export type ConfiguredRegistryTargetLookup = (targetVersion: string) => Promise<ConfiguredRegistryTargetResult>;
|
|
69
75
|
export declare function pathIsContained(root: string, candidate: string, platform: NodeJS.Platform): boolean;
|
|
70
76
|
export declare function expectedGlobalPackageRoot(globalRoot: string, platform: NodeJS.Platform): string;
|
|
71
|
-
export declare function buildGlobalNpmInstallCommand(targetVersion: string, platform: NodeJS.Platform): ExternalCommand;
|
|
77
|
+
export declare function buildGlobalNpmInstallCommand(targetVersion: string, platform: NodeJS.Platform, installationTarget?: SelfUpgradeInstallationTarget): ExternalCommand;
|
|
72
78
|
export declare function selfUpgradeExitCode(value: SelfUpgradeResult): number;
|
|
73
79
|
export declare function selfUpgradeRemedy(value: SelfUpgradeResult): string | undefined;
|
|
74
80
|
export declare function selfUpgradeSummary(value: SelfUpgradeResult): string;
|
package/dist/self-upgrade.js
CHANGED
|
@@ -10,6 +10,10 @@ export const selfUpgradeSchemaVersion = 1;
|
|
|
10
10
|
export const selfUpgradeInstallTimeoutMs = 10 * 60_000;
|
|
11
11
|
export const selfUpgradeProbeTimeoutMs = 30_000;
|
|
12
12
|
export const selfUpgradeVerificationTimeoutMs = 15_000;
|
|
13
|
+
const homebrewPrefixes = {
|
|
14
|
+
'homebrew-opt': path.posix.join('/', 'opt', 'homebrew'),
|
|
15
|
+
'homebrew-usr-local': path.posix.join('/', 'usr', 'local')
|
|
16
|
+
};
|
|
13
17
|
class SelfUpgradeFailure extends Error {
|
|
14
18
|
status;
|
|
15
19
|
reasonCode;
|
|
@@ -40,16 +44,25 @@ export function pathIsContained(root, candidate, platform) {
|
|
|
40
44
|
export function expectedGlobalPackageRoot(globalRoot, platform) {
|
|
41
45
|
return pathApiForPlatform(platform).join(globalRoot, ...liftoffPackageName.split('/'));
|
|
42
46
|
}
|
|
43
|
-
export function buildGlobalNpmInstallCommand(targetVersion, platform) {
|
|
47
|
+
export function buildGlobalNpmInstallCommand(targetVersion, platform, installationTarget) {
|
|
48
|
+
return npmCommand(npmExecutableForPlatform(platform), [
|
|
49
|
+
'install',
|
|
50
|
+
'--global',
|
|
51
|
+
'--ignore-scripts',
|
|
52
|
+
'--no-audit',
|
|
53
|
+
'--no-fund',
|
|
54
|
+
`${liftoffPackageName}@${targetVersion}`
|
|
55
|
+
], installationTarget);
|
|
56
|
+
}
|
|
57
|
+
function npmCommand(executable, args, installationTarget) {
|
|
44
58
|
return {
|
|
45
|
-
executable
|
|
59
|
+
executable,
|
|
46
60
|
args: [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
`${liftoffPackageName}@${targetVersion}`
|
|
61
|
+
...args,
|
|
62
|
+
...(installationTarget ? [
|
|
63
|
+
...(!args.includes('--global') ? ['--global'] : []),
|
|
64
|
+
'--prefix', homebrewPrefixes[installationTarget]
|
|
65
|
+
] : [])
|
|
53
66
|
]
|
|
54
67
|
};
|
|
55
68
|
}
|
|
@@ -60,6 +73,7 @@ function result(request, status, reasonCode, details = {}) {
|
|
|
60
73
|
status,
|
|
61
74
|
currentVersion: request.currentVersion,
|
|
62
75
|
reasonCode,
|
|
76
|
+
...(details.installationTarget ? { installationTarget: details.installationTarget } : {}),
|
|
63
77
|
...(details.targetVersion ? { targetVersion: details.targetVersion } : {}),
|
|
64
78
|
...(details.registryKind ? { registryKind: details.registryKind } : {})
|
|
65
79
|
};
|
|
@@ -82,6 +96,7 @@ export function selfUpgradeExitCode(value) {
|
|
|
82
96
|
}
|
|
83
97
|
}
|
|
84
98
|
export function selfUpgradeRemedy(value) {
|
|
99
|
+
const prefix = value.installationTarget ? ` --prefix ${homebrewPrefixes[value.installationTarget]}` : '';
|
|
85
100
|
switch (value.reasonCode) {
|
|
86
101
|
case 'current':
|
|
87
102
|
case 'update_available':
|
|
@@ -93,13 +108,13 @@ export function selfUpgradeRemedy(value) {
|
|
|
93
108
|
case 'npm_install_timeout':
|
|
94
109
|
case 'verification_failed':
|
|
95
110
|
return value.targetVersion
|
|
96
|
-
? `Run the exact repair command manually: ${exactGlobalInstallCommand(value.targetVersion)}`
|
|
111
|
+
? `Run the exact repair command manually: ${exactGlobalInstallCommand(value.targetVersion)}${prefix}`
|
|
97
112
|
: undefined;
|
|
98
113
|
case 'unsupported_installation':
|
|
99
114
|
case 'invalid_global_root':
|
|
100
115
|
case 'invalid_package':
|
|
101
116
|
case 'npm_unavailable':
|
|
102
|
-
return `Use a supported global npm installation: ${canonicalManualInstallCommand()}`;
|
|
117
|
+
return `Use a supported global npm installation: ${canonicalManualInstallCommand()}${prefix}`;
|
|
103
118
|
case 'canonical_invalid':
|
|
104
119
|
case 'canonical_timeout':
|
|
105
120
|
case 'canonical_unavailable':
|
|
@@ -107,6 +122,8 @@ export function selfUpgradeRemedy(value) {
|
|
|
107
122
|
case 'registry_invalid':
|
|
108
123
|
case 'registry_unavailable':
|
|
109
124
|
return 'Repair the approved npm registry configuration without placing credentials in the registry URL, then retry.';
|
|
125
|
+
case 'registry_prefix_mismatch':
|
|
126
|
+
return 'The active npm and verified Homebrew prefix select different registries. Reconcile the approved machine-level registry policy before retrying; Liftoff did not switch registries or install.';
|
|
110
127
|
case 'downgrade_refused':
|
|
111
128
|
return 'Keep the newer installed CLI; Liftoff does not perform automatic downgrades.';
|
|
112
129
|
default:
|
|
@@ -142,6 +159,77 @@ function commandFailed(command) {
|
|
|
142
159
|
command.signal !== null ||
|
|
143
160
|
command.status !== 0;
|
|
144
161
|
}
|
|
162
|
+
async function homebrewInstallationTarget(globalRoot, runningRoot, dependencies) {
|
|
163
|
+
if (dependencies.platform !== 'darwin')
|
|
164
|
+
return undefined;
|
|
165
|
+
for (const target of Object.keys(homebrewPrefixes)) {
|
|
166
|
+
const prefix = homebrewPrefixes[target];
|
|
167
|
+
const stableRoot = path.posix.join(prefix, 'lib', 'node_modules');
|
|
168
|
+
if (runningRoot !== expectedGlobalPackageRoot(stableRoot, 'darwin'))
|
|
169
|
+
continue;
|
|
170
|
+
try {
|
|
171
|
+
const executable = await dependencies.realpath(dependencies.execPath);
|
|
172
|
+
const parts = path.posix.relative(prefix, executable).split(path.posix.sep);
|
|
173
|
+
if (parts.length !== 5 || parts[0] !== 'Cellar' || parts[3] !== 'bin' || parts[4] !== 'node' ||
|
|
174
|
+
!/^\d+\.\d+\.\d+(?:_\d+)?$/u.test(parts[2]) ||
|
|
175
|
+
!['node', `node@${parts[2].split('.')[0]}`].includes(parts[1]))
|
|
176
|
+
continue;
|
|
177
|
+
const cellarRoot = path.posix.join(prefix, ...parts.slice(0, 3), 'lib', 'node_modules');
|
|
178
|
+
if (globalRoot !== cellarRoot || await dependencies.realpath(stableRoot) !== stableRoot)
|
|
179
|
+
continue;
|
|
180
|
+
return target;
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
async function assertHomebrewInstallation(installation, version, dependencies) {
|
|
189
|
+
if (!installation.installationTarget)
|
|
190
|
+
return;
|
|
191
|
+
const prefix = homebrewPrefixes[installation.installationTarget];
|
|
192
|
+
const globalRoot = path.posix.join(prefix, 'lib', 'node_modules');
|
|
193
|
+
const packageRoot = expectedGlobalPackageRoot(globalRoot, 'darwin');
|
|
194
|
+
try {
|
|
195
|
+
for (const directory of [prefix, path.posix.join(prefix, 'bin'), globalRoot,
|
|
196
|
+
path.posix.dirname(packageRoot), packageRoot]) {
|
|
197
|
+
const details = await dependencies.lstat(directory);
|
|
198
|
+
if (!details.isDirectory() || details.isSymbolicLink() || await dependencies.realpath(directory) !== directory) {
|
|
199
|
+
throw new Error('Unsafe Homebrew installation directory.');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const metadataPath = path.posix.join(packageRoot, 'package.json');
|
|
203
|
+
const metadataDetails = await dependencies.lstat(metadataPath);
|
|
204
|
+
if (!metadataDetails.isFile() || metadataDetails.isSymbolicLink()) {
|
|
205
|
+
throw new Error('Unsafe Homebrew package metadata.');
|
|
206
|
+
}
|
|
207
|
+
const metadata = await dependencies.readJson(metadataPath);
|
|
208
|
+
if (!metadata || metadata.name !== liftoffPackageName || metadata.version !== version ||
|
|
209
|
+
!metadata.bin || typeof metadata.bin !== 'object' || Array.isArray(metadata.bin)) {
|
|
210
|
+
throw new Error('Invalid Homebrew package metadata.');
|
|
211
|
+
}
|
|
212
|
+
const declaredBin = metadata.bin[liftoffBinaryName];
|
|
213
|
+
if (typeof declaredBin !== 'string' || !declaredBin || path.posix.isAbsolute(declaredBin)) {
|
|
214
|
+
throw new Error('Invalid Homebrew package binary.');
|
|
215
|
+
}
|
|
216
|
+
const binary = path.posix.resolve(packageRoot, declaredBin);
|
|
217
|
+
const launcher = path.posix.join(prefix, 'bin', liftoffBinaryName);
|
|
218
|
+
if (!pathIsContained(packageRoot, binary, 'darwin')) {
|
|
219
|
+
throw new Error('Escaping Homebrew package binary.');
|
|
220
|
+
}
|
|
221
|
+
const binaryDetails = await dependencies.lstat(binary);
|
|
222
|
+
if (!binaryDetails.isFile() || binaryDetails.isSymbolicLink() ||
|
|
223
|
+
await dependencies.realpath(binary) !== binary ||
|
|
224
|
+
!(await dependencies.lstat(launcher)).isSymbolicLink() ||
|
|
225
|
+
await dependencies.realpath(launcher) !== binary) {
|
|
226
|
+
throw new Error('Homebrew launcher does not identify the running package.');
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
throw new SelfUpgradeFailure('blocked', 'unsupported_installation');
|
|
231
|
+
}
|
|
232
|
+
}
|
|
145
233
|
async function inspectGlobalInstallation(request, neutralDirectory, dependencies) {
|
|
146
234
|
const npmExecutable = npmExecutableForPlatform(dependencies.platform);
|
|
147
235
|
const rootResult = await dependencies.runner.run({ executable: npmExecutable, args: ['root', '--global'] }, {
|
|
@@ -173,12 +261,18 @@ async function inspectGlobalInstallation(request, neutralDirectory, dependencies
|
|
|
173
261
|
catch {
|
|
174
262
|
throw new SelfUpgradeFailure('blocked', 'invalid_global_root');
|
|
175
263
|
}
|
|
176
|
-
|
|
264
|
+
let packageRoot = expectedGlobalPackageRoot(globalRoot, dependencies.platform);
|
|
265
|
+
let installationTarget;
|
|
177
266
|
if (!pathIsContained(globalRoot, packageRoot, dependencies.platform) ||
|
|
178
267
|
comparisonPath(packageRoot, dependencies.platform) !==
|
|
179
268
|
comparisonPath(runningRoot, dependencies.platform)) {
|
|
180
|
-
|
|
269
|
+
installationTarget = await homebrewInstallationTarget(globalRoot, runningRoot, dependencies);
|
|
270
|
+
if (!installationTarget)
|
|
271
|
+
throw new SelfUpgradeFailure('blocked', 'unsupported_installation');
|
|
272
|
+
packageRoot = expectedGlobalPackageRoot(path.posix.join(homebrewPrefixes[installationTarget], 'lib', 'node_modules'), 'darwin');
|
|
181
273
|
}
|
|
274
|
+
const installation = { npmExecutable, packageRoot, ...(installationTarget ? { installationTarget } : {}) };
|
|
275
|
+
await assertHomebrewInstallation(installation, request.currentVersion, dependencies);
|
|
182
276
|
let packageDetails;
|
|
183
277
|
let metadata;
|
|
184
278
|
try {
|
|
@@ -199,7 +293,13 @@ async function inspectGlobalInstallation(request, neutralDirectory, dependencies
|
|
|
199
293
|
packageMetadata.version !== request.currentVersion) {
|
|
200
294
|
throw new SelfUpgradeFailure('blocked', 'invalid_package');
|
|
201
295
|
}
|
|
202
|
-
|
|
296
|
+
if (installationTarget) {
|
|
297
|
+
const confirmedRoot = await npmGlobalRoot(npmExecutable, neutralDirectory, dependencies, installationTarget);
|
|
298
|
+
if (expectedGlobalPackageRoot(confirmedRoot, dependencies.platform) !== packageRoot) {
|
|
299
|
+
throw new SelfUpgradeFailure('blocked', 'unsupported_installation');
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return installation;
|
|
203
303
|
}
|
|
204
304
|
function registryKind(value) {
|
|
205
305
|
let parsed;
|
|
@@ -219,16 +319,13 @@ function registryKind(value) {
|
|
|
219
319
|
const normalized = parsed.toString().replace(/\/$/, '');
|
|
220
320
|
return normalized === canonicalNpmRegistry ? 'canonical' : 'configured';
|
|
221
321
|
}
|
|
222
|
-
async function
|
|
322
|
+
async function configuredUpgradeRegistry(npmExecutable, neutralDirectory, dependencies, timeoutMs, installationTarget) {
|
|
223
323
|
const options = {
|
|
224
324
|
cwd: neutralDirectory,
|
|
225
325
|
env: readOnlyEnvironment(dependencies, neutralDirectory),
|
|
226
326
|
timeoutMs
|
|
227
327
|
};
|
|
228
|
-
const scopedRegistryResult = await dependencies.runner.run(
|
|
229
|
-
executable: npmExecutable,
|
|
230
|
-
args: ['config', 'get', liftoffScopedRegistryKey]
|
|
231
|
-
}, options);
|
|
328
|
+
const scopedRegistryResult = await dependencies.runner.run(npmCommand(npmExecutable, ['config', 'get', liftoffScopedRegistryKey], installationTarget), options);
|
|
232
329
|
if (commandFailed(scopedRegistryResult)) {
|
|
233
330
|
throw new SelfUpgradeFailure('failed', 'registry_unavailable');
|
|
234
331
|
}
|
|
@@ -237,23 +334,36 @@ async function inspectRegistryParity(targetVersion, npmExecutable, neutralDirect
|
|
|
237
334
|
if (configuredRegistry === '' ||
|
|
238
335
|
configuredRegistry === 'undefined' ||
|
|
239
336
|
configuredRegistry === 'null') {
|
|
240
|
-
const defaultRegistryResult = await dependencies.runner.run(
|
|
337
|
+
const defaultRegistryResult = await dependencies.runner.run(npmCommand(npmExecutable, ['config', 'get', 'registry'], installationTarget), options);
|
|
241
338
|
if (commandFailed(defaultRegistryResult)) {
|
|
242
339
|
throw new SelfUpgradeFailure('failed', 'registry_unavailable');
|
|
243
340
|
}
|
|
244
341
|
configuredRegistry = defaultRegistryResult.stdout.trim();
|
|
245
342
|
}
|
|
246
343
|
const kind = registryKind(configuredRegistry);
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
344
|
+
return { url: new URL(configuredRegistry).toString().replace(/\/$/, ''), kind };
|
|
345
|
+
}
|
|
346
|
+
async function inspectRegistryParity(targetVersion, npmExecutable, neutralDirectory, dependencies, timeoutMs = selfUpgradeProbeTimeoutMs, installationTarget) {
|
|
347
|
+
const active = await configuredUpgradeRegistry(npmExecutable, neutralDirectory, dependencies, timeoutMs);
|
|
348
|
+
const delivery = installationTarget
|
|
349
|
+
? await configuredUpgradeRegistry(npmExecutable, neutralDirectory, dependencies, timeoutMs, installationTarget)
|
|
350
|
+
: active;
|
|
351
|
+
if (delivery.url !== active.url) {
|
|
352
|
+
throw new SelfUpgradeFailure('blocked', 'registry_prefix_mismatch');
|
|
353
|
+
}
|
|
354
|
+
const kind = delivery.kind;
|
|
355
|
+
const options = {
|
|
356
|
+
cwd: neutralDirectory,
|
|
357
|
+
env: readOnlyEnvironment(dependencies, neutralDirectory),
|
|
358
|
+
timeoutMs
|
|
359
|
+
};
|
|
360
|
+
const targetResult = await dependencies.runner.run(npmCommand(npmExecutable, [
|
|
361
|
+
'view',
|
|
362
|
+
`${liftoffPackageName}@${targetVersion}`,
|
|
363
|
+
'name',
|
|
364
|
+
'version',
|
|
365
|
+
'--json'
|
|
366
|
+
], installationTarget), options);
|
|
257
367
|
if (commandFailed(targetResult)) {
|
|
258
368
|
const notFound = targetResult.status === 1 &&
|
|
259
369
|
/\b(?:E404|404|not found|no match)\b/i.test(targetResult.stderr);
|
|
@@ -308,8 +418,8 @@ export async function checkConfiguredRegistryTarget(targetVersion, overrides = {
|
|
|
308
418
|
await dependencies.removeNeutralDirectory(neutralDirectory);
|
|
309
419
|
}
|
|
310
420
|
}
|
|
311
|
-
async function npmGlobalRoot(npmExecutable, neutralDirectory, dependencies) {
|
|
312
|
-
const rootResult = await dependencies.runner.run(
|
|
421
|
+
async function npmGlobalRoot(npmExecutable, neutralDirectory, dependencies, installationTarget) {
|
|
422
|
+
const rootResult = await dependencies.runner.run(npmCommand(npmExecutable, ['root', '--global'], installationTarget), {
|
|
313
423
|
cwd: neutralDirectory,
|
|
314
424
|
env: readOnlyEnvironment(dependencies, neutralDirectory),
|
|
315
425
|
timeoutMs: selfUpgradeProbeTimeoutMs
|
|
@@ -328,10 +438,13 @@ async function npmGlobalRoot(npmExecutable, neutralDirectory, dependencies) {
|
|
|
328
438
|
throw new SelfUpgradeFailure('failed', 'verification_failed');
|
|
329
439
|
}
|
|
330
440
|
}
|
|
331
|
-
async function verifyReplacement(targetVersion,
|
|
441
|
+
async function verifyReplacement(targetVersion, installation, neutralDirectory, dependencies) {
|
|
332
442
|
const pathApi = pathApiForPlatform(dependencies.platform);
|
|
333
|
-
const globalRoot = await npmGlobalRoot(npmExecutable, neutralDirectory, dependencies);
|
|
443
|
+
const globalRoot = await npmGlobalRoot(installation.npmExecutable, neutralDirectory, dependencies, installation.installationTarget);
|
|
334
444
|
const packageRoot = expectedGlobalPackageRoot(globalRoot, dependencies.platform);
|
|
445
|
+
if (comparisonPath(packageRoot, dependencies.platform) !== comparisonPath(installation.packageRoot, dependencies.platform)) {
|
|
446
|
+
throw new SelfUpgradeFailure('failed', 'verification_failed');
|
|
447
|
+
}
|
|
335
448
|
let packageDetails;
|
|
336
449
|
let metadata;
|
|
337
450
|
try {
|
|
@@ -348,6 +461,16 @@ async function verifyReplacement(targetVersion, npmExecutable, neutralDirectory,
|
|
|
348
461
|
Array.isArray(metadata)) {
|
|
349
462
|
throw new SelfUpgradeFailure('failed', 'verification_failed');
|
|
350
463
|
}
|
|
464
|
+
try {
|
|
465
|
+
if (comparisonPath(await dependencies.realpath(packageRoot), dependencies.platform) !==
|
|
466
|
+
comparisonPath(packageRoot, dependencies.platform)) {
|
|
467
|
+
throw new Error('Replacement package escaped its original root.');
|
|
468
|
+
}
|
|
469
|
+
await assertHomebrewInstallation(installation, targetVersion, dependencies);
|
|
470
|
+
}
|
|
471
|
+
catch {
|
|
472
|
+
throw new SelfUpgradeFailure('failed', 'verification_failed');
|
|
473
|
+
}
|
|
351
474
|
const record = metadata;
|
|
352
475
|
const bin = record.bin;
|
|
353
476
|
if (record.name !== liftoffPackageName ||
|
|
@@ -419,9 +542,12 @@ export async function runSelfUpgrade(request, overrides = {}) {
|
|
|
419
542
|
const neutralDirectory = await dependencies.makeNeutralDirectory();
|
|
420
543
|
let targetVersion;
|
|
421
544
|
let registry;
|
|
545
|
+
let installationTarget;
|
|
546
|
+
const finish = (status, reasonCode, details = {}) => result(request, status, reasonCode, { ...details, installationTarget });
|
|
422
547
|
try {
|
|
423
548
|
request.onStage?.('Inspect global installation');
|
|
424
549
|
const installation = await inspectGlobalInstallation(request, neutralDirectory, dependencies);
|
|
550
|
+
installationTarget = installation.installationTarget;
|
|
425
551
|
request.onStage?.('Resolve canonical stable target');
|
|
426
552
|
let stable;
|
|
427
553
|
try {
|
|
@@ -429,32 +555,39 @@ export async function runSelfUpgrade(request, overrides = {}) {
|
|
|
429
555
|
}
|
|
430
556
|
catch (error) {
|
|
431
557
|
if (error instanceof StableReleaseLookupError) {
|
|
432
|
-
return
|
|
558
|
+
return finish('failed', canonicalFailureReason(error));
|
|
433
559
|
}
|
|
434
|
-
return
|
|
560
|
+
return finish('failed', 'canonical_unavailable');
|
|
435
561
|
}
|
|
436
562
|
if (stable.name !== liftoffPackageName || !isStableSemver(stable.version)) {
|
|
437
|
-
return
|
|
563
|
+
return finish('failed', 'canonical_invalid');
|
|
438
564
|
}
|
|
439
565
|
targetVersion = stable.version;
|
|
440
566
|
const comparison = compareSemver(targetVersion, request.currentVersion);
|
|
441
567
|
if (comparison === 0) {
|
|
442
|
-
return
|
|
568
|
+
return finish('current', 'current');
|
|
443
569
|
}
|
|
444
570
|
if (comparison < 0) {
|
|
445
|
-
return
|
|
571
|
+
return finish('blocked', 'downgrade_refused', { targetVersion });
|
|
446
572
|
}
|
|
447
573
|
request.onStage?.('Verify configured registry parity');
|
|
448
|
-
const registryInspection = await inspectRegistryParity(targetVersion, installation.npmExecutable, neutralDirectory, dependencies);
|
|
574
|
+
const registryInspection = await inspectRegistryParity(targetVersion, installation.npmExecutable, neutralDirectory, dependencies, selfUpgradeProbeTimeoutMs, installationTarget);
|
|
449
575
|
registry = registryInspection.kind;
|
|
450
576
|
if (request.mode === 'check') {
|
|
451
|
-
return
|
|
577
|
+
return finish('update-available', 'update_available', {
|
|
452
578
|
targetVersion,
|
|
453
579
|
registryKind: registry
|
|
454
580
|
});
|
|
455
581
|
}
|
|
582
|
+
if (installationTarget) {
|
|
583
|
+
const confirmedRoot = await npmGlobalRoot(installation.npmExecutable, neutralDirectory, dependencies, installationTarget);
|
|
584
|
+
if (expectedGlobalPackageRoot(confirmedRoot, dependencies.platform) !== installation.packageRoot) {
|
|
585
|
+
throw new SelfUpgradeFailure('blocked', 'unsupported_installation');
|
|
586
|
+
}
|
|
587
|
+
await assertHomebrewInstallation(installation, request.currentVersion, dependencies);
|
|
588
|
+
}
|
|
456
589
|
request.onStage?.('Install exact Liftoff release', targetVersion);
|
|
457
|
-
const installCommand = buildGlobalNpmInstallCommand(targetVersion, dependencies.platform);
|
|
590
|
+
const installCommand = buildGlobalNpmInstallCommand(targetVersion, dependencies.platform, installationTarget);
|
|
458
591
|
request.onInstallCommand?.(installCommand);
|
|
459
592
|
const installResult = await dependencies.runner.run(installCommand, {
|
|
460
593
|
cwd: neutralDirectory,
|
|
@@ -465,34 +598,34 @@ export async function runSelfUpgrade(request, overrides = {}) {
|
|
|
465
598
|
stderr: request.stderr
|
|
466
599
|
});
|
|
467
600
|
if (installResult.timedOut) {
|
|
468
|
-
return
|
|
601
|
+
return finish('failed', 'npm_install_timeout', {
|
|
469
602
|
targetVersion,
|
|
470
603
|
registryKind: registry
|
|
471
604
|
});
|
|
472
605
|
}
|
|
473
606
|
if (commandFailed(installResult)) {
|
|
474
|
-
return
|
|
607
|
+
return finish('failed', 'npm_install_failed', {
|
|
475
608
|
targetVersion,
|
|
476
609
|
registryKind: registry
|
|
477
610
|
});
|
|
478
611
|
}
|
|
479
612
|
request.onStage?.('Verify replacement', targetVersion);
|
|
480
|
-
await verifyReplacement(targetVersion, installation
|
|
481
|
-
return
|
|
613
|
+
await verifyReplacement(targetVersion, installation, neutralDirectory, dependencies);
|
|
614
|
+
return finish('upgraded', 'upgrade_complete', {
|
|
482
615
|
targetVersion,
|
|
483
616
|
registryKind: registry
|
|
484
617
|
});
|
|
485
618
|
}
|
|
486
619
|
catch (error) {
|
|
487
620
|
if (error instanceof SelfUpgradeFailure) {
|
|
488
|
-
return
|
|
621
|
+
return finish(error.status, error.reasonCode, {
|
|
489
622
|
...(targetVersion ? { targetVersion } : {}),
|
|
490
623
|
...(registry ?? error.registryKind
|
|
491
624
|
? { registryKind: registry ?? error.registryKind }
|
|
492
625
|
: {})
|
|
493
626
|
});
|
|
494
627
|
}
|
|
495
|
-
return
|
|
628
|
+
return finish('failed', 'verification_failed', {
|
|
496
629
|
...(targetVersion ? { targetVersion } : {}),
|
|
497
630
|
...(registry ? { registryKind: registry } : {})
|
|
498
631
|
});
|
package/dist/self-upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-upgrade.js","sourceRoot":"","sources":["../src/self-upgrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"self-upgrade.js","sourceRoot":"","sources":["../src/self-upgrade.ts"],"names":[],"mappings":"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"}
|
package/docs/cli-reference.md
CHANGED
|
@@ -276,6 +276,13 @@ Automatic replacement is refused for local dependencies, `npx` execution-cache
|
|
|
276
276
|
copies, linked checkouts, unknown package-manager stores, ambiguous roots, or
|
|
277
277
|
unsafe paths.
|
|
278
278
|
|
|
279
|
+
On macOS, a verified global installation at the standard Homebrew prefix can
|
|
280
|
+
remain eligible when Homebrew Node/npm reports its versioned Cellar prefix.
|
|
281
|
+
Liftoff checks the package, runtime layout, and launcher, then explicitly targets
|
|
282
|
+
that existing prefix throughout the upgrade. It rejects a prefix-specific
|
|
283
|
+
registry change instead of silently switching delivery policy. This fallback
|
|
284
|
+
does not apply to arbitrary prefixes, Windows, or Linux.
|
|
285
|
+
|
|
279
286
|
Canonical npm's stable `latest` metadata selects one exact target. The effective
|
|
280
287
|
configured npm registry remains the delivery path and must expose that exact
|
|
281
288
|
version. Liftoff never edits `.npmrc`, embeds registry credentials, forces a
|
|
@@ -297,7 +304,9 @@ command printed by Liftoff.
|
|
|
297
304
|
|
|
298
305
|
JSON results use schema version 1 and expose only `mode`, `status`,
|
|
299
306
|
`currentVersion`, applicable `targetVersion`, applicable `registryKind`, and a
|
|
300
|
-
stable `reasonCode
|
|
307
|
+
stable `reasonCode`, plus optional `installationTarget` (`homebrew-opt` or
|
|
308
|
+
`homebrew-usr-local`) when the standard Homebrew fallback is verified. Arbitrary
|
|
309
|
+
installation paths are not included. Status is one of `current`, `update-available`, `upgraded`,
|
|
301
310
|
`blocked`, or `failed`. Child progress goes to stderr so stdout remains one JSON
|
|
302
311
|
object.
|
|
303
312
|
|
|
@@ -210,7 +210,7 @@ comparisons to infer execution safety.
|
|
|
210
210
|
|
|
211
211
|
| Contract | Current version |
|
|
212
212
|
| --- | --- |
|
|
213
|
-
| CLI package version | 0.12.
|
|
213
|
+
| CLI package version | 0.12.1 |
|
|
214
214
|
| Activation package identity | 0.12.0 |
|
|
215
215
|
| Manifest write / supported reads | 7 / 2-7 for API and GenAI |
|
|
216
216
|
| Normative policy | 6 |
|
|
@@ -221,10 +221,10 @@ comparisons to infer execution safety.
|
|
|
221
221
|
| Phase graph, supersession, credential policy | 1 |
|
|
222
222
|
| Assessment report and control catalog | 1 |
|
|
223
223
|
|
|
224
|
-
Liftoff 0.12.
|
|
225
|
-
envelope
|
|
224
|
+
Liftoff 0.12.1 retains the activation contract, state, evidence header, and approval
|
|
225
|
+
envelope at version 3, and compatibility metadata at schema version 4, covering the
|
|
226
226
|
29-phase canonical phase graph. Independent infrastructure provenance
|
|
227
|
-
explicitly recognizes generation versions 0.11.0, 0.11.1, 0.11.2, 0.11.3, and 0.12.
|
|
227
|
+
explicitly recognizes generation versions 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.12.0, and 0.12.1,
|
|
228
228
|
including mixed component histories; unknown releases are not automatically
|
|
229
229
|
trusted or treated as compatible. The mandatory preview/approval workflow and
|
|
230
230
|
schema-3 update reports remain unchanged.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -26,12 +26,42 @@ npm install -g @msn-control/liftoff@latest
|
|
|
26
26
|
|
|
27
27
|
## CLI upgrade is blocked by installation origin
|
|
28
28
|
|
|
29
|
-
Automatic replacement supports
|
|
30
|
-
global package root
|
|
29
|
+
Automatic replacement supports the canonical package at npm's effective
|
|
30
|
+
global package root or an independently verified standard Homebrew prefix on
|
|
31
|
+
macOS. A local dependency, `npx` cache copy, linked checkout, or
|
|
31
32
|
another package-manager installation is intentionally refused. Use the manual
|
|
32
33
|
global npm command shown by Liftoff; do not try to make upgrade replace a
|
|
33
34
|
different installation.
|
|
34
35
|
|
|
36
|
+
### Homebrew Node and npm report a different prefix
|
|
37
|
+
|
|
38
|
+
A Homebrew Node installation can report a versioned Cellar global root while
|
|
39
|
+
Liftoff remains installed under `/opt/homebrew/lib/node_modules` (Apple Silicon)
|
|
40
|
+
or `/usr/local/lib/node_modules` (Intel). This is an installation-prefix mismatch,
|
|
41
|
+
not a project-directory or PATH-refresh problem.
|
|
42
|
+
|
|
43
|
+
The patched upgrader verifies the running package, matching Homebrew Node/npm
|
|
44
|
+
layout, and global launcher before targeting the existing prefix. Registry
|
|
45
|
+
checks, installation, and replacement verification retain that target. It
|
|
46
|
+
neither installs another copy in the Cellar nor edits `.npmrc`. If prefix-specific
|
|
47
|
+
registry settings differ, `registry_prefix_mismatch` blocks the operation rather
|
|
48
|
+
than silently bypassing a managed mirror.
|
|
49
|
+
|
|
50
|
+
Older binaries, including 0.11.3 and 0.12.0, still need the one-time workaround.
|
|
51
|
+
Only after confirming that `liftoff` resolves under `/opt/homebrew/lib/node_modules`,
|
|
52
|
+
run:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm_config_prefix=/opt/homebrew liftoff upgrade --check
|
|
56
|
+
npm_config_prefix=/opt/homebrew liftoff upgrade
|
|
57
|
+
liftoff --version
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For a verified Intel Homebrew installation use `/usr/local` instead. The
|
|
61
|
+
environment assignment applies only to that invocation. Do not use it to force
|
|
62
|
+
replacement of a local, linked, or unrelated installation. Keep your approved
|
|
63
|
+
registry policy; a blocked mirror still requires its owner's intervention.
|
|
64
|
+
|
|
35
65
|
## CLI upgrade is blocked by a stale managed registry
|
|
36
66
|
|
|
37
67
|
Canonical npm defines the exact stable target, but Liftoff installs through the
|