@trops/dash-core 0.1.527 → 0.1.528

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.
@@ -62299,7 +62299,11 @@ function buildGrantsListing$1(
62299
62299
  });
62300
62300
  }
62301
62301
 
62302
- // Orphan grants: granted but not in the installed list.
62302
+ // Orphan grants: granted but not in the installed list. Honor any
62303
+ // declared block the controller resolved for this dotted-form grant
62304
+ // key — see widgetPermissions.dottedComponentIdToPackageId, which
62305
+ // bridges grant keys (`trops.gmail.GmailCompose`) to on-disk package
62306
+ // paths (`@trops/gmail`).
62303
62307
  for (const [widgetId, grant] of grants) {
62304
62308
  if (seen.has(widgetId)) continue;
62305
62309
  const grantOrigin =
@@ -62308,11 +62312,12 @@ function buildGrantsListing$1(
62308
62312
  typeof grant.grantOrigin === "string"
62309
62313
  ? grant.grantOrigin
62310
62314
  : null;
62315
+ const decl = declared.get(widgetId) || null;
62311
62316
  rows.push({
62312
62317
  widgetId,
62313
- declared: null,
62318
+ declared: decl,
62314
62319
  granted: grant,
62315
- hasManifest: false,
62320
+ hasManifest: decl !== null,
62316
62321
  grantOrigin,
62317
62322
  });
62318
62323
  }
@@ -62568,6 +62573,17 @@ function setupWidgetMcpGrantsHandlers() {
62568
62573
  const declared = getWidgetMcpPermissions(widgetId);
62569
62574
  if (declared) declaredByWidget.set(widgetId, declared);
62570
62575
  }
62576
+ // Also resolve declared blocks for every dotted-form grant key.
62577
+ // getWidgetMcpPermissions translates dotted ids to npm package
62578
+ // paths internally, so the same package's manifest is shared
62579
+ // across all of its components. Without this, orphan-grant rows
62580
+ // ship to the renderer with declared:null and every granted tool
62581
+ // looks "stale" in Settings → Privacy.
62582
+ for (const widgetId of grantsByWidget.keys()) {
62583
+ if (declaredByWidget.has(widgetId)) continue;
62584
+ const declared = getWidgetMcpPermissions(widgetId);
62585
+ if (declared) declaredByWidget.set(widgetId, declared);
62586
+ }
62571
62587
 
62572
62588
  return buildGrantsListing(
62573
62589
  installedWidgets,