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 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.7+, so every key it
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 an older panel does not send the field.
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` arrived in home-hosted 0.6.0 and `persistent` in 0.6.3, and an older panel
39
- handed either key can refuse to *boot* from the config. The plugin used to consult the answering
40
- panel's version and refuse or drop them (`KILL_UNSUPPORTED`). That is gone on purpose: it pins
41
- `home-hosted@^0.7.21` and autostarts its own copy, so a panel older than those keys is only reachable by
42
- deliberately preferring an old global install — and this is pre-1.0. Supporting older panels again means
43
- bringing that check back from history, not re-deriving it.
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. A capability that needs a *newer* 0.7.x degrades rather than raising
55
- the floor: `logs` (0.7.12) is a file read either way, and `restart <id>` (0.7.13) falls back to the
56
- stop/start pair it replaced.
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
@@ -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 fixed through one action that runs `home-hosted migrate --yes` — the same relocation a
46
- first 0.7 start does on its own.
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; a restart is now the CLI's own `restart <id>` (home-hosted
80
- 0.7.13), which is what the panel's UI does and leaves no window in which the entry is down. A
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