dsh-plugin-shop 0.9.0-beta.2 → 0.9.0

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/lib/index.js CHANGED
@@ -4434,7 +4434,7 @@ function outcomeByRule(change, context) {
4434
4434
  };
4435
4435
  if (change.application === "applied" || change.application === "overridden") {
4436
4436
  const note = change.application === "overridden" ? { detail: "Saved, but a higher-priority layer (the home or invocation patch) decides whether it runs." } : {};
4437
- if (context.operation !== "uninstall" && context.alreadyImported) return {
4437
+ if (context.operation !== "uninstall" && context.alreadyImported && !(change.application === "applied" && context.reconcilesRunningPlugins)) return {
4438
4438
  state: "done",
4439
4439
  activation: "restart",
4440
4440
  restartReason: "already-loaded",
@@ -5200,6 +5200,17 @@ let ShopGateway = (() => {
5200
5200
  pluginManager() {
5201
5201
  return asPluginManager(this.ctx.get?.("pluginManager"));
5202
5202
  }
5203
+ /** Whether the running harness's profile reconcile replaces a running
5204
+ * plugin whose files changed on disk: dsh-hmr 0.2.1's `reconcileProfile`,
5205
+ * absent on 0.1.7 and 0.2.0 (whose hmr has only
5206
+ * `reconcileProfilePatches`) and on 0.1.5 (no hmr service). Read for what
5207
+ * `managerOutcome` makes of an `applied` answer on a name this process
5208
+ * imported (design 2026-10-19-dsh-021-readiness §2). A harness that offers
5209
+ * no service, or one without the method, answers false and keeps the
5210
+ * restart. */
5211
+ reconcilesRunningPlugins() {
5212
+ return typeof (this.ctx.get?.("hmr"))?.reconcileProfile === "function";
5213
+ }
5203
5214
  /** "Does this installation provide `spec`?", asked from `anchor`: the
5204
5215
  * harness's own resolution in front of the walk where the harness has one,
5205
5216
  * the walk alone where it has not. */
@@ -5954,6 +5965,7 @@ let ShopGateway = (() => {
5954
5965
  operation,
5955
5966
  alreadyImported,
5956
5967
  hasClientHalf,
5968
+ reconcilesRunningPlugins: this.reconcilesRunningPlugins(),
5957
5969
  desktop: isDesktopProfile(this.profile),
5958
5970
  timeoutMs: INSTALL_TIMEOUT_MS
5959
5971
  };
@@ -202,7 +202,7 @@ export const TYPERT = {
202
202
  schema: dsh_plugin_shop_shop_catalog_result$schema,
203
203
  create: () => dsh_plugin_shop_shop_catalog_result$schema,
204
204
  },
205
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1301,"column":9},
205
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1314,"column":9},
206
206
  },
207
207
  {
208
208
  id: 'dsh-plugin-shop#shop/installed',
@@ -218,7 +218,7 @@ export const TYPERT = {
218
218
  schema: dsh_plugin_shop_shop_installed_result$schema,
219
219
  create: () => dsh_plugin_shop_shop_installed_result$schema,
220
220
  },
221
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1804,"column":9},
221
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1821,"column":9},
222
222
  },
223
223
  {
224
224
  id: 'dsh-plugin-shop#shop/installedSpecs',
@@ -234,7 +234,7 @@ export const TYPERT = {
234
234
  schema: dsh_plugin_shop_shop_installedSpecs_result$schema,
235
235
  create: () => dsh_plugin_shop_shop_installedSpecs_result$schema,
236
236
  },
237
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1795,"column":9},
237
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1812,"column":9},
238
238
  },
239
239
  {
240
240
  id: 'dsh-plugin-shop#shop/installStart',
@@ -262,7 +262,7 @@ export const TYPERT = {
262
262
  schema: dsh_plugin_shop_shop_installStart_result$schema,
263
263
  create: () => dsh_plugin_shop_shop_installStart_result$schema,
264
264
  },
265
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1427,"column":9},
265
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1440,"column":9},
266
266
  },
267
267
  {
268
268
  id: 'dsh-plugin-shop#shop/installStatus',
@@ -289,7 +289,7 @@ export const TYPERT = {
289
289
  schema: dsh_plugin_shop_shop_installStatus_result$schema,
290
290
  create: () => dsh_plugin_shop_shop_installStatus_result$schema,
291
291
  },
292
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1771,"column":3},
292
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1788,"column":3},
293
293
  },
294
294
  {
295
295
  id: 'dsh-plugin-shop#shop/restart',
@@ -305,7 +305,7 @@ export const TYPERT = {
305
305
  schema: dsh_plugin_shop_shop_restart_result$schema,
306
306
  create: () => dsh_plugin_shop_shop_restart_result$schema,
307
307
  },
308
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2055,"column":9},
308
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2072,"column":9},
309
309
  },
310
310
  {
311
311
  id: 'dsh-plugin-shop#shop/setEnabled',
@@ -332,7 +332,7 @@ export const TYPERT = {
332
332
  schema: dsh_plugin_shop_shop_setEnabled_result$schema,
333
333
  create: () => dsh_plugin_shop_shop_setEnabled_result$schema,
334
334
  },
335
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":953,"column":9},
335
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":966,"column":9},
336
336
  },
337
337
  {
338
338
  id: 'dsh-plugin-shop#shop/uninstallStart',
@@ -360,7 +360,7 @@ export const TYPERT = {
360
360
  schema: dsh_plugin_shop_shop_uninstallStart_result$schema,
361
361
  create: () => dsh_plugin_shop_shop_uninstallStart_result$schema,
362
362
  },
363
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1949,"column":9},
363
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1966,"column":9},
364
364
  },
365
365
  {
366
366
  id: 'dsh-plugin-shop#shop/updateStart',
@@ -387,7 +387,7 @@ export const TYPERT = {
387
387
  schema: dsh_plugin_shop_shop_updateStart_result$schema,
388
388
  create: () => dsh_plugin_shop_shop_updateStart_result$schema,
389
389
  },
390
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2162,"column":9},
390
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2179,"column":9},
391
391
  },
392
392
  {
393
393
  id: 'dsh-plugin-shop#shop/version',
@@ -403,7 +403,7 @@ export const TYPERT = {
403
403
  schema: dsh_plugin_shop_shop_version_result$schema,
404
404
  create: () => dsh_plugin_shop_shop_version_result$schema,
405
405
  },
406
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2119,"column":9},
406
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2136,"column":9},
407
407
  },
408
408
  ],
409
409
  model: {
@@ -199,7 +199,7 @@ export const TYPERT_REMOTE = {
199
199
  schema: dsh_plugin_shop_shop_catalog_result$schema,
200
200
  create: () => dsh_plugin_shop_shop_catalog_result$schema,
201
201
  },
202
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1301,"column":9},
202
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1314,"column":9},
203
203
  },
204
204
  {
205
205
  id: 'dsh-plugin-shop#shop/installed',
@@ -215,7 +215,7 @@ export const TYPERT_REMOTE = {
215
215
  schema: dsh_plugin_shop_shop_installed_result$schema,
216
216
  create: () => dsh_plugin_shop_shop_installed_result$schema,
217
217
  },
218
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1804,"column":9},
218
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1821,"column":9},
219
219
  },
220
220
  {
221
221
  id: 'dsh-plugin-shop#shop/installedSpecs',
@@ -231,7 +231,7 @@ export const TYPERT_REMOTE = {
231
231
  schema: dsh_plugin_shop_shop_installedSpecs_result$schema,
232
232
  create: () => dsh_plugin_shop_shop_installedSpecs_result$schema,
233
233
  },
234
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1795,"column":9},
234
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1812,"column":9},
235
235
  },
236
236
  {
237
237
  id: 'dsh-plugin-shop#shop/installStart',
@@ -259,7 +259,7 @@ export const TYPERT_REMOTE = {
259
259
  schema: dsh_plugin_shop_shop_installStart_result$schema,
260
260
  create: () => dsh_plugin_shop_shop_installStart_result$schema,
261
261
  },
262
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1427,"column":9},
262
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1440,"column":9},
263
263
  },
264
264
  {
265
265
  id: 'dsh-plugin-shop#shop/installStatus',
@@ -286,7 +286,7 @@ export const TYPERT_REMOTE = {
286
286
  schema: dsh_plugin_shop_shop_installStatus_result$schema,
287
287
  create: () => dsh_plugin_shop_shop_installStatus_result$schema,
288
288
  },
289
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1771,"column":3},
289
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1788,"column":3},
290
290
  },
291
291
  {
292
292
  id: 'dsh-plugin-shop#shop/restart',
@@ -302,7 +302,7 @@ export const TYPERT_REMOTE = {
302
302
  schema: dsh_plugin_shop_shop_restart_result$schema,
303
303
  create: () => dsh_plugin_shop_shop_restart_result$schema,
304
304
  },
305
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2055,"column":9},
305
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2072,"column":9},
306
306
  },
307
307
  {
308
308
  id: 'dsh-plugin-shop#shop/setEnabled',
@@ -329,7 +329,7 @@ export const TYPERT_REMOTE = {
329
329
  schema: dsh_plugin_shop_shop_setEnabled_result$schema,
330
330
  create: () => dsh_plugin_shop_shop_setEnabled_result$schema,
331
331
  },
332
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":953,"column":9},
332
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":966,"column":9},
333
333
  },
334
334
  {
335
335
  id: 'dsh-plugin-shop#shop/uninstallStart',
@@ -357,7 +357,7 @@ export const TYPERT_REMOTE = {
357
357
  schema: dsh_plugin_shop_shop_uninstallStart_result$schema,
358
358
  create: () => dsh_plugin_shop_shop_uninstallStart_result$schema,
359
359
  },
360
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1949,"column":9},
360
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":1966,"column":9},
361
361
  },
362
362
  {
363
363
  id: 'dsh-plugin-shop#shop/updateStart',
@@ -384,7 +384,7 @@ export const TYPERT_REMOTE = {
384
384
  schema: dsh_plugin_shop_shop_updateStart_result$schema,
385
385
  create: () => dsh_plugin_shop_shop_updateStart_result$schema,
386
386
  },
387
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2162,"column":9},
387
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2179,"column":9},
388
388
  },
389
389
  {
390
390
  id: 'dsh-plugin-shop#shop/version',
@@ -400,7 +400,7 @@ export const TYPERT_REMOTE = {
400
400
  schema: dsh_plugin_shop_shop_version_result$schema,
401
401
  create: () => dsh_plugin_shop_shop_version_result$schema,
402
402
  },
403
- sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2119,"column":9},
403
+ sourceLocation: {"file":"packages/dsh-plugin-shop/src/host/index.ts","line":2136,"column":9},
404
404
  },
405
405
  ],
406
406
  }
@@ -464,6 +464,15 @@ export declare class ShopGateway extends TypertRemoteService {
464
464
  * refuses for that profile. Design 2026-09-26-plugin-manager-delegation,
465
465
  * section 3.1. */
466
466
  private pluginManager;
467
+ /** Whether the running harness's profile reconcile replaces a running
468
+ * plugin whose files changed on disk: dsh-hmr 0.2.1's `reconcileProfile`,
469
+ * absent on 0.1.7 and 0.2.0 (whose hmr has only
470
+ * `reconcileProfilePatches`) and on 0.1.5 (no hmr service). Read for what
471
+ * `managerOutcome` makes of an `applied` answer on a name this process
472
+ * imported (design 2026-10-19-dsh-021-readiness §2). A harness that offers
473
+ * no service, or one without the method, answers false and keeps the
474
+ * restart. */
475
+ private reconcilesRunningPlugins;
467
476
  /** "Does this installation provide `spec`?", asked from `anchor`: the
468
477
  * harness's own resolution in front of the walk where the harness has one,
469
478
  * the walk alone where it has not. */
@@ -87,6 +87,11 @@ export interface OutcomeContext {
87
87
  operation: 'install' | 'update' | 'uninstall';
88
88
  /** The gateway's `imported` record holds the name (market borrowings section 1). */
89
89
  alreadyImported: boolean;
90
+ /** Whether the running harness replaces a running plugin whose files
91
+ * changed on disk at a profile reconcile — dsh-hmr 0.2.1's
92
+ * `reconcileProfile`. False through 0.2.0, whose hmr has only
93
+ * `reconcileProfilePatches`, and on 0.1.5, which has no hmr service. */
94
+ reconcilesRunningPlugins: boolean;
90
95
  hasClientHalf: boolean;
91
96
  /** The desktop profile, whose readers can run no `dsh plugin` command. */
92
97
  desktop: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-shop",
3
- "version": "0.9.0-beta.2",
3
+ "version": "0.9.0",
4
4
  "description": "The DeepSeek Harness plugin shop: browse, install, enable, and update dsh plugins from a git-auditable catalog.",
5
5
  "icon": "./assets/icon.png",
6
6
  "keywords": [