dsh-task-ledger 0.0.70 → 0.0.72
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/dist/client.js +1 -67
- package/dist/client.js.map +1 -1
- package/dist/host/repositories/runner.d.ts +11 -1
- package/dist/host/repositories/runner.js +12 -2
- package/dist/host/routes.js +3 -2
- package/dist/host/services/ledger-write.service.d.ts +2 -2
- package/dist/host/services/ledger-write.service.js +7 -2
- package/package.json +1 -1
- package/skill/README.md +5 -2
- package/skill/SKILL.md +6 -2
- package/skill/package.json +1 -1
- package/skill/references/troubleshooting.md +13 -2
- package/skill/scripts/progress.py +708 -31
package/dist/client.js
CHANGED
|
@@ -1905,59 +1905,6 @@ body[data-ds-dark-theme]{
|
|
|
1905
1905
|
return interpolateTranslate((name) => zh[name] ?? name)(key, params);
|
|
1906
1906
|
}
|
|
1907
1907
|
//#endregion
|
|
1908
|
-
//#region src/client/overlay-entry.ts
|
|
1909
|
-
/**
|
|
1910
|
-
* 右上浮标入口(`shell.overlay` list 条目,全帧浮层,条目并排添加不替换)。
|
|
1911
|
-
* 定位用宿主变量 `--dsh-frame-overlay-top`(标题栏净空 + 20px),**不写死 top 值**;
|
|
1912
|
-
* 浮层默认 `pointer-events:none`、子元素自动恢复 ⇒ 自绘条目不挡下方应用。
|
|
1913
|
-
*
|
|
1914
|
-
* 角标 = 我名下进行中计数(host 统计真值,SSE 已否 ⇒ 取自同一份快照,>0 才画);
|
|
1915
|
-
* 0→n 跳变时一次脉冲动画,不自动消失。宿主**无**通知 API ⇒ 「通知」就是这个角标。
|
|
1916
|
-
*/
|
|
1917
|
-
function OverlayEntry(props) {
|
|
1918
|
-
const { t, onOpen } = props;
|
|
1919
|
-
ensureUiBase();
|
|
1920
|
-
const count = (0, react.useSyncExternalStore)(boardSubscribe, boardSnapshot).board?.stats.myActive ?? 0;
|
|
1921
|
-
const previous = (0, react.useRef)(0);
|
|
1922
|
-
const [pulse, setPulse] = (0, react.useState)(0);
|
|
1923
|
-
(0, react.useEffect)(() => {
|
|
1924
|
-
if (count > previous.current) setPulse((value) => value + 1);
|
|
1925
|
-
previous.current = count;
|
|
1926
|
-
}, [count]);
|
|
1927
|
-
return (0, react.createElement)("div", { style: {
|
|
1928
|
-
position: "absolute",
|
|
1929
|
-
top: "var(--dsh-frame-overlay-top,20px)",
|
|
1930
|
-
right: "12px",
|
|
1931
|
-
zIndex: "var(--dtl-z-badge,20)",
|
|
1932
|
-
pointerEvents: "auto"
|
|
1933
|
-
} }, (0, react.createElement)("button", {
|
|
1934
|
-
type: "button",
|
|
1935
|
-
title: t("openBoard"),
|
|
1936
|
-
"aria-label": t("openBoard"),
|
|
1937
|
-
onClick: onOpen,
|
|
1938
|
-
style: {
|
|
1939
|
-
position: "relative",
|
|
1940
|
-
display: "flex",
|
|
1941
|
-
alignItems: "center",
|
|
1942
|
-
justifyContent: "center",
|
|
1943
|
-
width: "32px",
|
|
1944
|
-
height: "32px",
|
|
1945
|
-
padding: 0,
|
|
1946
|
-
border: "1px solid var(--dtl-border)",
|
|
1947
|
-
borderRadius: "var(--dtl-radius-sm)",
|
|
1948
|
-
background: "var(--dtl-solid)",
|
|
1949
|
-
color: "var(--dtl-on-solid)",
|
|
1950
|
-
boxShadow: "var(--dtl-shadow-1)",
|
|
1951
|
-
cursor: "pointer"
|
|
1952
|
-
}
|
|
1953
|
-
}, (0, react.createElement)(LedgerIcon, { size: 18 }), count > 0 ? (0, react.createElement)("span", {
|
|
1954
|
-
key: pulse,
|
|
1955
|
-
className: "dtl-badge",
|
|
1956
|
-
"data-pulse": pulse > 0,
|
|
1957
|
-
title: t("badgeTitle")
|
|
1958
|
-
}, String(count)) : null));
|
|
1959
|
-
}
|
|
1960
|
-
//#endregion
|
|
1961
1908
|
//#region src/client/index.ts
|
|
1962
1909
|
/**
|
|
1963
1910
|
* 浏览器半入口(client bundle,产物 dist/client.js):装配层,不写业务逻辑。
|
|
@@ -1965,8 +1912,7 @@ body[data-ds-dark-theme]{
|
|
|
1965
1912
|
* 三处注册各自挂进「服务就位才触发」的 slots 注入(参考插件真机教训:顶层 inject 声明
|
|
1966
1913
|
* 组合满足不了的依赖会让 entry 一直 pending、卡死整个 dsh 启动):
|
|
1967
1914
|
* · locale 字典(zh / en)——界面语言跟随宿主,插件不自备开关;
|
|
1968
|
-
* · `main` keyed
|
|
1969
|
-
* · `shell.overlay` list 槽浮标入口(点开 = `ctx.layout.selectPanel(<看板 id>)`)。
|
|
1915
|
+
* · `main` keyed 槽整页(看板首页)。
|
|
1970
1916
|
*
|
|
1971
1917
|
* 宿主能力一律**本地结构化声明**,不 import 官方包(rc 接口会无声变);
|
|
1972
1918
|
* `t` 席位由宿主渲染器按注册项的 `locale:` 声明合成进组件 props。
|
|
@@ -1977,8 +1923,6 @@ body[data-ds-dark-theme]{
|
|
|
1977
1923
|
const NS = "dsh-task-ledger";
|
|
1978
1924
|
/** `main` 槽的 key(非 `conversation` ⇒ 不绑 Session)。 */
|
|
1979
1925
|
const PANEL_ID = NS;
|
|
1980
|
-
/** `shell.overlay` list 条目的 id(新 id = 并排添加,不替换宿主条目)。 */
|
|
1981
|
-
const OVERLAY_ID = `${NS}-badge`;
|
|
1982
1926
|
/** 宿主没给 t 席位时的兜底(键名绝不上界面)。 */
|
|
1983
1927
|
const t = interpolateTranslate((key, params) => fallbackTranslate(key, params));
|
|
1984
1928
|
function apply(ctx) {
|
|
@@ -2016,16 +1960,6 @@ body[data-ds-dark-theme]{
|
|
|
2016
1960
|
selectPanel(null);
|
|
2017
1961
|
}
|
|
2018
1962
|
})));
|
|
2019
|
-
sub.slots.inject("shell.overlay", () => sub.slots.register({
|
|
2020
|
-
name: "shell.overlay",
|
|
2021
|
-
id: OVERLAY_ID,
|
|
2022
|
-
locale: NS
|
|
2023
|
-
}, (props) => (0, react.createElement)(OverlayEntry, {
|
|
2024
|
-
t: props.t ?? t,
|
|
2025
|
-
onOpen: () => {
|
|
2026
|
-
selectPanel(PANEL_ID);
|
|
2027
|
-
}
|
|
2028
|
-
})));
|
|
2029
1963
|
});
|
|
2030
1964
|
}
|
|
2031
1965
|
//#endregion
|