dsh-home-hosted 0.7.7 → 0.8.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/README.md +1 -1
- package/docs/BOOT.md +1 -1
- package/docs/DESIGN.md +8 -6
- package/docs/PANEL.md +9 -3
- package/docs/WORKSPACES.md +4 -8
- package/lib/client.js +15 -8
- package/lib/index.js +17 -54
- package/lib/index.js.map +3 -3
- package/lib/types/home-hosted/launch.d.ts +0 -1
- package/lib/types/home-hosted/layout.d.ts +6 -5
- package/lib/types/home-hosted/resolve.d.ts +8 -3
- package/lib/types/service.d.ts +4 -12
- package/lib/types/shared/contracts.d.ts +1 -3
- package/lib/types/util/exec.d.ts +7 -4
- package/lib/types/util/fsx.d.ts +0 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -179,7 +179,7 @@ Topic docs, one per area — written for whoever has to touch it next:
|
|
|
179
179
|
|
|
180
180
|
One entry (`dsh`), one toggle: the panel keeps it alive, restarts it and reclaims its port. A
|
|
181
181
|
detached restart is recognised on macOS and Linux (`follow`); Windows cannot prove identity through
|
|
182
|
-
a `.cmd` shim, so it uses `onPortConflict: kill`. The plugin pins home-hosted 0.
|
|
182
|
+
a `.cmd` shim, so it uses `onPortConflict: kill`. The plugin pins home-hosted 0.8+, so every key it
|
|
183
183
|
writes is one that panel parses.
|
|
184
184
|
<sub>Web only — see **dsh Desktop** above.</sub>
|
|
185
185
|
|
package/docs/BOOT.md
CHANGED
|
@@ -232,7 +232,7 @@ would be: `BootStatus.recommended` is the host's own `recommend()` answer, and `
|
|
|
232
232
|
to it when nothing is installed (`pickOf(mechanism ?? before.mechanism ?? before.recommended)`). So
|
|
233
233
|
"Automatic" says which mechanism the next install would use, instead of leaving a person to install it
|
|
234
234
|
and read the result. The sentence is only shown while nothing is installed under that mechanism, and it
|
|
235
|
-
is absent — never "undefined" — when
|
|
235
|
+
is absent — never "undefined" — when a response omits the field.
|
|
236
236
|
|
|
237
237
|
The `Details` block describes the mechanism that is actually **installed**, which is a different one
|
|
238
238
|
while a switch is pending, so both it and the picker read one shared lookup rather than each formatting
|
package/docs/DESIGN.md
CHANGED
|
@@ -35,12 +35,14 @@ its page.
|
|
|
35
35
|
|
|
36
36
|
## Config compatibility was dropped, deliberately
|
|
37
37
|
|
|
38
|
-
`onPortConflict: kill`
|
|
39
|
-
|
|
40
|
-
panel's version and refuse or drop
|
|
41
|
-
`home-hosted@^0.
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
`onPortConflict: kill` (0.6.0), `persistent` (0.6.3), `restart <id>` (0.7.13) and the nullable-`label`
|
|
39
|
+
patch (0.7.21) all predate the release this plugin pins. The plugin used to consult the answering
|
|
40
|
+
panel's version and refuse or drop those keys (`KILL_UNSUPPORTED`), and later to retry a `restart` as a
|
|
41
|
+
stop-then-start pair. Both are gone: it pins `home-hosted@^0.8.0`, which refuses an older panel
|
|
42
|
+
outright, so neither check could ever fire again.
|
|
43
|
+
|
|
44
|
+
An old state root is upgraded by running the latest 0.7.x **once, before installing 0.8** — its first
|
|
45
|
+
run moves the state into `.hh/`.
|
|
44
46
|
|
|
45
47
|
## Tests
|
|
46
48
|
|
package/docs/PANEL.md
CHANGED
|
@@ -51,9 +51,15 @@ Verified against a real 0.7.20 panel and its own CLI: `PATCH {port:null}` delete
|
|
|
51
51
|
and `bootstrap` have a schema that admits `null`; `_hh` is still exactly four routes; and every route,
|
|
52
52
|
subcommand and flag this plugin drives is unchanged. The console **file** — `.hh/.logs/home-hosted.log`
|
|
53
53
|
plus its `.1`, and the 5 MB rotation — is unchanged too, and this plugin's reader still matches
|
|
54
|
-
`home-hosted logs` line for line.
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
`home-hosted logs` line for line.
|
|
55
|
+
|
|
56
|
+
**0.8.0 stopped relocating an old state root, and this plugin follows it.** A 0.6.x root used to be
|
|
57
|
+
moved into `.hh/` on 0.7's first run; 0.8 refuses it instead, before any command resolves a path into
|
|
58
|
+
it, so a config at the old paths is never read as an empty panel. **Upgrading from 0.7 or earlier? Run
|
|
59
|
+
the latest 0.7.x once first — that release moves the state — then install 0.8.** The plugin's floor is
|
|
60
|
+
`0.8.0` for the same reason, so a 0.7.x panel is reported as unsupported rather than driven. That
|
|
61
|
+
removed the last version-conditional code here: a stop-then-start fallback for a panel without
|
|
62
|
+
`restart <id>`, and `panel.migrate`, whose CLI no longer performs the move.
|
|
57
63
|
|
|
58
64
|
**0.7.21 widens that nullable set by one field, and it closed a bug here.** Clearing a server's label
|
|
59
65
|
sent an empty string, which the panel accepts and saves — so the entry kept a blank label instead of
|
package/docs/WORKSPACES.md
CHANGED
|
@@ -42,8 +42,8 @@ machines. The RPC endpoint still defaults an absent value (the page always sends
|
|
|
42
42
|
call should not break), but a model is never left to guess.
|
|
43
43
|
|
|
44
44
|
A pre-0.7 root is not read or written at all. It is recognised (`legacyRoot` on the status), refused on
|
|
45
|
-
every write, and
|
|
46
|
-
|
|
45
|
+
every write, and the refusal names the one remedy: run the latest 0.7.x once — its first run moves the
|
|
46
|
+
state into `.hh/` — before installing 0.8. Nothing is changed or deleted by the refusal.
|
|
47
47
|
|
|
48
48
|
## Several panels on one machine
|
|
49
49
|
|
|
@@ -76,12 +76,8 @@ that endpoint has, least invasive first:
|
|
|
76
76
|
credential, but no live status either, and a running panel applies a changed definition at that
|
|
77
77
|
entry's next start;
|
|
78
78
|
- `cli` runs the CLI against its state root — the only runtime path the panel itself offers.
|
|
79
|
-
`start`/`stop` act on one entry
|
|
80
|
-
|
|
81
|
-
local panel older than that refused the command before touching anything, so the plugin falls
|
|
82
|
-
back to the stop-then-start pair and reports `downgraded` in the result — the refusal is
|
|
83
|
-
detected from the CLI's own text, including the `Unexpected argument` a 0.7.12 CLI prints for
|
|
84
|
-
the positional id;
|
|
79
|
+
`start`/`stop` act on one entry, and a restart is the CLI's own `restart <id>`, which is what the
|
|
80
|
+
panel's UI does and leaves no window in which the entry is down;
|
|
85
81
|
- `api` mints a token for that panel, enrols it and uses its HTTP API — the only way to get live
|
|
86
82
|
status, and it replaces any token that panel had, which the question says outright.
|
|
87
83
|
|