xrkh-better-sidebar 0.18.7 → 0.18.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/README.md CHANGED
@@ -10,7 +10,7 @@ Host 侧 `/sidebar/*` 由产品 Host 原生挂载(`createSidebarPublicHandler`
10
10
  前置:`xrkh web` 或 `npx @xrkseek/harness-cli web`,Node ≥ 26。建议 Host **≥ 0.3.4**。推荐从 **npmjs** 安装:
11
11
 
12
12
  ```bash
13
- xrkh plugin add xrkh-better-sidebar@0.18.3
13
+ xrkh plugin add xrkh-better-sidebar@0.18.9
14
14
  xrkh restart
15
15
  ```
16
16
 
@@ -18,6 +18,10 @@ xrkh restart
18
18
 
19
19
  源码路径仍可用(非推荐):`git clone git@github.com:xrkseek/xrkh-better-sidebar.git` 后 `xrkh plugin add ./xrkh-better-sidebar`。
20
20
 
21
+ ## 0.18.9
22
+
23
+ - `openTab`:当前会话下任意打开(含仅 `type` 的 Files / +菜单)都会展开已折叠侧栏,调用方无需再自行 `togglePanel`
24
+
21
25
  ## 0.18.3
22
26
 
23
27
  - Client fiber 注入 `layout`(与 `ui-sidebar` 同序):等 `ui-layout` 声明中心栏后再挂侧栏拦截,避免 Host ≥0.3.4 上 `conversation` slot 竞态
package/README_EN.md CHANGED
@@ -1,57 +1,61 @@
1
- # xrkh-better-sidebar
2
-
3
- > **Audience**: XRK-Harness end users · integrators
4
-
5
- Standard sidebar plugin for XRK-Harness (`xrkh`): explorer · editor · terminal · git · browser, isolated per session.
6
- Host mounts `/sidebar/*` natively (`createSidebarPublicHandler`); this package ships the **client** half. The Cordis host half in `src/index.ts` is only for non-XRKH Cordis profiles — **do not** mount it on XRKH against the same `/sidebar/*` prefix.
7
-
8
- ## Install
9
-
10
- Requires `xrkh web` or `npx @xrkseek/harness-cli web`, Node ≥ 26. Prefer Host **≥ 0.3.4**. Install from **npmjs**:
11
-
12
- ```bash
13
- xrkh plugin add xrkh-better-sidebar@0.18.3
14
- xrkh restart
15
- ```
16
-
17
- Hard-refresh the browser after install (Ctrl+Shift+R).
18
-
19
- Source path still works (not preferred): `git clone git@github.com:xrkseek/xrkh-better-sidebar.git` then `xrkh plugin add ./xrkh-better-sidebar`.
20
-
21
- ## 0.18.3
22
-
23
- - Client fiber injects `layout` (same order as `ui-sidebar`): wait until `ui-layout` declares the center column before sidebar interception — avoids a `conversation` slot race on Host ≥ 0.3.4
24
- - `xrk.client.inject` adds `@xrkseek/client-ui-layout`; docs Host baseline **≥ 0.3.4**
25
-
26
- ## 0.18.2
27
-
28
- - Files home tab follows locale; light media viewers; open by default
29
-
30
- ## 0.18.1
31
-
32
- - `subagents.live`: accept nested `tool` and legacy flat `tool` wire so subagent activity previews do not crash
33
- - Align with Host native `/sidebar/*` (nested live shape)
34
-
35
- ## 0.18.0
36
-
37
- - XRKH-native: drop third-party dual-track (legacy manifest · better-locale · legacy install scripts · marketplace catalogs)
38
- - Peers are `@xrkseek/*` + React only; tools/settings types via `@xrkseek/xrk-tools` / `xrk-settings`
39
- - No Side Chat; subagents use Host Face + `subagents.live` / `jobs.*`
40
- - Empty curated plugin catalogs (community entries are not bundled)
41
-
42
- ## Contract
43
-
44
- | Item | Notes |
45
- |------|--------|
46
- | npm | `xrkh-better-sidebar` |
47
- | Repo | `xrkseek/xrkh-better-sidebar` |
48
- | Manifest | `package.json` → `xrk.client` (client half) |
49
- | Inject | `client-runtime` · `locale` · `ui-slots` · `ui-layout` · `ui-conversation` · `modules` |
50
- | Host | Native Host owns `/sidebar/api` · `/sidebar/bundle` · PTY — do not remount Cordis host half on XRKH |
51
-
52
- ## Develop
53
-
54
- ```bash
55
- pnpm install
56
- pnpm bundle
57
- ```
1
+ # xrkh-better-sidebar
2
+
3
+ > **Audience**: XRK-Harness end users · integrators
4
+
5
+ Standard sidebar plugin for XRK-Harness (`xrkh`): explorer · editor · terminal · git · browser, isolated per session.
6
+ Host mounts `/sidebar/*` natively (`createSidebarPublicHandler`); this package ships the **client** half. The Cordis host half in `src/index.ts` is only for non-XRKH Cordis profiles — **do not** mount it on XRKH against the same `/sidebar/*` prefix.
7
+
8
+ ## Install
9
+
10
+ Requires `xrkh web` or `npx @xrkseek/harness-cli web`, Node ≥ 26. Prefer Host **≥ 0.3.4**. Install from **npmjs**:
11
+
12
+ ```bash
13
+ xrkh plugin add xrkh-better-sidebar@0.18.9
14
+ xrkh restart
15
+ ```
16
+
17
+ Hard-refresh the browser after install (Ctrl+Shift+R).
18
+
19
+ Source path still works (not preferred): `git clone git@github.com:xrkseek/xrkh-better-sidebar.git` then `xrkh plugin add ./xrkh-better-sidebar`.
20
+
21
+ ## 0.18.9
22
+
23
+ - `openTab`: any open on the active session (including type-only Files / +menu) expands a collapsed side card — callers no longer need a separate `togglePanel`
24
+
25
+ ## 0.18.3
26
+
27
+ - Client fiber injects `layout` (same order as `ui-sidebar`): wait until `ui-layout` declares the center column before sidebar interception — avoids a `conversation` slot race on Host ≥ 0.3.4
28
+ - `xrk.client.inject` adds `@xrkseek/client-ui-layout`; docs Host baseline **≥ 0.3.4**
29
+
30
+ ## 0.18.2
31
+
32
+ - Files home tab follows locale; light media viewers; open by default
33
+
34
+ ## 0.18.1
35
+
36
+ - `subagents.live`: accept nested `tool` and legacy flat `tool` wire so subagent activity previews do not crash
37
+ - Align with Host native `/sidebar/*` (nested live shape)
38
+
39
+ ## 0.18.0
40
+
41
+ - XRKH-native: drop third-party dual-track (legacy manifest · better-locale · legacy install scripts · marketplace catalogs)
42
+ - Peers are `@xrkseek/*` + React only; tools/settings types via `@xrkseek/xrk-tools` / `xrk-settings`
43
+ - No Side Chat; subagents use Host Face + `subagents.live` / `jobs.*`
44
+ - Empty curated plugin catalogs (community entries are not bundled)
45
+
46
+ ## Contract
47
+
48
+ | Item | Notes |
49
+ |------|--------|
50
+ | npm | `xrkh-better-sidebar` |
51
+ | Repo | `xrkseek/xrkh-better-sidebar` |
52
+ | Manifest | `package.json` → `xrk.client` (client half) |
53
+ | Inject | `client-runtime` · `locale` · `ui-slots` · `ui-layout` · `ui-conversation` · `modules` |
54
+ | Host | Native Host owns `/sidebar/api` · `/sidebar/bundle` · PTY — do not remount Cordis host half on XRKH |
55
+
56
+ ## Develop
57
+
58
+ ```bash
59
+ pnpm install
60
+ pnpm bundle
61
+ ```
@@ -9774,7 +9774,7 @@ window.__ModuleLoader__.load({
9774
9774
  activated ??= tab;
9775
9775
  }
9776
9776
  if (!isCreation && floatWithTab(landed, activated?.id ?? tab.id) !== void 0) return landed;
9777
- if (!targetsInactiveSession && typeof window !== "undefined" && (seed.path !== void 0 || seed.url !== void 0 || seed.type === "terminal")) {
9777
+ if (!targetsInactiveSession && typeof window !== "undefined" ) {
9778
9778
  if (isNarrowWidth(window.innerWidth)) {
9779
9779
  if (!landed.panelOpen) return togglePanel(landed);
9780
9780
  } else if (treeOf(landed, landed.activePane ?? "") === "bottomSplits") {
package/lib/client.js CHANGED
@@ -9774,7 +9774,7 @@ window.__ModuleLoader__.load({
9774
9774
  activated ??= tab;
9775
9775
  }
9776
9776
  if (!isCreation && floatWithTab(landed, activated?.id ?? tab.id) !== void 0) return landed;
9777
- if (!targetsInactiveSession && typeof window !== "undefined" && (seed.path !== void 0 || seed.url !== void 0 || seed.type === "terminal")) {
9777
+ if (!targetsInactiveSession && typeof window !== "undefined" ) {
9778
9778
  if (isNarrowWidth(window.innerWidth)) {
9779
9779
  if (!landed.panelOpen) return togglePanel(landed);
9780
9780
  } else if (treeOf(landed, landed.activePane ?? "") === "bottomSplits") {
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { Compartment } from '@codemirror/state';
11
11
  /** Token-driven surface shared by both schemes (pure CSS values). */
12
- export declare const cmSurfaceTheme: import("@codemirror/state").Extension;
12
+ export declare const cmSurfaceTheme: any;
13
13
  /**
14
14
  * A Compartment holding the two scheme-dependent extensions. Created once
15
15
  * per editor view; a scheme flip dispatches `reconfigure(dark)` on it, so
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xrkh-better-sidebar",
3
- "version": "0.18.7",
3
+ "version": "0.18.9",
4
4
  "description": "XRK-Harness (xrkh) standard sidebar plugin: explorer, editor, terminal, git, browser.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -692,30 +692,18 @@ export function createBetterSidebarService(store: SidebarStore): BetterSidebarSe
692
692
  : candidates.find(candidate => candidate.id === tab.id)
693
693
  activated ??= tab
694
694
  }
695
- // A CONTENT open that focuses an existing FLOATING tab is already in
696
- // sight (free windows render regardless of panel state): expanding a
697
- // panel for it would point the user at a pane the content is not in.
698
- if (
699
- !isCreation
700
- && floatWithTab(landed, activated?.id ?? tab.id) !== undefined
701
- ) {
702
- return landed
703
- }
704
- // A CONTENT open (file / browser) must land in sight: when the panel
695
+ // Any open for the active session must land in sight: when the panel
705
696
  // hosting the landing pane is collapsed, expand it. On narrow
706
697
  // viewports the two workbenches merge into one drawer, so the drawer
707
698
  // (panelOpen) is the only lever; on wide viewports the landing pane's
708
699
  // own panel opens — the bottom panel when the active pane lives in the
709
- // bottom tree, else the right panel. Terminal opens also expand: a
710
- // type-only +menu / auto-terminal that leaves the panel closed paints
711
- // an empty right chrome (xterm waits for a non-zero host). Other
712
- // type-only opens (+ menu for explorer/git) keep the previous
713
- // caller-owned expand behavior. Opens targeted at an INACTIVE session
700
+ // bottom tree, else the right panel. Type-only opens (+ menu /
701
+ // session-header Files / auto-terminal) expand the same way so callers
702
+ // need not know panel state. Opens targeted at an INACTIVE session
714
703
  // never expand (nothing is in sight for the user).
715
704
  if (
716
705
  !targetsInactiveSession
717
706
  && typeof window !== 'undefined'
718
- && (seed.path !== undefined || seed.url !== undefined || seed.type === 'terminal')
719
707
  ) {
720
708
  if (isNarrowWidth(window.innerWidth)) {
721
709
  if (!landed.panelOpen) return togglePanel(landed)