dsh-taskboard 0.4.1 → 0.4.2
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 +5 -0
- package/lib/client.js +16 -8
- package/package.json +1 -1
- package/src/client/board-mount.tsx +11 -6
- package/src/client/styles.ts +4 -1
- package/src/shared/version.ts +1 -1
package/README.md
CHANGED
|
@@ -60,6 +60,11 @@ node scripts/screenshot.mjs # 重新生成 img/ 截图(需本机 Edge)
|
|
|
60
60
|
|
|
61
61
|
## 升级日志
|
|
62
62
|
|
|
63
|
+
### 0.4.2
|
|
64
|
+
|
|
65
|
+
- **修复 DSH Desktop 上看板不出现(用户反馈:入口能点、后端正常,但中间看板无变化)**:当前 DSH Desktop 的 Web shell(`dsh-client-ui-layout`)已完全移除 `data-pane` 属性,中间列改用 CSS Module 哈希类名(`pI_x6G_centerCol`)——而看板挂载选择器写死 `[data-pane="conversation"]`,`querySelector` 永远落空,看板容器从未创建(侧栏入口正常,是因为它一直有 `[class*="sidebarCol"]` 兜底)。修复:挂载选择器与隐藏规则双兼容 `'[data-pane="conversation"], [class*="centerCol"]'`(新旧 shell 通吃,与侧栏入口同款兜底策略);`.dsh-atb-view` 以 `height:100%` 撑满列容器,不依赖列内部结构
|
|
66
|
+
- 回归测试:构造无 `data-pane`、哈希类名 `centerCol` 的 Desktop shell DOM——看板容器正确创建于列内、隐藏规则双选择器齐备
|
|
67
|
+
|
|
63
68
|
### 0.4.1
|
|
64
69
|
|
|
65
70
|
- **修复侧栏入口点击竞态(用户反馈)**:部分 shell 的 DOM 里,任务看板侧栏入口被插在 class 含 `newSession` 的容器内部——点击入口时,看板的全局捕获监听器(「点侧栏会话/新会话让位」语义)先 `closeBoard`,入口自身的 `toggleBoard` 再翻回来,表现为**看板一开就闪关、或入口按钮关不掉**。修复:捕获监听器先按 `closest('[data-dsh-atb-entry]')` 整体豁免入口子树(比给选择器加 `:not()` 更稳——`:not()` 只排除元素自身匹配,挡不住入口嵌在带类祖先容器内的形态);真会话行/新会话按钮的让位语义不变。顺带加固 `newSessionButton()` 锚点扫描排除自身入口,杜绝自愈重插时锚点自引用
|
package/lib/client.js
CHANGED
|
@@ -945,7 +945,10 @@ window.__ModuleLoader__.load({
|
|
|
945
945
|
.dsh-atb-search { width: 130px; }
|
|
946
946
|
.dsh-atb-badge[data-kind="stale"] { background: rgba(217,130,43,.15); color: #d9822b; }
|
|
947
947
|
|
|
948
|
-
|
|
948
|
+
/* 0.4.2: dual column matching — dev shell's data-pane pane OR the Desktop
|
|
949
|
+
* shell's CSS-Module hashed centerCol (see board-mount.tsx). */
|
|
950
|
+
html[data-dsh-atb-active] [data-pane="conversation"] > *:not([data-dsh-atb-view]),
|
|
951
|
+
html[data-dsh-atb-active] [class*="centerCol"] > *:not([data-dsh-atb-view]) { display: none !important; }
|
|
949
952
|
.dsh-atb-view { display: none; }
|
|
950
953
|
html[data-dsh-atb-active] .dsh-atb-view { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
|
|
951
954
|
|
|
@@ -1811,7 +1814,7 @@ window.__ModuleLoader__.load({
|
|
|
1811
1814
|
* @module dsh-taskboard/shared/version
|
|
1812
1815
|
*/
|
|
1813
1816
|
/** The package version (must equal package.json "version"). */
|
|
1814
|
-
const PLUGIN_VERSION = "0.4.
|
|
1817
|
+
const PLUGIN_VERSION = "0.4.2";
|
|
1815
1818
|
|
|
1816
1819
|
//#endregion
|
|
1817
1820
|
//#region src/client/board/TaskCard.tsx
|
|
@@ -4534,15 +4537,20 @@ window.__ModuleLoader__.load({
|
|
|
4534
4537
|
//#endregion
|
|
4535
4538
|
//#region src/client/board-mount.tsx
|
|
4536
4539
|
/**
|
|
4537
|
-
* Board view mounting: a container appended inside the
|
|
4538
|
-
*
|
|
4539
|
-
*
|
|
4540
|
-
*
|
|
4541
|
-
*
|
|
4540
|
+
* Board view mounting: a container appended inside the center column (a
|
|
4541
|
+
* trailing child React never manages), with a stylesheet rule hiding the
|
|
4542
|
+
* conversation content while the board is active. Toggling rides a data
|
|
4543
|
+
* attribute on <html> — no React involvement in the shell.
|
|
4544
|
+
*
|
|
4545
|
+
* Column matching is DUAL (0.4.2): the dev shell marks the column with
|
|
4546
|
+
* `data-pane="conversation"`; the DSH Desktop shell (dsh-client-ui-layout)
|
|
4547
|
+
* dropped data-pane entirely and uses CSS-Module hashed class names
|
|
4548
|
+
* (`pI_x6G_centerCol`) — the class-substring fallback keeps both mounting,
|
|
4549
|
+
* exactly like sidebar-entry's `[class*="sidebarCol"]` fallback.
|
|
4542
4550
|
*
|
|
4543
4551
|
* @module dsh-taskboard/client/board-mount
|
|
4544
4552
|
*/
|
|
4545
|
-
const CONVERSATION_COLUMN_SELECTOR = "[data-pane=\"conversation\"]";
|
|
4553
|
+
const CONVERSATION_COLUMN_SELECTOR = "[data-pane=\"conversation\"], [class*=\"centerCol\"]";
|
|
4546
4554
|
const ACTIVE_ATTR = "data-dsh-atb-active";
|
|
4547
4555
|
/** Sibling panels' activation attributes, evicted when this board opens. */
|
|
4548
4556
|
const OTHER_ACTIVE_ATTRS = ["data-dsh-taskboard-active", "data-dsh-ssh-active"];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-taskboard",
|
|
3
3
|
"description": "Agent-first task board for the DSH web GUI: host-authoritative task ledger with taskboard_* agent tools, project (= workspace) claim boundaries, per-task model execution in fresh sessions, optional per-task git-worktree isolation (dedicated task branches, commit evidence, one-click merge), host-side cron scheduling, and a live SSE kanban view. Mounts via the official dsh plugin system — no DSH source changes.",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Board view mounting: a container appended inside the
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Board view mounting: a container appended inside the center column (a
|
|
3
|
+
* trailing child React never manages), with a stylesheet rule hiding the
|
|
4
|
+
* conversation content while the board is active. Toggling rides a data
|
|
5
|
+
* attribute on <html> — no React involvement in the shell.
|
|
6
|
+
*
|
|
7
|
+
* Column matching is DUAL (0.4.2): the dev shell marks the column with
|
|
8
|
+
* `data-pane="conversation"`; the DSH Desktop shell (dsh-client-ui-layout)
|
|
9
|
+
* dropped data-pane entirely and uses CSS-Module hashed class names
|
|
10
|
+
* (`pI_x6G_centerCol`) — the class-substring fallback keeps both mounting,
|
|
11
|
+
* exactly like sidebar-entry's `[class*="sidebarCol"]` fallback.
|
|
7
12
|
*
|
|
8
13
|
* @module dsh-taskboard/client/board-mount
|
|
9
14
|
*/
|
|
@@ -15,7 +20,7 @@ import { ENTRY_SELECTOR } from './sidebar-entry.ts'
|
|
|
15
20
|
/** The injected board container. */
|
|
16
21
|
export const BOARD_VIEW_SELECTOR = '[data-dsh-atb-view]'
|
|
17
22
|
|
|
18
|
-
const CONVERSATION_COLUMN_SELECTOR = '[data-pane="conversation"]'
|
|
23
|
+
const CONVERSATION_COLUMN_SELECTOR = '[data-pane="conversation"], [class*="centerCol"]'
|
|
19
24
|
const ACTIVE_ATTR = 'data-dsh-atb-active'
|
|
20
25
|
/** Sibling panels' activation attributes, evicted when this board opens. */
|
|
21
26
|
const OTHER_ACTIVE_ATTRS = ['data-dsh-taskboard-active', 'data-dsh-ssh-active']
|
package/src/client/styles.ts
CHANGED
|
@@ -49,7 +49,10 @@ export const STYLES = `
|
|
|
49
49
|
.dsh-atb-search { width: 130px; }
|
|
50
50
|
.dsh-atb-badge[data-kind="stale"] { background: rgba(217,130,43,.15); color: #d9822b; }
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
/* 0.4.2: dual column matching — dev shell's data-pane pane OR the Desktop
|
|
53
|
+
* shell's CSS-Module hashed centerCol (see board-mount.tsx). */
|
|
54
|
+
html[data-dsh-atb-active] [data-pane="conversation"] > *:not([data-dsh-atb-view]),
|
|
55
|
+
html[data-dsh-atb-active] [class*="centerCol"] > *:not([data-dsh-atb-view]) { display: none !important; }
|
|
53
56
|
.dsh-atb-view { display: none; }
|
|
54
57
|
html[data-dsh-atb-active] .dsh-atb-view { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
|
|
55
58
|
|
package/src/shared/version.ts
CHANGED