@noob-stupid/dsh-plugin-console 0.5.87 → 0.5.93

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
@@ -461,12 +461,72 @@ Verification matrix, raw logs and the one framework-side caveat (`0.1.2-rc.1` sh
461
461
 
462
462
  ---
463
463
 
464
+ ### Update integrity
465
+
466
+ An update can be requested for a specific version. That version is carried into every download channel; if
467
+ a channel ends up with a different version, the job reports a failure with both versions named, and the
468
+ existing copy on disk is kept rather than replaced. The manifest and lock record a **version number** for
469
+ such packages — a normal install does not produce a `link:`.
470
+
471
+ Installs and updates are tracked per target: two different plugins can update at the same time, while the
472
+ same plugin cannot be started twice.
473
+
474
+ A finished install leaves two small records under `<DSH_HOME>/plugin-console/`:
475
+
476
+ - `pending-restart.json` — plugins that are installed but not yet loaded, so the panel can keep showing
477
+ "installed · takes effect after restart" across a host restart. Entries are dropped once the plugin is
478
+ actually loaded.
479
+ - `install-jobs.json` — the last fifty settled jobs, with the requested version, the version that landed,
480
+ and the error if any. A failure can therefore still be explained after the process that produced it is gone.
481
+
482
+ Drift between the manifest and the lock is reconciled in the background with a cooldown, without blocking
483
+ `/state`. Source-type dependencies (`link:`, `file:`, git) are excluded from that automation. A mismatch is
484
+ reported as a failure only when it would actually lose the plugin; a lock or version drift is shown as a
485
+ collapsible note instead.
486
+
487
+ ### Dev links (`link`)
488
+
489
+ `link:` is a **development** mechanism — ordinary download installs and updates do not produce it. The
490
+ `link` entry in the feature-pack toolbar is the working surface for it:
491
+
492
+ - pick a registered dev root from the dropdown, or type an absolute path;
493
+ - **Pin** is a two-step action: it first returns a read-only plan, and executes only after you confirm. No
494
+ code path skips that confirmation;
495
+ - each row shows the target directory and its last-modified time, which is how you tell whether it is the
496
+ directory you are editing right now;
497
+ - per-row actions appear only when they apply — **fill dependencies**, **build shims** (no pnpm run), and
498
+ **unpin**;
499
+ - **Browse…** is rendered only when the desktop preload bridge is present. On a web instance it is not
500
+ rendered, rather than shown as a button that cannot work.
501
+
502
+ ### Disable provenance
503
+
504
+ A row can be off for different reasons, and the panel distinguishes them:
505
+
506
+ - **disabled by this console's patch** — removing the patch block enables it normally;
507
+ - **disabled by the plugin or the framework default** — the console can only write an explicit
508
+ `disabled: false` override, which is what the **forced on by patch** badge refers to;
509
+ - **force-enable had no effect** — the override exists but the row still is not running, and no peer veto
510
+ explains it. That override can be revoked from the row.
511
+
512
+ ### Operational details
513
+
514
+ - Market enrichment runs behind a single limiter: four concurrent requests, one in flight per URL, a
515
+ ten-minute memory for failures and a five-minute success cache. A batch of unreachable mirrors therefore
516
+ cannot saturate the connection or delay installs.
517
+ - `Disk audit` lists what occupies `<DSH_HOME>/plugin-console` and deletes only after an explicit
518
+ confirmation. The framework rollback point counts as protected.
519
+ - The gate panel shows the current pending adaptations up front and keeps its history collapsed.
520
+
464
521
  ## Known limitations
465
522
 
466
- - Host code changes require a **service restart**: the panel's restart button only points at the
467
- **official path** (restart inside the desktop client; the console never kills or spawns a
468
- process — a manual relaunch would fight the host for the port and produce
469
- "The application could not start or stopped unexpectedly"); client changes just need a page refresh;
523
+ - Host code changes require a **service restart**; client changes only need a page refresh.
524
+ - On a **desktop-hosted** instance the console **refuses** to restart and says so: the official path is to
525
+ fully quit and reopen the client. It never kills or spawns a process there — a manual relaunch would
526
+ fight the host for the port and produce "The application could not start or stopped unexpectedly".
527
+ - On a **standalone (web) instance** the restart button is available: it relaunches detached, waits for
528
+ the port to free, and lets the old process exit gracefully. The toolbar entry is rendered only where it
529
+ can work — a desktop-hosted instance does not show it.
470
530
  - Live GitHub search depends on GitHub reachability (browser-direct + server fallback;
471
531
  during network-blackout windows retry later);
472
532
  - Version detection works for npm-published packages; skill-type repos have no version concept;