lyon
fe1f8cf6b3
fix(workbench): prefer durable terminal duration
2026-06-22 05:28:50 +08:00
lyon
ef32a1e87e
fix(workbench): seal terminal turn timing and diagnostics
2026-06-22 05:19:34 +08:00
lyon
4067c92a72
fix workbench provider catalog refresh
2026-06-21 21:10:42 +08:00
Lyon
507850579e
fix: stabilize workbench turn diagnostics ( #1828 )
2026-06-21 18:23:13 +08:00
Lyon
8efdbbd46e
fix: keep workbench deeplink detail hydration ( #1827 )
2026-06-21 16:20:48 +08:00
lyon
6804decc56
fix: stop completed workbench diagnostics polling
2026-06-21 15:45:40 +08:00
Lyon
a5b47d5d8d
fix: expose workbench projection failures in otel ( #1824 )
2026-06-21 13:44:22 +08:00
Lyon
fb43019d1b
fix(workbench): limit turn status polling to active traces ( #1810 )
2026-06-21 11:04:30 +08:00
Lyon
4c562e7176
fix(workbench): skip terminal turn polling ( #1809 )
...
Stop realtime gap hydration from polling completed/terminal Workbench turns. This avoids repeated /v1/workbench/turns requests for old traces while preserving active turn refresh.\n\nRefs #1791 .
2026-06-21 10:50:56 +08:00
Lyon
8b529c39a0
fix(workbench): retry transient runtime store reads ( #1797 )
2026-06-21 09:16:23 +08:00
lyon
7ca7a9974b
fix(workbench): keep active turn polling until terminal
2026-06-21 05:37:30 +08:00
lyon
a734a78777
fix: clear transient workbench diagnostics on terminal turn
2026-06-21 05:16:06 +08:00
lyon
95c1e3d8fe
fix: keep visible workbench duration monotonic
2026-06-21 04:54:23 +08:00
lyon
93151384b3
fix: mark visible terminal workbench messages completed
2026-06-21 04:42:43 +08:00
lyon
ac1753f51c
fix: keep workbench turn timing monotonic
2026-06-21 04:31:16 +08:00
lyon
bcc8aa189b
fix: stabilize workbench timing diagnostics
2026-06-21 02:56:19 +08:00
lyon
a6b5e9a975
fix: harden workbench agent retry projection
2026-06-21 02:43:33 +08:00
lyon
bad5a478bd
fix: recover Workbench terminal outbox projection
2026-06-20 20:12:01 +08:00
lyon
6ab94f23c8
fix: clarify workbench trace event diagnostics
2026-06-20 19:43:54 +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
ff60ff853b
test(web): cover user-visible error diagnostics matrix
2026-06-20 16:54:59 +08:00
lyon
c73b19fcaa
feat(web): configure trace explorer links
2026-06-20 16:26:54 +08:00
lyon
241366b264
fix(web): advance workbench timing labels with browser ticker
2026-06-20 16:10:36 +08:00
lyon
d947b9e4e8
feat(web): surface Workbench diagnostics
2026-06-20 16:03:05 +08:00
lyon
98b94b7fd1
feat(web): surface api error diagnostics
2026-06-20 15:38:11 +08:00
lyon
03942afc5c
fix: 收敛 workbench 消息头 timing 投影
2026-06-20 14:54:04 +08:00
lyon
32a66f18b3
fix: 统一上游不可达错误文案
2026-06-20 14:26:44 +08:00
lyon
766f41d415
fix: render workbench trace clocks with display timezone
2026-06-20 14:07:16 +08:00
lyon
4a9498d720
fix(workbench): expose code agent timing metadata
2026-06-20 13:55:57 +08:00
lyon
f2a54532a2
fix: show configured workbench time label
2026-06-20 13:44:47 +08:00
lyon
01f72df333
fix: render workbench time from yaml config
2026-06-20 13:29:55 +08:00
lyon
6468263672
fix: thin workbench session list projection
2026-06-20 13:24:49 +08:00
Lyon
96704ea1d7
Merge pull request #1695 from pikasTech/codex/hwlab-1691-problem-rows
...
fix: separate performance problems from sample health
2026-06-20 12:47:57 +08:00
Lyon
acd9831149
Fix workbench trace projection authority ( #1696 )
2026-06-20 12:47:18 +08:00
lyon
7448803c9d
fix: separate performance problems from sample health
2026-06-20 12:46:29 +08:00
lyon
8c27242656
fix: scope workbench performance attribution health
2026-06-20 12:32:44 +08:00
lyon
bcb635a4c5
test(web): add workbench golden reliability e2e
2026-06-20 11:33:56 +08:00
Lyon
5e7224c666
test(web): align performance all-window label ( #1685 )
2026-06-20 11:00:42 +08:00
lyon
793f0f39a4
fix: use projected trace cursor as workbench authority
2026-06-20 10:55:11 +08:00
Lyon
2a7fbf5771
test(web): govern performance dashboard windows ( #1683 )
2026-06-20 10:53:32 +08:00
lyon
4290a280d9
fix: separate workbench message and trace authorities
2026-06-20 10:09:47 +08:00
lyon
c51dd122e2
fix: 区分 provider retry 与终态失败
2026-06-20 09:51:30 +08:00
Lyon
40a54eef20
feat: align rum samples with backend evidence ( #1674 )
2026-06-20 09:33:54 +08:00
Lyon
e0127f1044
feat: expose performance collection health ( #1671 )
2026-06-20 09:03:17 +08:00
lyon
5a8e6b39e2
test: add workbench p1 reliability inventory
2026-06-20 08:25:37 +08:00
Lyon
037043b7c8
test: 收敛 Performance 迁移验证 ( #1649 )
2026-06-20 02:26:13 +08:00
Lyon
9493d85259
fix: 收敛 Performance summary 展示 ( #1648 )
2026-06-20 02:04:28 +08:00
Lyon
ed7d187921
fix: 收敛 Performance summary 观测契约 ( #1647 )
2026-06-20 01:49:22 +08:00
lyon
02a4eb3ccb
fix: throttle workbench history hydration
2026-06-20 01:34:34 +08:00