@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 +64 -4
- package/lib/client.js +1109 -78
- package/lib/server/domain/framework.js +7 -0
- package/lib/server/domain/plugin-annotations.js +569 -0
- package/lib/server/domain/update-batch.js +181 -0
- package/lib/server/routes/annotations.js +82 -0
- package/lib/server/routes/framework.js +137 -120
- package/lib/server/routes/index.js +12 -0
- package/lib/server/routes/update-batch.js +97 -0
- package/package.json +1 -1
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
|
|
467
|
-
**
|
|
468
|
-
|
|
469
|
-
|
|
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;
|