dsh-plugin-upgrader 1.4.0 → 1.4.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/CHANGELOG.md +12 -0
- package/lib/host/manifest.d.ts +9 -1
- package/lib/host/manifest.d.ts.map +1 -1
- package/lib/host/manifest.js +32 -2
- package/lib/host/manifest.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.4.1 — 2026-10-28
|
|
4
|
+
|
|
5
|
+
- **The 1.4.0 repairs now actually run inside the desktop app.** Every profile
|
|
6
|
+
path this plugin resolves went through `DSH_PROFILE_DIR` / `DSH_HOME` +
|
|
7
|
+
`DSH_PROFILE`, but the desktop shell spawns the plugin host with the profile
|
|
8
|
+
directory as the working directory and neither variable in the environment —
|
|
9
|
+
so inside the real app both lookups missed and the host half of 1.4.0 (journal
|
|
10
|
+
recovery, the writer-lock explanation, the install progress) was silently
|
|
11
|
+
inert. The resolution now falls back to the working directory when its
|
|
12
|
+
`package.json` parses and carries the `dsh.profile` key, so a random cwd is
|
|
13
|
+
never mistaken for a profile.
|
|
14
|
+
|
|
3
15
|
## 1.4.0 — 2026-10-28
|
|
4
16
|
|
|
5
17
|
- **A failed upgrade can no longer leave the profile missing a dependency.** An
|
package/lib/host/manifest.d.ts
CHANGED
|
@@ -26,10 +26,18 @@ export interface DropJournal {
|
|
|
26
26
|
* The harness exports this to every process it starts, so the value names the
|
|
27
27
|
* same profile the manager is working on rather than a guess from the disk.
|
|
28
28
|
*
|
|
29
|
+
* The desktop host is an exception: it spawns the plugin host with
|
|
30
|
+
* `cwd: this.projectDir` (the profile directory) and no `DSH_PROFILE*`
|
|
31
|
+
* variables in the child environment, so the env-only lookups both miss. In
|
|
32
|
+
* that case fall back to the working directory — but only when it really
|
|
33
|
+
* looks like a profile (its `package.json` parses and carries a `dsh.profile`
|
|
34
|
+
* object), so a random cwd can never be mistaken for one.
|
|
35
|
+
*
|
|
29
36
|
* @param env - the process environment.
|
|
37
|
+
* @param cwd - the working directory to fall back to (overridable in tests).
|
|
30
38
|
* @returns the absolute profile directory, or `undefined` when unknown.
|
|
31
39
|
*/
|
|
32
|
-
export declare function profileDirFrom(env?: NodeJS.ProcessEnv): string | undefined;
|
|
40
|
+
export declare function profileDirFrom(env?: NodeJS.ProcessEnv, cwd?: string): string | undefined;
|
|
33
41
|
/** What happened when the entry was dropped. */
|
|
34
42
|
export type DropResult = {
|
|
35
43
|
kind: 'dropped';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AA0BA,0CAA0C;AAC1C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAE3C;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,uCAAuC,CAAA;AAEhE,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAA;CACX;AAED
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AA0BA,0CAA0C;AAC1C,eAAO,MAAM,aAAa,iBAAiB,CAAA;AAE3C;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,uCAAuC,CAAA;AAEhE,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CASpH;AAqBD,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAiE3C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM9C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAiBhE;AAED,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAoC9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CA6BpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAqBlF"}
|
package/lib/host/manifest.js
CHANGED
|
@@ -42,10 +42,18 @@ export const JOURNAL_FILE = 'package.json.upgrader-journal.json';
|
|
|
42
42
|
* The harness exports this to every process it starts, so the value names the
|
|
43
43
|
* same profile the manager is working on rather than a guess from the disk.
|
|
44
44
|
*
|
|
45
|
+
* The desktop host is an exception: it spawns the plugin host with
|
|
46
|
+
* `cwd: this.projectDir` (the profile directory) and no `DSH_PROFILE*`
|
|
47
|
+
* variables in the child environment, so the env-only lookups both miss. In
|
|
48
|
+
* that case fall back to the working directory — but only when it really
|
|
49
|
+
* looks like a profile (its `package.json` parses and carries a `dsh.profile`
|
|
50
|
+
* object), so a random cwd can never be mistaken for one.
|
|
51
|
+
*
|
|
45
52
|
* @param env - the process environment.
|
|
53
|
+
* @param cwd - the working directory to fall back to (overridable in tests).
|
|
46
54
|
* @returns the absolute profile directory, or `undefined` when unknown.
|
|
47
55
|
*/
|
|
48
|
-
export function profileDirFrom(env = process.env) {
|
|
56
|
+
export function profileDirFrom(env = process.env, cwd = process.cwd()) {
|
|
49
57
|
const explicit = env.DSH_PROFILE_DIR;
|
|
50
58
|
if (typeof explicit === 'string' && explicit.trim() !== '')
|
|
51
59
|
return explicit.trim();
|
|
@@ -54,7 +62,29 @@ export function profileDirFrom(env = process.env) {
|
|
|
54
62
|
if (typeof home === 'string' && home.trim() !== '' && typeof name === 'string' && name.trim() !== '') {
|
|
55
63
|
return join(home.trim(), 'profiles', name.trim());
|
|
56
64
|
}
|
|
57
|
-
return
|
|
65
|
+
return profileDirFromCwd(cwd);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Recognise a profile directory by its manifest alone.
|
|
69
|
+
*
|
|
70
|
+
* @param cwd - the candidate directory.
|
|
71
|
+
* @returns the directory when its `package.json` carries a `dsh.profile` object.
|
|
72
|
+
*/
|
|
73
|
+
function profileDirFromCwd(cwd) {
|
|
74
|
+
try {
|
|
75
|
+
const parsed = JSON.parse(readFileSync(join(cwd, MANIFEST_FILE), 'utf8'));
|
|
76
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
77
|
+
return undefined;
|
|
78
|
+
const dsh = parsed['dsh'];
|
|
79
|
+
if (dsh === null || typeof dsh !== 'object' || Array.isArray(dsh))
|
|
80
|
+
return undefined;
|
|
81
|
+
if (typeof dsh['profile'] !== 'object')
|
|
82
|
+
return undefined;
|
|
83
|
+
return cwd;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
58
88
|
}
|
|
59
89
|
/**
|
|
60
90
|
* Read a profile manifest, or explain why it could not be read.
|
package/lib/host/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAA;AAE3C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oCAAoC,CAAA;AAYhE
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"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"}
|