git:20260914.69e08a2 to git:20260923.b86e94b

2 added, 2 removed. Audit A to A.

# DOX — packages/browser-plugin
Files in this directory. One row per source file. See change: add-browser-relay.
| File | Purpose |
|------|---------|
| `README.md` | Package overview. CDP relay plugin: extension-dial-in per-guid instances, per-profile SSO tokens (writeOnly), screencast live-view tiles. Vendored playwright-core relay pointer. |
| `package.json` | pi-dashboard-plugin manifest. id `browser`, priority 500, `defaultEnabled: false` (opt-in — design Migration Plan step 2 / GAP B). Claims `settings-section`→`BrowserSettings`, `session-card-badge`→`BrowserRelayBadge` (always-mounted `browser_relay_status` subscriber feeding the relay store), `content-view`→`LiveViewTile` (predicate `isLiveViewActive` = `hasLiveInstance()`). server `./src/server/index.ts`, client `./src/client/index.tsx`, `configSchema: ./configSchema.json`. Deps: runtime, shared, `ws`, `debug` (declared properly — was phantom transitive). devDeps `@types/ws`+`@types/debug` (vendored code imports both). |
| `configSchema.json` | draft-07 plugin config, persisted `plugins.browser.*`. `enabled` (default false — kill switch), `defaultBrowser`, `allowMultipleInstancesPerProfile` (default false; user decision under task 2.2b — both busy/multi paths behind one flag), `browsers.<profileDirectory>.{token (writeOnly:true), zeroDialog, allowedDomains}`. `token` writeOnly → `redactWriteOnly` strips it from every client-facing payload (spec browser-plugin-settings F2). |
- | `tsconfig.json` | Extends `../../tsconfig.base.json`. jsx react-jsx, noEmit. Bare vendor specifiers (`@isomorphic/*`, `@utils/wsServer`) resolve via `paths` in tsconfig.base.json (single source — a child `paths` key would clobber base's pi-* mappings). |
- | `vitest.config.ts` | Vitest project. jsdom, forks pool, react plugin, `PARALLEL_MAX_WORKERS`. `resolve.alias` ARRAY form: shared→worktree-local src + anchored regex aliases for the four vendor bare specifiers (`@isomorphic/time` is a PREFIX of `@isomorphic/timeoutRunner` — regex keys are exact-match). Registered in ROOT `vitest.config.ts` `test.projects`. |
+ | `tsconfig.json` | Extends `../../tsconfig.base.json`. jsx react-jsx, noEmit. No vendor `paths` — the vendored relay's specifiers are package-relative, so nothing resolves through tsconfig. |
+ | `vitest.config.ts` | Vitest project. jsdom, forks pool, react plugin, `PARALLEL_MAX_WORKERS`. `resolve.alias` maps ONLY `@blackbelt-technology/pi-dashboard-shared`→worktree-local src (worktree-local shared wins over the hoisted symlink). No vendor aliases: the vendored relay imports `../../../../shims/*.js` relative to itself. Registered in ROOT `vitest.config.ts` `test.projects`. |