@linxin666/dsh-ssh 0.1.10 → 0.1.12

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@linxin666/dsh-ssh",
3
3
  "description": "Remote SSH operations for the dsh web GUI: host config store (~/.dsh/dsh-ssh.json, import from ~/.ssh/config), a persistent ssh2 connection pool with jump-host support, exec / PTY web terminal / SFTP transfer / local port-forward tunnels / cluster execution, plus agent tools (ssh_list, ssh_exec, ssh_upload, ssh_download, ssh_tunnel, ssh_cluster). Hot-pluggable — mounted via ~/.dsh/cordis.patch.yml + a profile node_modules symlink, no dsh source changes.",
4
- "version": "0.1.10",
4
+ "version": "0.1.12",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": "^22.19.0 || >=24.0.0"
@@ -93,7 +93,7 @@
93
93
  "cordis.patch.yml",
94
94
  "README.md"
95
95
  ],
96
- "license": "BSD-3-Clause",
96
+ "license": "Apache-2.0",
97
97
  "repository": {
98
98
  "type": "git",
99
99
  "url": "https://github.com/zhu1090093659/dsh-web-ui.git"
@@ -18,7 +18,15 @@
18
18
  position: absolute;
19
19
  inset: 0;
20
20
  display: none;
21
- z-index: 5;
21
+ /* Above the conversation composer (z-index 7 in the 0.1.0-rc.6 shell) so the
22
+ panel and its modals paint over the input card, mirroring the task board
23
+ (issue #87). */
24
+ z-index: 60;
25
+ /* Opaque backdrop: the conversation subtree stays mounted under the panel.
26
+ Even if the hide rule below were defeated by a stronger host inline
27
+ style, this background keeps sticky code-block banners (host z-index 6)
28
+ from showing through the active panel (issue #100). */
29
+ background: var(--dsw-alias-bg-base);
22
30
  }
23
31
 
24
32
  /* The center column is single-occupant; the :not() guards keep the two
@@ -29,9 +37,12 @@ html[data-dsh-ssh-active]:not([data-dsh-taskboard-active]) [data-dsh-ssh-view] {
29
37
  }
30
38
 
31
39
  /* While the panel is active, the conversation content underneath is hidden
32
- (it stays mounted and stateful). */
33
- html[data-dsh-ssh-active]:not([data-dsh-taskboard-active]) [data-pane='conversation'] > :not([data-dsh-ssh-view]) {
34
- display: none;
40
+ (it stays mounted and stateful). The rule targets both the pane attribute
41
+ and the center-column class so the chat subtree (including the code-block
42
+ copy banner, issue #100) stays hidden whichever host container carries it. */
43
+ html[data-dsh-ssh-active]:not([data-dsh-taskboard-active]) [data-pane='conversation'] > :not([data-dsh-ssh-view]),
44
+ html[data-dsh-ssh-active]:not([data-dsh-taskboard-active]) [class*='centerCol'] > :not([data-dsh-ssh-view]) {
45
+ display: none !important;
35
46
  }
36
47
 
37
48
  /* --- sidebar entry row ------------------------------------------------------- */
@@ -139,11 +139,15 @@ export function mountSidebarEntry(controller: PanelController): () => void {
139
139
  }
140
140
  })
141
141
 
142
- // Reflect the panel's open state on the row (active highlight).
143
- const unsubscribe = controller.subscribe(() => {
144
- entry.dataset.active = controller.getSnapshot().panelOpen ? 'true' : undefined
145
- })
146
- entry.dataset.active = controller.getSnapshot().panelOpen ? 'true' : undefined
142
+ // Reflect the panel's open state on the row (active highlight). Note: assigning
143
+ // undefined to dataset.active materializes data-active="undefined" and keeps the
144
+ // row permanently highlighted — delete the attribute instead.
145
+ const syncActive = () => {
146
+ if (controller.getSnapshot().panelOpen) entry.dataset.active = 'true'
147
+ else delete entry.dataset.active
148
+ }
149
+ const unsubscribe = controller.subscribe(syncActive)
150
+ syncActive()
147
151
 
148
152
  tryPlace()
149
153