Lyon
0f3bc3f99a
fix workbench otel http span timing ( #1815 )
2026-06-21 12:07:37 +08:00
Lyon
6cafd495de
fix(cloud-api): keep health live nonblocking ( #1808 )
...
Route /health/live through cached runtime summary so DB durable retry cannot block liveness probes. Keep /health as the full durable readiness endpoint.\n\nRefs #1807 .
2026-06-21 10:28:02 +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
b139ffd8e4
feat: normalize cloud api error diagnostics
2026-06-20 15:08:33 +08:00
lyon
efafeccfb9
feat: attach cloud api otel trace headers
2026-06-20 14:54:51 +08:00
Lyon
40a54eef20
feat: align rum samples with backend evidence ( #1674 )
2026-06-20 09:33:54 +08:00
lyon
e79ea2cb42
feat: persist workbench projection facts
2026-06-20 08:57:21 +08:00
lyon
4eadd2f85a
fix: trace workbench loading states with otel
2026-06-20 00:47:57 +08:00
lyon
5f1763aeac
fix: persist workbench turn admission before preflight
2026-06-19 21:55:15 +08:00
lyon
d2964d93a9
fix: resume workbench agentrun projection
2026-06-19 12:46:43 +08:00
lyon
c950709b25
fix(workbench): gc stale empty sessions
2026-06-19 01:16:00 +08:00
lyon
dac2a0b3c4
fix: canonicalize web auth principal
2026-06-18 23:45:17 +08:00
lyon
08b2e3077a
fix: converge workbench session authority
2026-06-18 15:24:16 +08:00
lyon
41d6407ab2
feat: add backend performance metrics
2026-06-17 18:22:30 +08:00
lyon
837d57dd5a
feat(workbench): add realtime event stream
2026-06-17 13:30:40 +08:00
lyon
4500fb6486
feat(workbench): 持久化 Code Agent trace 投影
2026-06-17 11:58:07 +08:00
lyon
bc9ee41d83
feat(workbench): add read-only API read model
2026-06-17 11:12:04 +08:00
lyon
2679b1f14e
fix: load Code Agent traces through REST resource
2026-06-16 21:57:51 +08:00
lyon
ce1f1031f5
fix: unify code agent turn status authority
2026-06-16 19:21:13 +08:00
lyon
ea96ebf75d
feat: add redeem billing loop
2026-06-14 21:21:01 +08:00
lyon
763b583070
feat: add admin usage ledger audit
2026-06-14 20:52:27 +08:00
lyon
91cd716137
fix: allow user billing session summary proxy
2026-06-14 15:56:23 +08:00
lyon
c84ee72eb9
feat: add v03 user billing entitlements
2026-06-14 15:34:13 +08:00
lyon
4c61550609
fix: expose v03 billing summary route
2026-06-14 13:45:23 +08:00
lyon
7823bb7a95
feat: 补齐 v03 用户管理 Web parity
2026-06-14 11:04:52 +08:00
Lyon
ee78ed9fdc
fix: 修正 user-billing 自服务代理鉴权边界 ( #1187 )
2026-06-14 10:17:56 +08:00
Lyon
b9dd25ef68
feat: 补齐 v03 user-billing R1 parity 基础 ( #1179 )
2026-06-14 09:59:48 +08:00
lyon
a6b897a08f
feat: add admin user status controls
2026-06-14 01:33:26 +08:00
lyon
40099c44ec
feat: add admin billing summary
2026-06-14 00:51:46 +08:00
lyon
3a8385b6f4
feat: expose user billing usage summary
2026-06-13 23:58:15 +08:00
Lyon
3f8fc6b80c
feat: connect cloud api code agent billing ( #1139 )
2026-06-13 20:19:07 +08:00
Codex Agent
466a5350de
feat: remove static provider profile gating
2026-06-08 04:58:29 +08:00
Codex Agent
892c9af366
fix: CaseRun blocker visibility in status + cloud-api hwpod_node_not_connected error
2026-06-07 12:45:32 +08:00
Codex Agent
5a7644dac9
fix: bind hwpod node ops to target node
...
Prevent direct hwpod-node URL dispatch from executing plans on the wrong node and expose spawn diagnostics for cmd.run failures.
2026-06-06 19:41:44 +08:00
Codex Agent
42b53e5795
fix: discover preinstalled hwpod specs
2026-06-06 01:49:59 +08:00
Codex Agent
483060a3ee
feat: add hwpod node native websocket dispatch
2026-06-05 19:26:13 +08:00
Codex Agent
3e7131f6ab
refactor: converge hwpod node-ops channel
2026-06-05 17:23:56 +08:00
Codex Agent
9a2c651c3c
feat: add v02 provider profile management
2026-06-05 17:14:59 +08:00
Codex Agent
c1df458c85
feat: wire hwpod target node-ops flow
2026-06-05 13:39:20 +08:00
Codex Agent
f5be1c0361
feat: add v02 web performance dashboard
2026-06-05 12:00:23 +08:00
Codex Agent
c8a8aa505e
feat: add hwpod harness node-ops loop
2026-06-05 11:52:47 +08:00
Codex Agent
ab7d79c69a
feat: expose v02 webui performance metrics
2026-06-05 11:14:27 +08:00
Codex Agent
fd1b8c0e5a
fix(v02): remove legacy code agent control plane
2026-06-05 01:35:35 +08:00
Codex
13c779ed11
feat(cloud-api): v0.2 user API key auth (api_keys table + Bearer hwl_live_)
...
Adds the user API key foundation called out in #788 :
- New api_keys table with idx_api_keys_user and idx_api_keys_prefix
- users extended with auth_provider/keycloak_issuer/keycloak_sub/email/last_login_at
- Authorization: Bearer hwl_live_... resolves to the same AuthPrincipal
- /v1/api-keys, /v1/api-keys/default, /v1/api-keys/{id}/regenerate, DELETE /v1/api-keys/{id}
- First-admin and /auth/login bootstrap a Default API key
- Short-test mode keeps display_secret; production化 will switch to hash-only later
- Legacy HWLAB_DEVICE_POD_API_KEY and Bearer <session-token> paths preserved
- 4 new access-control.test.ts cases
Refs pikasTech/HWLAB#788
2026-06-04 15:01:30 +08:00
Codex
94b9df822c
feat: 手动化 Code Agent session 管理
2026-06-03 10:40:50 +08:00
Codex
da25cb4c02
feat: align session sidebar and cli management
2026-06-03 09:47:52 +08:00
Codex
3497a8993b
feat: support agentrun steer and idle continuation
2026-06-02 10:29:46 +08:00
Codex
577622d0ab
fix: sync terminal workbench traces
2026-06-02 01:55:19 +08:00
Codex
b7285b30b1
feat(workbench): share account workspace across web and cli
2026-06-01 21:31:26 +08:00
Codex
945c2ba3d0
fix: persist user code agent sessions
2026-05-31 16:00:05 +08:00