Commit Graph

70 Commits

Author SHA1 Message Date
root 15b45a6de7 fix(workbench): stabilize Kafka replay visibility 2026-07-21 13:18:40 +02:00
Lyon 388e9c2553 Merge pull request #2558 from pikasTech/feat/2553-admin-console-experience-v2
Pipelines as Code CI / hwlab-nc01-v03-ci-poll- Success
refactor(web): 完成管理域与运营台组件收口
2026-07-16 01:09:44 +08:00
root 99e0418fa0 refactor(web): 收口管理域运营台组件 2026-07-15 18:36:28 +02:00
root 5546d6b7a5 fix(web): 收口 Projects 与 MDTODO 跳转体验 2026-07-15 18:18:21 +02:00
root 2667b7e18f fix(web): 收敛 MDTODO 状态与工作区拆分 2026-07-15 03:10:32 +02:00
root 009083468a fix: resolve MDTODO review blockers 2026-07-14 20:33:31 +02:00
root 95a9e5c235 refactor: 完成 R2 控制台通用交互纠偏 2026-07-14 12:01:34 +02:00
root 4a87338fd5 refactor(web): 收口统一控制台源码与交互合同 2026-07-13 13:58:00 +02:00
root 8675832a31 refactor(web): 重写 MDTODO 三栏工作台 2026-07-13 13:51:35 +02:00
root d897a1dc8c fix(web): 恢复管理页 URL 事实合同 2026-07-13 13:09:54 +02:00
root 5cdaff31e0 feat(web): establish admin operations workspace 2026-07-13 11:20:13 +02:00
root 3d071f57e0 fix(web): 收敛 MDTODO 离线详情与布局 2026-07-13 06:14:40 +02:00
root bdf0b6ef43 fix(web): 补齐控制台事实与深链合同 2026-07-13 05:30:34 +02:00
root 4e1947aa8e feat(web): 迁移非 HWPOD 控制台页面 2026-07-13 04:52:54 +02:00
root 2ec436a89e fix(hwpod): 收紧拓扑探测与深链状态 2026-07-13 04:48:04 +02:00
root 94a4b12ebe feat(web): 建立云端控制台前端基线 2026-07-13 04:11:46 +02:00
root 9f45d52120 fix: 修复纯 Kafka Trace 实时可见性 2026-07-10 21:59:04 +02:00
root 3a4912906b fix: 修复纯 Kafka Trace 与原始事件观察窗 2026-07-10 15:42:54 +02:00
root 8ad5976a07 feat: 拉通 Workbench 纯 Kafka 实时链路 2026-07-10 10:22:28 +02:00
root 8d6409dc9d chore(workbench): remove legacy trace gap-fill remnants 2026-07-09 03:52:58 +02:00
UniDesk Codex ecc4f5ea68 fix: MDTODO 前端布局 — 10 项布局修复(#2369)
1. 左侧任务树占满 aside 高度
2. 右侧报告面板占满 aside 高度
3. Workbench 启动按钮在新标签页打开
4. 侧边栏收起后彻底隐藏,展开按钮显示在内容区
5. 详情工具栏移到标题下方一行
6. 正文为空时显示标题代替留空
7. 任务编号宽度根据内容自适应
8. 折叠/展开按钮居右
9. 任务状态改用标签颜色展示(///)
10. Reindex 提示信息添加关闭按钮
2026-07-03 20:06:36 +08:00
UniDesk Codex c0318b8cb2 fix: bound workbench trace hydration merge 2026-07-03 05:49:05 +08:00
UniDesk Codex 70c475892d fix: keep mdtodo task tree interactive while refreshing 2026-07-01 14:37:45 +08:00
UniDesk Codex c306fc39a6 feat: complete workbench opencode runtime migration 2026-06-30 22:45:17 +08:00
UniDesk Codex a3d25a8b1d fix: complete opencode workbench runtime migration 2026-06-30 21:02:24 +08:00
UniDesk Codex f0b6c692bd fix: expose mdtodo workbench trace diagnostics 2026-06-30 20:41:32 +08:00
UniDesk Codex 12f3d11104 fix: add mdtodo provider profile selection 2026-06-30 12:59:34 +08:00
root dc5b06cc62 fix: carry MDTODO HWPOD context into Workbench 2026-06-28 09:45:37 +00:00
root 6825e1e2cb fix(mdtodo): restore projected report access on web 2026-06-27 02:28:16 +00:00
lyon 09ad21fd32 fix(web): rewrite MDTODO page into bounded decomposed workspace (PJ2026-01040409)
Replace the 1125-line monolithic MdtodoView with SPEC PJ2026-01040409 §5.1
component layering and composables. Old page shell, resident metric/detail/
create boxes, nested cards and document-level scroll are cleared.

Components:
- MdtodoPageShell: page assembly, route restore, loading/error boundary
- MdtodoToolbar: narrow status bar, Source/File dropdowns, actions
- MdtodoTaskTree: Rxx outline, fold/search/filter/current highlight
- MdtodoTaskPanel: title/status/body inline edit, report links, launch
- MdtodoReportPanel: right-pane preview, fullscreen, light code blocks
- MdtodoSourceDialog/MdtodoCreateTaskDialog/MdtodoInfoDialog: dialogs

Composables:
- useMdtodoRouteSelection: URL authority for source/file/task/report
- useMdtodoSource: source list/config/probe/reindex
- useMdtodoTaskData: files/Rxx window/task detail/links
- useMdtodoTaskMutation: create/update/delete with fingerprint
- useMdtodoReportPreview: preview/fullscreen/close-restore
- useMdtodoWorkbenchLaunch: non-empty session with first-round prompt
- useMdtodoDisplay: file/status helpers, Rxx tree derivation

All web-probe data-testid contracts preserved. Build verified on D601.

Closes pikasTech/HWLAB#2216
2026-06-27 03:36:05 +08:00
lyon 496895cae5 fix: keep terminal workbench timing monotonic 2026-06-26 16:13:12 +08:00
Lyon d818aad6d5 fix: keep workbench cancel on durable projection (#2086) 2026-06-25 06:10:05 +08:00
lyon f40cd324fb fix(workbench): remove frontend trace timing compensation 2026-06-25 00:33:21 +08:00
lyon 452524f80a Revert "fix(workbench): cap visible timing ticker steps (#2007)"
This reverts commit b61fb4e65c.
2026-06-24 19:23:29 +08:00
Lyon b61fb4e65c fix(workbench): cap visible timing ticker steps (#2007) 2026-06-24 02:40:35 +08:00
Lyon 6d359bf7e6 fix(workbench): seal terminal trace timing (#1993) 2026-06-23 23:07:32 +08:00
Lyon 839b85d17c fix(workbench): keep timing ticker active in background pages (#1985)
Co-authored-by: root <root@lyon.remote>
2026-06-23 20:38:39 +08:00
Lyon 2a313e1ab8 fix(workbench): preserve projected trace order and duration (#1974) 2026-06-23 15:43:06 +08:00
Lyon 5c1f620713 fix(workbench): delay live refresh on first load (#1943) 2026-06-23 03:20:37 +08:00
lyon f166697126 fix: keep running turn timing on turn projection 2026-06-22 13:19:47 +08:00
lyon ef32a1e87e fix(workbench): seal terminal turn timing and diagnostics 2026-06-22 05:19:34 +08:00
lyon ac1753f51c fix: keep workbench turn timing monotonic 2026-06-21 04:31:16 +08:00
Lyon 4f7e55e2d8 fix: PJ2026-0104010803 P5 残余 events.at(-1) 读侧推理清理 + code-agent metric status (#1759)
useTraceSubscription.ts:
- mergeTraceResults: lastEventLabel 不 fallback 到 events.at(-1)
- mergeTraceSnapshots: lastEventLabel 不 fallback 到 events.at(-1)
- traceSnapshotSignalKey: 不从 events.at(-1) 推导 signal key

server-code-agent-http.ts:
- recordCodeAgentProjectionMetric: status 只读 projection.status
- source 固定为 workbench_read_model

负向源码扫描确认:
- result?.status ?? trace?.status: 消除
- events.at(-1) lifecycle 推断: 消除
- .catch(() => {}) 静默吞错: 消除
- traceStore.subscribe: 仅作为 outbox 不可用时的兼容降级

Closes #1751
Refs #1742
2026-06-20 19:42:19 +08:00
Lyon 44019f229e feat: PJ2026-0104010803 P4 前端/CLI 单读源收敛 - 删除 events.at(-1) 读侧推理 (#1758)
workbench.ts (stores):
- applyTraceHydrationResult: activityLabel 只读 result.lastEventLabel,不读 events.at(-1)
- lastEventLabel: 只读 result.lastEventLabel,不 fallback 到 events.at(-1)
- normalizeTraceSnapshot: lastEventLabel 只读 source.lastEventLabel
- mergeRunnerTrace: lastEventLabel 不从 events.at(-1) 推断

useTraceSubscription.ts:
- lastEventLabel 只读 snapshot.lastEventLabel,不读 events.at(-1)

trace-renderer.ts (CLI):
- traceNoiseSummaryRow: status 只读 trace.status/traceStatus,不 fallback 到 lastEvent.status
- 保持 lastLabel 用于展示,但不参与 lifecycle 推断

api/workbench.ts:
- 添加注释标记 observedAt/lastEventAgeMs 为 diagnostic-only,不作用户可见相对时间权威

Closes #1750
Refs #1742
2026-06-20 19:37:35 +08:00
lyon 241366b264 fix(web): advance workbench timing labels with browser ticker 2026-06-20 16:10:36 +08:00
lyon 98b94b7fd1 feat(web): surface api error diagnostics 2026-06-20 15:38:11 +08:00
lyon 4a9498d720 fix(workbench): expose code agent timing metadata 2026-06-20 13:55:57 +08:00
lyon 793f0f39a4 fix: use projected trace cursor as workbench authority 2026-06-20 10:55:11 +08:00
lyon 4290a280d9 fix: separate workbench message and trace authorities 2026-06-20 10:09:47 +08:00
lyon 88112c415f fix: surface workbench projection diagnostics 2026-06-19 11:04:37 +08:00