dsh-zen-remote 2.3.7 → 2.3.9
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/CHANGELOG.md +41 -0
- package/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/docs/interface.md +1 -1
- package/docs/remote-access.en.md +1 -1
- package/docs/remote-access.md +1 -1
- package/lib/adapters/dsh-better-sidebar/index.js +21 -3
- package/lib/adapters/dsh-better-sidebar/index.js.map +1 -1
- package/lib/client.js +470 -81
- package/lib/merge-streams.js +55 -19
- package/lib/merge-streams.js.map +1 -1
- package/lib/relay-filter.js +4 -3
- package/lib/relay-filter.js.map +1 -1
- package/lib/relay-server.js +5 -3
- package/lib/relay-server.js.map +1 -1
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts +1 -1
- package/lib/types/adapters/dsh-better-sidebar/index.d.ts.map +1 -1
- package/lib/types/client/MobileHome.d.ts.map +1 -1
- package/lib/types/client/MobileSessionHeader.d.ts.map +1 -1
- package/lib/types/client/effects/native-trigger-overlay.d.ts.map +1 -1
- package/lib/types/client/effects/permission-sheet.d.ts +51 -10
- package/lib/types/client/effects/permission-sheet.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +1 -0
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/settings/SettingsSection.d.ts.map +1 -1
- package/lib/types/client/styles/composer.css.d.ts +1 -1
- package/lib/types/client/styles/composer.css.d.ts.map +1 -1
- package/lib/types/client/styles/header.css.d.ts +1 -1
- package/lib/types/client/styles/header.css.d.ts.map +1 -1
- package/lib/types/client/styles/layout.css.d.ts +1 -1
- package/lib/types/client/styles/layout.css.d.ts.map +1 -1
- package/lib/types/client/wizard/GatewayWizard.d.ts.map +1 -1
- package/lib/types/client-data/new-session.d.ts +26 -0
- package/lib/types/client-data/new-session.d.ts.map +1 -0
- package/lib/types/client-data/settings-form.d.ts +36 -0
- package/lib/types/client-data/settings-form.d.ts.map +1 -1
- package/lib/types/merge-streams.d.ts +27 -0
- package/lib/types/merge-streams.d.ts.map +1 -1
- package/lib/types/relay-filter.d.ts +4 -3
- package/lib/types/relay-filter.d.ts.map +1 -1
- package/lib/types/relay-server.d.ts.map +1 -1
- package/package.json +4 -2
- package/scripts/check-settings-form.mjs +63 -0
- package/src/adapters/dsh-better-sidebar/index.ts +23 -3
- package/src/client/MobileHome.tsx +44 -7
- package/src/client/MobileSessionHeader.tsx +7 -1
- package/src/client/effects/native-trigger-overlay.ts +50 -11
- package/src/client/effects/permission-sheet.ts +199 -22
- package/src/client/locales.ts +2 -0
- package/src/client/settings/SettingsSection.tsx +43 -1
- package/src/client/styles/composer.css.ts +24 -0
- package/src/client/styles/header.css.ts +58 -46
- package/src/client/styles/layout.css.ts +25 -0
- package/src/client/wizard/GatewayWizard.tsx +23 -1
- package/src/client-data/new-session.ts +30 -0
- package/src/client-data/settings-form.ts +57 -0
- package/src/merge-streams.ts +71 -16
- package/src/relay-filter.ts +4 -3
- package/src/relay-server.ts +5 -3
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UX-3 — what tapping the phone home screen's "+ 新建会话" FAB should do.
|
|
3
|
+
*
|
|
4
|
+
* Entering a blank session with NO workspace leaves the phone dangling in
|
|
5
|
+
* the hero's inert "choose a workspace" state (the host's `marshal-main`
|
|
6
|
+
* belongs to no workspace, so the "all" filter often resolves to
|
|
7
|
+
* `undefined`). Decide BEFORE entering:
|
|
8
|
+
*
|
|
9
|
+
* - a workspace is already selected → start there;
|
|
10
|
+
* - exactly one workspace exists (or none at all) → start with it
|
|
11
|
+
* (`undefined` keeps a no-workspace host usable);
|
|
12
|
+
* - several workspaces and none selected → the FAB opens the same
|
|
13
|
+
* bottom-sheet workspace drawer the title bar uses, and the session only
|
|
14
|
+
* starts once one is picked.
|
|
15
|
+
*
|
|
16
|
+
* Pure: no DOM, no imports — MobileHome calls it inside the FAB's onClick
|
|
17
|
+
* and test/permission-sheet.test.cjs drives it directly.
|
|
18
|
+
*/
|
|
19
|
+
export type NewSessionAction<W extends string> = {
|
|
20
|
+
kind: 'start';
|
|
21
|
+
workspaceId: W | undefined;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'pick-workspace';
|
|
24
|
+
};
|
|
25
|
+
export declare function decideNewSessionAction<W extends string>(selectedWorkspaceId: W | undefined, workspaceIds: readonly W[]): NewSessionAction<W>;
|
|
26
|
+
//# sourceMappingURL=new-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-session.d.ts","sourceRoot":"","sources":["../../../src/client-data/new-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,CAAC,GAAG,SAAS,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAA;AAE9B,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,mBAAmB,EAAE,CAAC,GAAG,SAAS,EAClC,YAAY,EAAE,SAAS,CAAC,EAAE,GACzB,gBAAgB,CAAC,CAAC,CAAC,CAIrB"}
|
|
@@ -282,6 +282,42 @@ export declare function normalizePairingCode(input: string): string;
|
|
|
282
282
|
* save — a follow mid-typing would clobber it).
|
|
283
283
|
*/
|
|
284
284
|
export declare function shouldFollowServerDeviceName(deviceName: string, rowName: string, hasDraft: boolean): boolean;
|
|
285
|
+
/**
|
|
286
|
+
* Whether one successful client-side activation (a staged-save role switch, a
|
|
287
|
+
* first pairing) needs a page reload: the backend's restart-watcher only
|
|
288
|
+
* installs the stream interceptor when the row reloads into client mode, and
|
|
289
|
+
* the page's three resident global streams were opened under whatever gateway
|
|
290
|
+
* object was current AT LOAD TIME. Without a reload they stay unwrapped and
|
|
291
|
+
* the server's remote sessions never enter the merged sidebar lists.
|
|
292
|
+
*
|
|
293
|
+
* - A write that did not land, or a save that is not heading to `client`,
|
|
294
|
+
* never reloads.
|
|
295
|
+
* - A host→client switch always reloads: the streams predate the interceptor.
|
|
296
|
+
* - An already-client page reloads only when the diagnostics say the
|
|
297
|
+
* interceptor was NOT yet active (`streamInterceptAlreadyActive === false`).
|
|
298
|
+
* `undefined` — an older server that answers no diagnostics — is UNKNOWN and
|
|
299
|
+
* stays on the safe no-reload side (a re-pairing must not needlessly reload).
|
|
300
|
+
*/
|
|
301
|
+
export interface ClientActivationReloadInput {
|
|
302
|
+
/** Whether the page was ALREADY an effective client before this operation. */
|
|
303
|
+
wasEffectiveClient: boolean;
|
|
304
|
+
/** Whether the role after the operation is (or is switching to) client. */
|
|
305
|
+
nowClientRole: boolean;
|
|
306
|
+
/** Whether this operation actually landed (the save / pairing write). */
|
|
307
|
+
savedOrPaired: boolean;
|
|
308
|
+
/** The client/status diagnostics' interceptor flag before the operation
|
|
309
|
+
* (derived by the caller); `undefined` when unknown. */
|
|
310
|
+
streamInterceptAlreadyActive?: boolean;
|
|
311
|
+
}
|
|
312
|
+
export declare function shouldReloadAfterClientActivation(input: ClientActivationReloadInput): boolean;
|
|
313
|
+
/**
|
|
314
|
+
* Poll {@link CLIENT_STATUS_ROUTE} until the backend answers ok — the bounded
|
|
315
|
+
* wait before the post-activation reload, covering the restart-watcher's row
|
|
316
|
+
* reload window (the route 404s / fails while the row restarts). Resolves
|
|
317
|
+
* after `maxMs` regardless, so the reload always fires. Injectable fetch and
|
|
318
|
+
* timings keep the check script fast; defaults are the page's 3 s / 250 ms.
|
|
319
|
+
*/
|
|
320
|
+
export declare function awaitClientStatusReady(fetchFn?: typeof fetch, maxMs?: number, intervalMs?: number): Promise<void>;
|
|
285
321
|
/**
|
|
286
322
|
* Latest-wins sequencing for the status loads: every request takes a ticket,
|
|
287
323
|
* and only the newest ticket may still apply its result. An earlier request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-form.d.ts","sourceRoot":"","sources":["../../../src/client-data/settings-form.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-form.d.ts","sourceRoot":"","sources":["../../../src/client-data/settings-form.ts"],"names":[],"mappings":"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"}
|
|
@@ -275,6 +275,33 @@ export interface ControlMerger {
|
|
|
275
275
|
readonly hasPendingHide: boolean;
|
|
276
276
|
retarget(identity: MergerIdentity): void;
|
|
277
277
|
}
|
|
278
|
+
/** One `session/control` projection change, independent of the wire shape. */
|
|
279
|
+
export interface ControlProjectionChange {
|
|
280
|
+
key: string;
|
|
281
|
+
value: unknown;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Read the changes of one live `session/control` `projection` frame in either
|
|
285
|
+
* wire shape. DSH 0.2.2-alpha.3 batched the frame per committed event —
|
|
286
|
+
* `{type:'projection', sessionId, seq, changes:[{key, val}]}` (its client
|
|
287
|
+
* face's handleControlFrame iterates `frame.changes`) — where 0.2.1 and
|
|
288
|
+
* 0.2.2-alpha.2 send one key per frame, `{type:'projection', sessionId, key,
|
|
289
|
+
* value, seq}` (that client face reads `frame.key` / `frame.value`). A
|
|
290
|
+
* `changes` array wins when present; `undefined` means neither shape is
|
|
291
|
+
* usable (a malformed entry spoils the whole frame, like every other
|
|
292
|
+
* malformed frame here).
|
|
293
|
+
*/
|
|
294
|
+
export declare function controlProjectionChanges(frame: Record<string, unknown>): ControlProjectionChange[] | undefined;
|
|
295
|
+
/**
|
|
296
|
+
* One single-key `session/control` projection frame that BOTH client
|
|
297
|
+
* generations apply: the per-key `key` / `value` fields for DSH ≤ 0.2.2-alpha.2
|
|
298
|
+
* and a one-entry `changes` list for ≥ 0.2.2-alpha.3. Neither client face
|
|
299
|
+
* validates stream frames (the gateway client only runs a binary `decode`),
|
|
300
|
+
* and each reads only its own fields, so the extra ones are inert. Splitting a
|
|
301
|
+
* batched frame into one frame per key at the same seq is lossless: the
|
|
302
|
+
* projection store applies per key (`seq <= row.seq` per row).
|
|
303
|
+
*/
|
|
304
|
+
export declare function controlProjectionFrame(sessionId: string, key: string, value: unknown, seq: number): Record<string, unknown>;
|
|
278
305
|
/**
|
|
279
306
|
* The session/control merger. The control stream is key-value projection
|
|
280
307
|
* traffic with no ordering constraints between sessions, so it needs no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-streams.d.ts","sourceRoot":"","sources":["../../src/merge-streams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8IG;AAIH;;8DAE8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;AAoDvF,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D;kDAC8C;IAC9C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;8DAC0D;IAC1D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB;;;;;;;;;;6CAUyC;IACzC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;wBAEoB;IACpB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAClC;;6EAEyE;IACzE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IACnC;;;0DAGsD;IACtD,YAAY,IAAI,OAAO,EAAE,CAAA;IACzB;;;;;kCAK8B;IAC9B,YAAY,IAAI,OAAO,EAAE,CAAA;IACzB;6EACyE;IACzE,eAAe,IAAI,OAAO,EAAE,CAAA;IAC5B;;;6CAGyC;IACzC,SAAS,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC7C;;;4DAGwD;IACxD,eAAe,IAAI,OAAO,EAAE,CAAA;IAC5B;;;;;;2BAMuB;IACvB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAAA;IAC3D;;;gFAG4E;IAC5E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC;;2CAEuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAynBtF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;sEACkE;IAClE,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAClC;;;;0CAIsC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IACnC;2DACuD;IACvD,YAAY,IAAI,OAAO,EAAE,CAAA;IACzB;2DACuD;IACvD,YAAY,IAAI,OAAO,EAAE,CAAA;IACzB,2DAA2D;IAC3D,eAAe,IAAI,OAAO,EAAE,CAAA;IAC5B;8CAC0C;IAC1C,SAAS,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC7C,gEAAgE;IAChE,eAAe,IAAI,OAAO,EAAE,CAAA;IAC5B,+CAA+C;IAC/C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,CAAA;IAC3D,uDAAuD;IACvD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"merge-streams.d.ts","sourceRoot":"","sources":["../../src/merge-streams.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,9 +34,10 @@ export declare function filterWorkspaceFrame(frame: unknown, isAccessible: Acces
|
|
|
34
34
|
/**
|
|
35
35
|
* Filter one `session/control` frame. Exactly two frame types exist:
|
|
36
36
|
* `baseline{value:{projections: Record<sessionId, {asOfSeq, values}>}}` — the
|
|
37
|
-
* per-session map keeps only accessible keys — and `projection{sessionId,
|
|
38
|
-
* value, seq
|
|
39
|
-
* dropped
|
|
37
|
+
* per-session map keeps only accessible keys — and `projection{sessionId, …}`
|
|
38
|
+
* (per-key `key, value, seq` up to DSH 0.2.2-alpha.2, batched `seq,
|
|
39
|
+
* changes[]` from alpha.3) — kept whole or dropped by its session id, so either
|
|
40
|
+
* shape passes untouched. Anything else is dropped.
|
|
40
41
|
*
|
|
41
42
|
* The baseline record is rebuilt with `defineProperty` because a session id of
|
|
42
43
|
* `__proto__` must become an own data property of the new record, not fire the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-filter.d.ts","sourceRoot":"","sources":["../../src/relay-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAwB1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6BhH;AAED
|
|
1
|
+
{"version":3,"file":"relay-filter.d.ts","sourceRoot":"","sources":["../../src/relay-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAA;AAwB1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6BhH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAsB9G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,GAAG,OAAO,CAgB7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOzG;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;yDACqD;IACrD,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3B;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzF;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAkFjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-server.d.ts","sourceRoot":"","sources":["../../src/relay-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"relay-server.d.ts","sourceRoot":"","sources":["../../src/relay-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-zen-remote",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.9",
|
|
4
4
|
"description": "一个插件、两种角色:主服务端把 DeepSeek Harness 变成手机能安全访问的 PWA(移动端界面、配对码网关、Web Push),并把选定会话共享给已配对的桌面端;子客户端在另一台 DSH 桌面端的侧边栏里远程使用这些会话。One DSH plugin, two roles: the host turns DeepSeek Harness into a phone-reachable PWA (mobile UI, pairing-code gateway behind your own reverse proxy, Web Push) and shares chosen sessions to paired desktops; the client uses those sessions remotely from another DSH desktop app's sidebar.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"!docs/images"
|
|
44
44
|
],
|
|
45
45
|
"dsh": {
|
|
46
|
+
"manifestVersion": 1,
|
|
46
47
|
"bundle": {
|
|
47
48
|
"patch": "./cordis.patch.yml"
|
|
48
49
|
},
|
|
@@ -76,7 +77,8 @@
|
|
|
76
77
|
"url": "git+https://github.com/KyoMio/dsh-zen-remote.git"
|
|
77
78
|
},
|
|
78
79
|
"engines": {
|
|
79
|
-
"node": ">=18"
|
|
80
|
+
"node": ">=18",
|
|
81
|
+
"dsh": ">=0.2.1-alpha.2 <0.3.0-0"
|
|
80
82
|
},
|
|
81
83
|
"dependencies": {
|
|
82
84
|
"web-push": "^3.6.7"
|
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
import assert from 'node:assert/strict'
|
|
19
19
|
import {
|
|
20
20
|
CLIENT_RECONNECT_ROUTE,
|
|
21
|
+
CLIENT_STATUS_ROUTE,
|
|
22
|
+
awaitClientStatusReady,
|
|
21
23
|
claimDeviceNameOf,
|
|
22
24
|
shouldFollowServerDeviceName,
|
|
25
|
+
shouldReloadAfterClientActivation,
|
|
23
26
|
createLatestGate,
|
|
24
27
|
clientStatusLineOf,
|
|
25
28
|
deriveClientStatusView,
|
|
@@ -935,3 +938,63 @@ test('T59: hasDraft tracks the staged map; writeDeviceName lands one serverName
|
|
|
935
938
|
assert.deepEqual(state.mutateCalls.at(-1).ops, [{ op: 'set', path: ['serverName'], value: '服务端的名' }])
|
|
936
939
|
assert.equal(state.mutateCalls.at(-1).expectedRevision, 8, 'fenced like every direct write')
|
|
937
940
|
})
|
|
941
|
+
|
|
942
|
+
// ---- UX-1: the reload-after-first-client-activation decision -----------------
|
|
943
|
+
|
|
944
|
+
test('shouldReloadAfterClientActivation truth table: nothing saved or not client never reloads', () => {
|
|
945
|
+
// The write did not land — nothing changed, no reload ever.
|
|
946
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: true, savedOrPaired: false }), false)
|
|
947
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: true, nowClientRole: true, savedOrPaired: false }), false)
|
|
948
|
+
// The role is not (or not becoming) client — no reload even though it saved.
|
|
949
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: false, savedOrPaired: true }), false)
|
|
950
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: true, nowClientRole: false, savedOrPaired: true }), false)
|
|
951
|
+
})
|
|
952
|
+
|
|
953
|
+
test('shouldReloadAfterClientActivation: a host→client switch always reloads', () => {
|
|
954
|
+
// The page opened while 'host': its three global streams are unwrapped, so
|
|
955
|
+
// the switch must reload no matter what the (absent) diagnostics said.
|
|
956
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: true, savedOrPaired: true }), true)
|
|
957
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: false }), true)
|
|
958
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: true }), true, 'a stale positive flag cannot beat the switch')
|
|
959
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: false, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: undefined }), true, 'unknown diagnostics still reloads on a role switch')
|
|
960
|
+
})
|
|
961
|
+
|
|
962
|
+
test('shouldReloadAfterClientActivation: already client reloads only when the intercept was NOT active', () => {
|
|
963
|
+
// First pairing completed on an already-client page whose backend
|
|
964
|
+
// interceptor had not installed yet (openWireStream never wrapped) — reload.
|
|
965
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: true, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: false }), true)
|
|
966
|
+
// Re-pairing / renaming on an already-active client — NO reload (the
|
|
967
|
+
// restart-watcher rewraps in place, the open streams keep working).
|
|
968
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: true, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: true }), false)
|
|
969
|
+
// Unknown diagnostics (an older server without the intercept field) never
|
|
970
|
+
// reloads by itself — the flag must be an explicit false.
|
|
971
|
+
assert.equal(shouldReloadAfterClientActivation({ wasEffectiveClient: true, nowClientRole: true, savedOrPaired: true, streamInterceptAlreadyActive: undefined }), false)
|
|
972
|
+
})
|
|
973
|
+
|
|
974
|
+
test('CLIENT_STATUS_ROUTE is the poll target for the post-activation wait', () => {
|
|
975
|
+
assert.equal(CLIENT_STATUS_ROUTE, '/_dsh/zen-remote/client/status')
|
|
976
|
+
})
|
|
977
|
+
|
|
978
|
+
test('awaitClientStatusReady resolves on the first ok answer', async () => {
|
|
979
|
+
let calls = 0
|
|
980
|
+
const fetchFn = async () => { calls += 1; return { ok: true } }
|
|
981
|
+
await awaitClientStatusReady(fetchFn, 5_000, 10)
|
|
982
|
+
assert.equal(calls, 1, 'one ok answer ends the wait immediately')
|
|
983
|
+
})
|
|
984
|
+
|
|
985
|
+
test('awaitClientStatusReady keeps polling until an ok answer arrives', async () => {
|
|
986
|
+
let calls = 0
|
|
987
|
+
const fetchFn = async () => { calls += 1; return calls < 3 ? { ok: false } : { ok: true } }
|
|
988
|
+
await awaitClientStatusReady(fetchFn, 5_000, 5)
|
|
989
|
+
assert.equal(calls, 3, 'polls through the not-ready answers')
|
|
990
|
+
})
|
|
991
|
+
|
|
992
|
+
test('awaitClientStatusReady gives up after the deadline and still resolves', async () => {
|
|
993
|
+
let calls = 0
|
|
994
|
+
const fetchFn = async () => { calls += 1; throw new Error('row reloading') }
|
|
995
|
+
const started = Date.now()
|
|
996
|
+
await assert.doesNotReject(awaitClientStatusReady(fetchFn, 60, 10))
|
|
997
|
+
const elapsed = Date.now() - started
|
|
998
|
+
assert.ok(elapsed >= 50, `waited out the deadline (elapsed ${elapsed}ms)`)
|
|
999
|
+
assert.ok(calls >= 2, `polled more than once before giving up (${calls} calls)`)
|
|
1000
|
+
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The dsh-better-sidebar adapter (PB-12), written against EXACTLY
|
|
3
|
-
* versions 0.25.0, 0.26.0, 0.26.1, 0.28.0-alpha.0, 0.28.0, 0.28.1
|
|
3
|
+
* versions 0.25.0, 0.26.0, 0.26.1, 0.28.0-alpha.0, 0.28.0, 0.28.1, 0.28.2 and 0.30.0 (PB-15 widened the list; 0.26.1 is a
|
|
4
4
|
* perf-only patch with the same wire surface as 0.26.0; 0.26.0 is a JSON-api
|
|
5
5
|
* superset of 0.25.0 — it grows fs.readPage and the sidechat dequeue/model/
|
|
6
6
|
* models methods, and moves fs.write's content onto the new raw-text
|
|
@@ -42,6 +42,15 @@ import { SIDEBAR_METHODS, sidebarMethodNameOf } from './methods.js'
|
|
|
42
42
|
* backend would accept anyway. */
|
|
43
43
|
const SIDEBAR_MAX_BODY_BYTES = 1024 * 1024
|
|
44
44
|
|
|
45
|
+
/** 0.30.0: a `sidechat.prompt` carrying images reads its body under
|
|
46
|
+
* `sidechatPromptBodyLimit` (lib/index.js:7004) — 1 MiB of metadata plus the
|
|
47
|
+
* base64 of at most SIDECHAT_MAX_MESSAGE_IMAGE_BYTES = 20 MiB of images and
|
|
48
|
+
* 4 bytes per image (≤ 8). Every other method keeps the plugin's own 1 MiB
|
|
49
|
+
* (`readJsonBody`'s default), so the route cap only has to admit this one
|
|
50
|
+
* ceiling; the backend still enforces the per-method limit itself. */
|
|
51
|
+
const SIDEBAR_IMAGE_PROMPT_MAX_BODY_BYTES =
|
|
52
|
+
SIDEBAR_MAX_BODY_BYTES + 4 * Math.ceil((20 * 1024 * 1024) / 3) + 4 * 8
|
|
53
|
+
|
|
45
54
|
/** The method name out of a `/sidebar/api/*` pathname, or `''`. */
|
|
46
55
|
const apiMethodOf = (pathname: string): string => sidebarMethodNameOf(pathname) ?? ''
|
|
47
56
|
|
|
@@ -70,7 +79,13 @@ export const dshBetterSidebarAdapter: BridgeAdapter = {
|
|
|
70
79
|
// full-log `sessionQuery.observeSession`, then the host defaultDirectory,
|
|
71
80
|
// and only then a client `cwd` hint — so the server hook's cwd stripping
|
|
72
81
|
// below stays correct (if anything, the client hint matters less).
|
|
73
|
-
|
|
82
|
+
// 0.30.0 (DSH 0.2.2-rc.1+): same JSON-api method set and WebSockets; one
|
|
83
|
+
// new EXACT GET route, `/sidebar/sidechat-image?childId&messageId&blockIndex`
|
|
84
|
+
// (lib/index.js:9869-9896), which streams a saved side-chat image — bridged
|
|
85
|
+
// below on its `childId`. `sidechat.prompt` grows an `images` array (base64,
|
|
86
|
+
// up to ~27.7 MiB body) — the api route cap widens to that. GenUI, quote
|
|
87
|
+
// chips and editor draft backup are client-only (no new host routes).
|
|
88
|
+
versions: ['0.25.0', '0.26.0', '0.26.1', '0.28.0-alpha.0', '0.28.0', '0.28.1', '0.28.2', '0.30.0'],
|
|
74
89
|
// PB-19 (ADR-0003): the wire-surface whitelist. Keys are digest16 over the
|
|
75
90
|
// PB-18 extractor's reduction (`surface.ts` beside this file) of the npm
|
|
76
91
|
// builds' lib/index.js, computed off /tmp/bs-versions/{version}/lib/index.js:
|
|
@@ -78,6 +93,7 @@ export const dshBetterSidebarAdapter: BridgeAdapter = {
|
|
|
78
93
|
// 96465143373a31a7 — the 0.26.0 generation (0.26.1 hashes identically)
|
|
79
94
|
// 6ed29a896101e681 — the 0.28.0 generation (0.28.0-alpha.0 identically)
|
|
80
95
|
// 65a0acaeb56f87d9 — the 0.28.1 generation (0.28.2 identically)
|
|
96
|
+
// 394de9f588d37092 — the 0.30.0 generation (+ /sidebar/sidechat-image)
|
|
81
97
|
// An installed version outside `versions` still registers when its build
|
|
82
98
|
// hashes into one of these (a wire-identical patch release bridges without
|
|
83
99
|
// a zen-remote release); anything else fails closed to the unlisted-version
|
|
@@ -88,6 +104,7 @@ export const dshBetterSidebarAdapter: BridgeAdapter = {
|
|
|
88
104
|
'96465143373a31a7': 'the 0.26.0 generation (0.26.1 identical)',
|
|
89
105
|
'6ed29a896101e681': 'the 0.28.0 generation (0.28.0-alpha.0 identical)',
|
|
90
106
|
'65a0acaeb56f87d9': 'the 0.28.1 generation (0.28.2 identical)',
|
|
107
|
+
'394de9f588d37092': 'the 0.30.0 generation',
|
|
91
108
|
},
|
|
92
109
|
routes: [
|
|
93
110
|
{
|
|
@@ -97,7 +114,7 @@ export const dshBetterSidebarAdapter: BridgeAdapter = {
|
|
|
97
114
|
path: '/sidebar/api',
|
|
98
115
|
match: 'prefix',
|
|
99
116
|
methods: ['POST'],
|
|
100
|
-
maxBody:
|
|
117
|
+
maxBody: SIDEBAR_IMAGE_PROMPT_MAX_BODY_BYTES,
|
|
101
118
|
locator: { in: 'json-body', fields: ['sessionId', 'rootSessionId', 'childId'] },
|
|
102
119
|
deny: ({ pathname, currentSessionId }) => {
|
|
103
120
|
const name = apiMethodOf(pathname)
|
|
@@ -121,6 +138,9 @@ export const dshBetterSidebarAdapter: BridgeAdapter = {
|
|
|
121
138
|
// claims the EXACT documented path — a sub-path (if a future version
|
|
122
139
|
// grows one) stays local rather than being guessed at.
|
|
123
140
|
{ path: '/sidebar/file', match: 'exact', methods: ['GET'], locator: { in: 'query', name: 'sessionId' } },
|
|
141
|
+
// 0.30.0: a saved side-chat image (lib/index.js:9869-9896) — the child
|
|
142
|
+
// session id rides the query; the answer is raw image bytes with no ids.
|
|
143
|
+
{ path: '/sidebar/sidechat-image', match: 'exact', methods: ['GET'], locator: { in: 'query', name: 'childId' } },
|
|
124
144
|
// The archive download (lib/index.js:6949-6985).
|
|
125
145
|
{ path: '/sidebar/archive', match: 'exact', methods: ['GET'], locator: { in: 'query', name: 'sessionId' } },
|
|
126
146
|
// The raw upload (lib/index.js:6905-6948): binary bytes, capped by the
|
|
@@ -21,6 +21,7 @@ import type { createNavStore } from './nav-store.ts'
|
|
|
21
21
|
import type { WorkspaceFilter } from './nav-store.ts'
|
|
22
22
|
import type { MobileNavKey } from './locales.ts'
|
|
23
23
|
import { dotState } from './session-dot.ts'
|
|
24
|
+
import { decideNewSessionAction } from '../client-data/new-session.ts'
|
|
24
25
|
import { MobileHomeChips, MobileHomeChipsSheetBody } from './MobileHomeChips.tsx'
|
|
25
26
|
|
|
26
27
|
/** Full props for the phone home screen (shell.overlay entry). */
|
|
@@ -280,7 +281,7 @@ export function MobileHome({
|
|
|
280
281
|
// list re-renders on any session change anyway (the running dots live here).
|
|
281
282
|
const sessions = useSessions((s) => s)
|
|
282
283
|
const workspaces = useWorkspaces((s) => s)
|
|
283
|
-
const [sheet, setSheet] = useState<'filter' | 'chips' | null>(null)
|
|
284
|
+
const [sheet, setSheet] = useState<'filter' | 'chips' | 'new-session' | null>(null)
|
|
284
285
|
/** The one row whose archive action is swiped open (null = none). */
|
|
285
286
|
const [swipeOpen, setSwipeOpen] = useState<SessionId | null>(null)
|
|
286
287
|
// 0.1.2 的待处理交互来源;0.1.1 没有这个标准 prop,读到 undefined 时用一个
|
|
@@ -560,7 +561,19 @@ export function MobileHome({
|
|
|
560
561
|
data-mobile-nav="home-fab"
|
|
561
562
|
aria-label={t('newSession')}
|
|
562
563
|
title={t('newSession')}
|
|
563
|
-
onClick={() =>
|
|
564
|
+
onClick={() => {
|
|
565
|
+
// UX-3: never enter a dangling no-workspace session. With "all"
|
|
566
|
+
// selected (the common case — the host's own sessions belong to no
|
|
567
|
+
// workspace) the decision either auto-starts the only workspace or
|
|
568
|
+
// opens the workspace drawer first; the session then starts with a
|
|
569
|
+
// workspace attached from the first frame.
|
|
570
|
+
const action = decideNewSessionAction(
|
|
571
|
+
selectedWorkspace?.workspaceId,
|
|
572
|
+
workspaces.items.map((item) => item.workspaceId),
|
|
573
|
+
)
|
|
574
|
+
if (action.kind === 'start') enter(() => startSession(action.workspaceId))
|
|
575
|
+
else setSheet('new-session')
|
|
576
|
+
}}
|
|
564
577
|
>
|
|
565
578
|
<IconPlusOutlineRegular size={18} />
|
|
566
579
|
<span>{t('newSession')}</span>
|
|
@@ -575,13 +588,15 @@ export function MobileHome({
|
|
|
575
588
|
aria-label={t('close')}
|
|
576
589
|
onClick={() => setSheet(null)}
|
|
577
590
|
/>
|
|
578
|
-
{/*
|
|
591
|
+
{/* Three sheets share this one container (chrome + S6 drag-to-close
|
|
579
592
|
* + mask-click-close, all keyed off data-mobile-nav="home-sheet"
|
|
580
593
|
* generically — effects/gestures.ts): the workspace switcher
|
|
581
|
-
* (role="menu", unchanged)
|
|
582
|
-
* (
|
|
583
|
-
*
|
|
584
|
-
|
|
594
|
+
* (role="menu", unchanged), the UX-3 new-session workspace pick
|
|
595
|
+
* (role="menu" — its rows navigate and close), and the S5
|
|
596
|
+
* chip-customize toggle list (MobileHomeChipsSheetBody, no menu
|
|
597
|
+
* semantics — its rows are switches, not menu items that close
|
|
598
|
+
* the sheet on click). */}
|
|
599
|
+
<div data-mobile-nav="home-sheet" role={sheet === 'chips' ? undefined : 'menu'}>
|
|
585
600
|
{sheet === 'filter' && (
|
|
586
601
|
<>
|
|
587
602
|
<div data-mobile-nav="home-sheet-title">{t('switchWorkspace')}</div>
|
|
@@ -614,6 +629,28 @@ export function MobileHome({
|
|
|
614
629
|
))}
|
|
615
630
|
</>
|
|
616
631
|
)}
|
|
632
|
+
{sheet === 'new-session' && (
|
|
633
|
+
<>
|
|
634
|
+
<div data-mobile-nav="home-sheet-title">{t('pickWorkspaceNew')}</div>
|
|
635
|
+
{workspaces.items.map((item) => (
|
|
636
|
+
<button
|
|
637
|
+
key={item.workspaceId}
|
|
638
|
+
type="button"
|
|
639
|
+
role="menuitem"
|
|
640
|
+
data-mobile-nav="home-sheet-item"
|
|
641
|
+
onClick={() => {
|
|
642
|
+
// Pin the list to the picked workspace (so backing out
|
|
643
|
+
// of the blank session lands on ITS list) and start the
|
|
644
|
+
// session with that workspace from the first frame.
|
|
645
|
+
actions.filter(item.workspaceId)
|
|
646
|
+
enter(() => startSession(item.workspaceId))
|
|
647
|
+
}}
|
|
648
|
+
>
|
|
649
|
+
{item.title}
|
|
650
|
+
</button>
|
|
651
|
+
))}
|
|
652
|
+
</>
|
|
653
|
+
)}
|
|
617
654
|
{sheet === 'chips' && <MobileHomeChipsSheetBody t={t} />}
|
|
618
655
|
</div>
|
|
619
656
|
</div>
|
|
@@ -74,7 +74,13 @@ type ActivityState = 'running' | 'done' | 'warning'
|
|
|
74
74
|
* the root through `:has()` instead of naming it.
|
|
75
75
|
*/
|
|
76
76
|
const HEADER = '[data-phase] header'
|
|
77
|
-
|
|
77
|
+
/* UX-2 (2026-11-04): narrowed by the action-button class tail. The bare
|
|
78
|
+
`button[aria-haspopup="tree"]` matched the breadcrumb's parent-session
|
|
79
|
+
switcher first (`…_switcherTrigger` — also a tree popup), so both the
|
|
80
|
+
overlay and this fallback check resolved to the wrong button. The suffix
|
|
81
|
+
matcher is case-sensitive and `_switcherTrigger` does not end in
|
|
82
|
+
`_trigger`. Must stay in lockstep with effects/native-trigger-overlay.ts. */
|
|
83
|
+
const SUBAGENT_TRIGGER = `${HEADER} button[class$="_trigger"][aria-haspopup="tree"]`
|
|
78
84
|
const JOBS_TRIGGER = `${HEADER} button[class$="_trigger"]:not([aria-haspopup])`
|
|
79
85
|
|
|
80
86
|
/** One glanceable group: icon + count + state dot; opens the official popover. */
|
|
@@ -26,38 +26,77 @@ import type { ClientContext } from '../compat/types.ts'
|
|
|
26
26
|
const PHONE = '(max-width: 767px)'
|
|
27
27
|
const HEADER = '[data-phase] header'
|
|
28
28
|
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Pill → the official trigger it fronts. Same ARIA split the pills use,
|
|
31
|
+
* narrowed by the action-button class tail (UX-2, 2026-11-04): the bare
|
|
32
|
+
* `button[aria-haspopup="tree"]` matched the breadcrumb's parent-session
|
|
33
|
+
* switcher first (`…_switcherTrigger` — also a tree popup, earlier in
|
|
34
|
+
* document order), so the pill got the wrong button laid over it. The
|
|
35
|
+
* suffix matcher is case-sensitive and `_switcherTrigger` does not end in
|
|
36
|
+
* `_trigger`, so the catalog trigger is the only match left.
|
|
37
|
+
*/
|
|
30
38
|
const PAIRS: ReadonlyArray<{ pill: string, trigger: string }> = [
|
|
31
|
-
{ pill: '[data-activity-kind="subagent"]', trigger: `${HEADER} button[aria-haspopup="tree"]` },
|
|
39
|
+
{ pill: '[data-activity-kind="subagent"]', trigger: `${HEADER} button[class$="_trigger"][aria-haspopup="tree"]` },
|
|
32
40
|
{ pill: '[data-activity-kind="job"]', trigger: `${HEADER} button[class$="_trigger"]:not([aria-haspopup])` },
|
|
33
41
|
]
|
|
34
42
|
|
|
35
|
-
/** Marks a trigger we have taken over, so cleanup can find
|
|
43
|
+
/** Marks a trigger (and its anchor container) we have taken over, so cleanup can find them again. */
|
|
36
44
|
const TAKEN = 'data-zen-overlay'
|
|
37
45
|
|
|
46
|
+
/** The shared fixed-viewport box: exactly what the portalled popover measures against. */
|
|
47
|
+
function pin(el: HTMLElement, r: { left: number, top: number, width: number, height: number }, display?: string): void {
|
|
48
|
+
el.style.setProperty('position', 'fixed', 'important')
|
|
49
|
+
el.style.setProperty('left', `${r.left}px`, 'important')
|
|
50
|
+
el.style.setProperty('top', `${r.top}px`, 'important')
|
|
51
|
+
el.style.setProperty('width', `${r.width}px`, 'important')
|
|
52
|
+
el.style.setProperty('height', `${r.height}px`, 'important')
|
|
53
|
+
el.style.setProperty('margin', '0', 'important')
|
|
54
|
+
el.style.setProperty('padding', '0', 'important')
|
|
55
|
+
el.style.setProperty('border', '0', 'important')
|
|
56
|
+
if (display !== undefined) el.style.setProperty('display', display, 'important')
|
|
57
|
+
}
|
|
58
|
+
|
|
38
59
|
function place(trigger: HTMLElement, pill: Element): void {
|
|
39
60
|
const r = pill.getBoundingClientRect()
|
|
40
61
|
if (r.width === 0 || r.height === 0) return
|
|
41
62
|
trigger.setAttribute(TAKEN, '')
|
|
63
|
+
pin(trigger, r)
|
|
42
64
|
// Fixed, not absolute: the header's containing block is not the pill's, and
|
|
43
65
|
// fixed rects are exactly what the portalled popover measures against.
|
|
44
|
-
trigger.style.setProperty('position', 'fixed', 'important')
|
|
45
|
-
trigger.style.setProperty('left', `${r.left}px`, 'important')
|
|
46
|
-
trigger.style.setProperty('top', `${r.top}px`, 'important')
|
|
47
|
-
trigger.style.setProperty('width', `${r.width}px`, 'important')
|
|
48
|
-
trigger.style.setProperty('height', `${r.height}px`, 'important')
|
|
49
|
-
trigger.style.setProperty('margin', '0', 'important')
|
|
50
|
-
trigger.style.setProperty('padding', '0', 'important')
|
|
51
|
-
trigger.style.setProperty('border', '0', 'important')
|
|
52
66
|
trigger.style.setProperty('opacity', '0', 'important')
|
|
53
67
|
trigger.style.setProperty('overflow', 'hidden', 'important')
|
|
54
68
|
trigger.style.setProperty('pointer-events', 'auto', 'important')
|
|
55
69
|
trigger.style.setProperty('z-index', '3', 'important')
|
|
70
|
+
// The official popover (useAnchoredPosition) sizes itself from the OUTER
|
|
71
|
+
// anchor container — the trigger's parent div, the official rootRef — not
|
|
72
|
+
// the button. header.css.ts dissolves that container with
|
|
73
|
+
// display:contents, so its rect was all zeros and the panel landed at
|
|
74
|
+
// 12,12 inside the status bar (UX-2). Give the anchor the pill's exact
|
|
75
|
+
// box: the inline display beats the stylesheet's display:contents
|
|
76
|
+
// !important (the style attribute outranks selectors at author-important),
|
|
77
|
+
// so rootRef.getBoundingClientRect() finally sees the pill. pointer-events
|
|
78
|
+
// none keeps the invisible box from ever stealing a tap — the trigger
|
|
79
|
+
// child above it is the tappable one. z-index 3 is required on the anchor
|
|
80
|
+
// too: position:fixed unconditionally creates a stacking context (even at
|
|
81
|
+
// z-index:auto, stack level 0), which otherwise traps the trigger's own
|
|
82
|
+
// z-index:3 underneath [data-mobile-nav="header-activity"] (z-index:1).
|
|
83
|
+
const anchor = trigger.parentElement
|
|
84
|
+
if (anchor !== null && anchor.closest(HEADER) !== null) {
|
|
85
|
+
anchor.setAttribute(TAKEN, '')
|
|
86
|
+
pin(anchor, r, 'block')
|
|
87
|
+
anchor.style.setProperty('pointer-events', 'none', 'important')
|
|
88
|
+
anchor.style.setProperty('z-index', '3', 'important')
|
|
89
|
+
}
|
|
56
90
|
}
|
|
57
91
|
|
|
58
92
|
function release(trigger: HTMLElement): void {
|
|
59
93
|
trigger.removeAttribute(TAKEN)
|
|
60
94
|
trigger.style.cssText = ''
|
|
95
|
+
const anchor = trigger.parentElement
|
|
96
|
+
if (anchor !== null && anchor.hasAttribute(TAKEN)) {
|
|
97
|
+
anchor.removeAttribute(TAKEN)
|
|
98
|
+
anchor.style.cssText = ''
|
|
99
|
+
}
|
|
61
100
|
}
|
|
62
101
|
|
|
63
102
|
export function installNativeTriggerOverlay(ctx: ClientContext): void {
|