Commit Graph

2233 Commits

Author SHA1 Message Date
Lyon b976417b8d Merge pull request #1788 from pikasTech/fix/1770-message-status-seal
fix(workbench): seal message status from turn projection
2026-06-21 07:53:49 +08:00
lyon 6e05c05732 fix(workbench): seal message status from turn projection 2026-06-21 07:52:59 +08:00
Lyon a00907ced2 Merge pull request #1787 from pikasTech/fix/1770-completed-diagnostic-seal
fix(workbench): seal final response lifecycle
2026-06-21 07:27:02 +08:00
lyon b6dc2b4126 fix(workbench): seal final response lifecycle 2026-06-21 07:26:22 +08:00
Lyon 7b5b14cc20 Merge pull request #1786 from pikasTech/fix/1770-provider-retry-diagnostic
fix(workbench): keep provider retry diagnostics non-terminal
2026-06-21 07:13:42 +08:00
lyon eedd8b6bfb fix(workbench): keep provider retry diagnostics non-terminal 2026-06-21 07:12:33 +08:00
Lyon 4dc6e24abd Merge pull request #1785 from pikasTech/fix/webprobe-db-pool-timeout-1770
fix: 调整 v03 Postgres pool timeout
2026-06-21 06:54:22 +08:00
lyon 68844aec3f fix: tune v03 postgres pool timeout 2026-06-21 06:53:41 +08:00
Lyon f979919635 Merge pull request #1784 from pikasTech/fix/workbench-terminal-live-1770
fix(workbench): active turn 持续收敛到终态
2026-06-21 05:38:12 +08:00
lyon 7ca7a9974b fix(workbench): keep active turn polling until terminal 2026-06-21 05:37:30 +08:00
Lyon d5c0914ead Merge pull request #1783 from pikasTech/fix/1770-clear-terminal-transient-diagnostics-20260621051510
fix: clear transient workbench diagnostics on terminal turn
2026-06-21 05:16:28 +08:00
lyon a734a78777 fix: clear transient workbench diagnostics on terminal turn 2026-06-21 05:16:06 +08:00
Lyon 85fbf6d9bd Merge pull request #1782 from pikasTech/fix/1770-workbench-facts-retry-20260621050651
fix: retry transient workbench facts reads
2026-06-21 05:08:33 +08:00
lyon e9d19c8617 fix: retry transient workbench facts reads 2026-06-21 05:08:08 +08:00
Lyon 1e328d0c9b Merge pull request #1781 from pikasTech/fix/1770-turn-timing-floor-20260621045327
fix: keep visible workbench duration monotonic
2026-06-21 04:54:52 +08:00
lyon 95c1e3d8fe fix: keep visible workbench duration monotonic 2026-06-21 04:54:23 +08:00
Lyon ddcc135ac0 Merge pull request #1780 from pikasTech/fix/1770-terminal-visible-status
fix: mark visible terminal workbench messages completed
2026-06-21 04:43:09 +08:00
lyon 93151384b3 fix: mark visible terminal workbench messages completed 2026-06-21 04:42:43 +08:00
Lyon 4c2180099f Merge pull request #1779 from pikasTech/fix/1770-turn-timing-authority
fix: keep workbench turn timing monotonic
2026-06-21 04:31:46 +08:00
lyon ac1753f51c fix: keep workbench turn timing monotonic 2026-06-21 04:31:16 +08:00
Lyon db6599c86c Merge pull request #1778 from pikasTech/fix/1770-workbench-retryable-projection-gaps
fix: expose retryable projection gaps
2026-06-21 04:15:26 +08:00
lyon 7ac200cd7e fix: expose retryable projection gaps 2026-06-21 04:14:58 +08:00
Lyon ed3547cd25 Merge pull request #1777 from pikasTech/fix/1770-postgres-unhandled-boundary
fix: contain postgres unhandled connection timeouts
2026-06-21 04:01:19 +08:00
lyon adba4a4354 fix: contain postgres unhandled connection timeouts 2026-06-21 04:00:50 +08:00
Lyon e6d7a9ac6b Merge pull request #1776 from pikasTech/fix/1770-postgres-timeout-boundary
fix: contain postgres projection timeouts
2026-06-21 03:46:02 +08:00
lyon cf13bf80a9 fix: contain postgres projection timeouts 2026-06-21 03:45:23 +08:00
Lyon 170373934f Merge pull request #1775 from pikasTech/fix/1770-running-turn-timing-authority
fix: keep running turn timing authoritative
2026-06-21 03:30:02 +08:00
lyon 1f59fbd33e fix: keep running turn timing authoritative 2026-06-21 03:29:29 +08:00
Lyon 6abed3fe2c Merge pull request #1774 from pikasTech/fix/1770-terminal-checkpoint-authority
fix: prioritize terminal checkpoint status
2026-06-21 03:21:36 +08:00
lyon 0d861d03ec fix: prioritize terminal checkpoint status 2026-06-21 03:21:09 +08:00
Lyon 4ce6b2db1b Merge pull request #1773 from pikasTech/fix/1770-turn-timing-authority
fix: keep turn timing independent from sessions
2026-06-21 03:08:41 +08:00
lyon e30e9e84aa fix: keep turn timing independent from sessions 2026-06-21 03:08:14 +08:00
Lyon 224aac2061 Merge pull request #1772 from pikasTech/fix/1770-workbench-timing-transport
修复 Workbench 耗时回跳和瞬态 fetch 主消息诊断
2026-06-21 02:56:48 +08:00
lyon bcc8aa189b fix: stabilize workbench timing diagnostics 2026-06-21 02:56:19 +08:00
Lyon 2d08134c6d Merge pull request #1771 from pikasTech/fix/1770-code-agent-retry-stop
fix: 收敛 Workbench Code Agent retry 与终态投影
2026-06-21 02:44:07 +08:00
lyon a6b5e9a975 fix: harden workbench agent retry projection 2026-06-21 02:43:33 +08:00
Lyon 21a812ac56 Merge pull request #1769 from pikasTech/fix/workbench-session-terminal-from-trace
fix(workbench): 用 durable trace 终态收敛 session running
2026-06-21 01:56:44 +08:00
lyon 49e42be440 fix(workbench): derive session terminal status from durable trace 2026-06-21 01:56:09 +08:00
Lyon cd981355c6 fix(workbench): keep per-turn message timing isolated (#1768) 2026-06-21 00:56:12 +08:00
Lyon 967969db26 Merge pull request #1766 from pikasTech/fix/1753-existing-trace-resequence
fix: 修复既有 Workbench trace migration resequence
2026-06-20 20:44:49 +08:00
lyon 183cf653f4 fix: resequence existing workbench trace migration 2026-06-20 20:43:37 +08:00
Lyon 971922be47 Merge pull request #1765 from pikasTech/fix/1753-v5-migration-resequence
fix: resequence Workbench trace migration
2026-06-20 20:35:30 +08:00
lyon 482218f2cc fix: resequence workbench trace migration 2026-06-20 20:34:15 +08:00
Lyon fb1fe8d94a feat(otel): 服务端 HTTP request span 追穿 hwlab-cloud-api 503 (#1764)
问题:hwlab-cloud-api 服务端 503(如 workbench 投影存储不可用)在 Tempo
里只有 workbench-ui 浏览器侧 span,没有服务端 request handler span,导致
后端根因(error.code=projection_store_unavailable 等)只能在应用日志里看,
OTel 链路追不到服务端处理层。

修复:
- otel-trace.ts 新增 emitHttpServerRequestSpan(scope hwlab.http.server,
  SPAN_KIND_SERVER),捕获 http.route/method/status_code/status_class、
  request.id,5xx 时落 STATUS_CODE_ERROR 并把 error.code/category/layer
  写入 span 属性与 status.message。
- error-envelope.ts 的 decorateErrorPayloadForHttp 把诊断 error code/
  category/layer 回写到 hwlabHttpRequestContext.lastHttpError,供 finish
  时复用,避免重复解析。
- server.ts 在 response finish 时按 http context + backend performance
  时序发服务端 span;health/metrics 探针路由跳过,避免 OTel 噪声洪泛。

验收:canary 调用 emitHttpServerRequestSpan 发 503 projection_store_unavailable
span 到 D601 platform-infra OTel collector,Tempo 可查到 service=hwlab-cloud-api、
scope=hwlab.http.server、http.response.status_code=503、error.code=
projection_store_unavailable 的 ERROR span。
2026-06-20 20:31:36 +08:00
Lyon 9488df380c Merge pull request #1762 from pikasTech/fix/1753-migration-idempotent
fix: 修复 Workbench trace migration 幂等性
2026-06-20 20:25:35 +08:00
lyon 69d5264360 fix: make workbench trace migration idempotent 2026-06-20 20:24:48 +08:00
Lyon 4bd7ef5c96 Merge pull request #1761 from pikasTech/fix/1753-terminal-outbox
fix: recover Workbench terminal outbox projection
2026-06-20 20:15:31 +08:00
lyon bad5a478bd fix: recover Workbench terminal outbox projection 2026-06-20 20:12:01 +08:00
Lyon c4e44e1db8 Merge pull request #1760 from pikasTech/fix/1753-terminal-recovery
fix: 恢复 AgentRun terminal 投影
2026-06-20 20:06:09 +08:00
lyon 800f674d5c fix: recover AgentRun terminal projection 2026-06-20 20:05:13 +08:00