@dimina-kit/devtools 0.4.0-dev.20260717120050 → 0.4.0-dev.20260718085557

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.
@@ -4,6 +4,7 @@ import type { BridgeRouterHandle } from '../ipc/bridge-router.js';
4
4
  import type { ConsoleForwarder } from './console-forward/index.js';
5
5
  import type { DiagnosticsBus } from './diagnostics/index.js';
6
6
  import type { NetworkForwarder } from './network-forward/index.js';
7
+ import { type CdpSessionBroker } from './cdp-session/index.js';
7
8
  import type { AppDataTap } from './simulator-appdata/index.js';
8
9
  import type { StorageApi } from './simulator-storage/index.js';
9
10
  import type { SyncStorageChange } from '../../shared/ipc-channels.js';
@@ -119,6 +120,14 @@ export interface WorkbenchContext {
119
120
  * `own()`-ing their per-endpoint resources and observing `reset`/`closed`.
120
121
  */
121
122
  connections: ConnectionRegistry;
123
+ /**
124
+ * Single owner of every render-guest `wc.debugger` (CDP) session: safe-area,
125
+ * elements-forward, render-inspect and network-forward all `acquire()` a
126
+ * lease from this instead of each hand-rolling their own attach/reuse/detach
127
+ * bookkeeping (see cdp-session/index.ts's design doc for why that duplication
128
+ * was a real bug, not just repetition).
129
+ */
130
+ cdpSessionBroker: CdpSessionBroker;
122
131
  /**
123
132
  * Accessor over the bridge-router's private state, set by `installBridgeRouter`.
124
133
  * Lets other main services (simulator-storage, automation, appdata) resolve
@@ -1,3 +1,4 @@
1
+ import { createCdpSessionBroker } from './cdp-session/index.js';
1
2
  import { createConnectionRegistry, DisposableRegistry, } from '@dimina-kit/electron-deck/main';
2
3
  import { createWorkbenchSenderPolicy } from '../utils/sender-policy.js';
3
4
  import { defaultAdapter } from './default-adapter.js';
@@ -26,6 +27,8 @@ export function createWorkbenchContext(opts) {
26
27
  // NOT here — the constructor stays side-effect-free so focused unit tests can
27
28
  // build a context with a minimal mainWindow fake.
28
29
  ctx.connections = createConnectionRegistry();
30
+ ctx.cdpSessionBroker = createCdpSessionBroker({ connections: ctx.connections });
31
+ ctx.registry.add(() => ctx.cdpSessionBroker.dispose());
29
32
  ctx.trustedWindowSenderIds = new Map();
30
33
  ctx.simulatorApis = createSimulatorApiRegistry();
31
34
  ctx.windows = createWindowService(opts.mainWindow);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dimina-kit/devtools",
3
- "version": "0.4.0-dev.20260717120050",
3
+ "version": "0.4.0-dev.20260718085557",
4
4
  "description": "Dimina DevTools - modular developer tools for mini app debugging",
5
5
  "keywords": [
6
6
  "dimina",
@@ -85,10 +85,10 @@
85
85
  "chrome-remote-interface": "^0.34.0",
86
86
  "ws": "^8.20.0",
87
87
  "zod": "^4.3.6",
88
- "@dimina-kit/devkit": "0.1.2-dev.20260717120050",
89
- "@dimina-kit/electron-deck": "0.1.0-dev.20260717120050",
90
- "@dimina-kit/inspect": "0.4.0-dev.20260717120050",
91
- "@dimina-kit/view-anchor": "0.1.0-dev.20260717120050"
88
+ "@dimina-kit/devkit": "0.1.2-dev.20260718085557",
89
+ "@dimina-kit/electron-deck": "0.1.0-dev.20260718085557",
90
+ "@dimina-kit/view-anchor": "0.1.0-dev.20260718085557",
91
+ "@dimina-kit/inspect": "0.4.0-dev.20260718085557"
92
92
  },
93
93
  "devDependencies": {
94
94
  "@playwright/test": "^1.59.1",