Menghuan1918
d38fefe55d
feat(tasks): 任务输出常驻浮动窗 + 节点卡去竖线 + 手机设置
三件事一起落地(用户 brief),各自独立可验证:
1) 后台任务输出改为常驻浮动窗
- 新增 src/client/FloatingWindow.tsx + .module.css:可复用组件,标题栏(拖拽手柄 +
复制/关闭)、内容区(自滚动,长输出不再跑出视口)、可选底部行、三个拉伸柄
(右/下/右下)。生命周期与 AnchoredPopover 相反:外部点击、失焦、锚点离屏都不关,
只有关闭按钮与 Escape 结束;尺寸只在挂载时量一次(流式输出帧不会挪动读者摆好的窗);
拖拽保持整窗在视口内(放不下才退化到保留 48px 可达);视口变化时夹回。
- 手势复用既有范式:移动走 window 级 pointermove(同 AnchoredPopover),拉伸走
setPointerCapture + createFrameBatcher(同 EditorHost 的面板拉伸)。
- JobOutputPopoverContent → JobOutputWindow;顺带修掉「跟随最新」从不滚动的 bug
(原先滚的是 TerminalBlock 外面那个永不滚动的 div),并清掉随旧弹窗死掉的
.popPre / .jobPopPre 规则。节点/工作流详情与任务窗保持原样。
2) 节点卡统一
- 删除两条左侧竖条(层级条 .cardTop::before、当前会话条 .nodeCurrent::before);
层级改由上段极淡底色承担(7/5/3.5/2.5% → 9/7/5/3.5% 补偿对比度);
当前会话改为 2px accent 描边(「边框加粗高亮」)。
- 圆角 4px → 8px(与浮动窗同一家族);成员/工作流/聚合按用户选择保留类型区分。
- 2px 而非 1.5px:真机 recon 发现 Chromium 在 DPR 1 下把亚像素边框向下取整,
1.5px 的「加粗」完全看不出(实测 borderTopWidth: "1px")。几何不受影响
(border-box + min-height,卡片外框 247×134 与预算逐像素一致)。
3) 手机设置
- 两个新偏好 mobileNoAutoOpen / mobileDefaultTree(默认都开),落到 prefs-shared、
PrefsSchema(volatile 自动)、parsePrefs 校验与设置页新增的「手机」分组。
- 窄屏(沿用 768px 断点)时:新子代理与新后台任务都不再自动激活任务页;
任务页默认树状图(页内切换仍是临时覆盖)。宽屏或开关关掉后行为完全不变。
- 5 条词条 ×20 份词典;外部插件指南的 PrefsSchema 键清单同步。
验证:typecheck / lint ✅;pnpm test 1254 passed / 9 skipped(新增 14 例);
挂载 lane 7/7(真实 DSH 0.1.7-rc.2);3080 真机自测通过(长输出窗口内部滚动
5459px/449px、拖拽 424→304、拉伸 1008×540→918×480、外部点击不关、Escape 关、
卡片 8px/2px/无竖条、窄屏不自动弹出且默认树状图)。
(cherry picked from commit 7d9b428c6c34d28ad2d60c2086496eb533902273)
2026-09-27 22:18:57 +08:00
..
2026-08-10 16:46:01 +08:00
2026-08-16 19:14:57 +08:00
2026-08-10 16:46:01 +08:00
2026-08-10 16:46:01 +08:00
2026-08-21 21:39:59 +08:00
2026-08-16 23:35:57 +08:00
2026-08-20 02:09:36 +08:00
2026-08-13 10:26:57 +08:00
2026-08-18 01:22:28 +08:00
2026-09-02 23:26:04 +08:00
2026-08-12 23:04:30 +08:00
2026-08-14 23:04:25 +08:00
2026-08-17 00:06:20 +08:00
2026-08-18 10:50:30 +08:00
2026-08-14 14:53:03 +08:00
2026-08-22 19:10:02 +08:00
2026-08-15 15:05:06 +08:00
2026-08-18 23:23:17 +08:00
2026-08-18 01:22:28 +08:00
2026-08-19 04:04:44 +08:00
2026-09-02 23:37:40 +08:00
2026-08-21 01:28:17 +08:00
2026-09-06 00:59:03 +08:00
2026-09-04 20:28:35 +08:00
2026-08-24 01:19:43 +08:00
2026-08-23 22:02:47 +08:00
2026-08-24 00:59:27 +08:00
2026-09-03 09:56:31 +08:00
2026-08-26 21:40:32 +08:00
2026-08-26 18:21:43 +08:00
2026-08-29 15:49:19 +08:00
2026-09-02 23:13:57 +08:00
2026-09-01 16:07:33 +08:00
2026-09-03 21:21:22 +08:00
2026-09-04 22:08:02 +08:00
2026-09-06 23:48:25 +08:00
2026-09-08 00:04:25 +08:00
2026-09-08 22:20:15 +08:00
2026-09-08 21:21:29 +08:00
2026-09-10 17:13:32 +08:00
2026-09-10 22:26:02 +08:00
2026-09-09 13:15:49 +08:00
2026-09-10 17:13:32 +08:00
2026-09-10 14:54:19 +08:00
2026-09-11 16:58:29 +08:00
2026-09-11 16:20:58 +08:00
2026-09-27 22:18:49 +08:00
2026-09-27 22:18:19 +08:00
2026-09-21 21:00:09 +08:00
2026-09-23 23:58:59 +08:00
2026-09-23 23:58:59 +08:00
2026-09-27 22:18:57 +08:00
2026-09-27 22:18:57 +08:00