docs: 完成 Workbench L1 Kafka DNS 验收

This commit is contained in:
pikastech
2026-07-18 09:34:51 +02:00
parent 124eee9cf7
commit 56f820fbb9
2 changed files with 94 additions and 1 deletions
@@ -0,0 +1,89 @@
# R7 任务报告
## 结果
- 已解决 HWLAB #2649
- NC01/v03 Workbench L1 native Kafka consumer 可解析 broker metadata 返回的 Kubernetes 短域名;
- 保持 agentrun.event.v1 -> hwlab.event.v1 -> SSE 单一 Kafka authority
- 未增加 AgentRun /events、/result、Cloud API SSE、snapshot/read-model fallback
- 未开放 Kafka NodePort,也未修改 host resolv.conf 或 hosts。
- HWLAB PR #2652 已合并:
- merge commitc926dbfb914f4ee4365e11762a47900e48790974
- KafkaJS 仅在显式 env 存在时注入进程内 DNS resolver
- resolver 使用 YAML 声明的 DNS server 与 search domain
- Cloud bridge、Kafka query/live stream 和正式 Kafka CLI 复用同一 socket factory
- kafka render trace 透传 endOffsetsErrorDNS 失败不再退化成无细节零事件。
- UniDesk PR #2507 已合并:
- merge commit15aa6da8872185947d2548d9eae9c4ed7f0600bc
- owning YAML 声明 CoreDNS 10.43.0.10 与 search domain cluster.local
- parser 与 native env renderer 只向 NC01/v03 Workbench L1 注入配置。
## 根因
- Kafka bootstrap ClusterIP 可从 NC01 host 连接。
- broker metadata 广播 platform-infra.svc 短域名。
- host 系统 DNS 无法解析该名称。
- 仅指定 CoreDNS 仍会因缺少 Pod 内 search domain 返回 ENOTFOUND。
- 显式补齐 cluster.local 后,metadata hostname 可解析为 broker Pod IP。
- 修复前 native consumer group 不存在;修复后 group offset 与 log end 均为 32322lag=0。
## L0 验证
- HWLAB 聚焦测试:68 pass / 0 fail。
- UniDesk 配置与 native readiness 测试:7 pass / 0 fail。
- 正式 CLI 从 hwlab.event.v1 完整读取真实 trace trc_2649aabbccddeeff0011223344556677
- scannedCount=32130
- queryMatchedCount=62
- appliedCount=54
- completionReason=end-offset
- endOffsetsAvailable=true
- terminalObserved=true
- final=1
- runtimeDependencies.cloudApi=false
- runtimeDependencies.database=false。
## L1 验证
- API 通过项目 CLI重启:
- 公网入口:http://152.53.229.148:6677
- PID324696
- health=200
- 日志出现 hwlab-live-kafka-event-bridge-started。
- 新 gpt.pika turn
- sessionses_1652f408-f3bf-4f67-b6f6-8d511aa5891e
- tracetrc_2649ff00112233445566778899aabbcc
- runrun_7150d1c7211446c1a930fc75014dbe55
- commandcmd_80077684cebd41bbaea7f3bfaed63e48。
- SSE-before-submit 单窗口:
- connected=true
- eventCount=48
- user、backend 与 assistant 实时可见。
- 同 trace Kafka terminal 对账:
- queryMatchedCount=64
- appliedCount=49
- assistant=1
- terminalObserved=true
- terminal=2
- final=1
- status=completed
- barrier 完整。
- 公网 Web readiness
- URLhttp://152.53.229.148:5174/workbench
- status=pass
- DOM 与侧栏交互通过;
- console errors=0
- page errors=0
- failed responses=0
- screenshot SHA256ea830bd36ecfe8c0d420c44032513f1d04a760e4b39cd4467bce4bdb6a9ca48b。
## 独立支线
- 自动 PipelineRun hwlab-nc01-v03-ci-poll-77tsr 已 Succeeded,但 status/history 观测出现 source evidence 不一致、Argo Synced/Degraded 与 25 秒 timeout
- 已登记 UniDesk #2510
- 已登记 pr-merge-driven-automatic-delivery R8.4
- 未人工补跑、sync、refresh 或修改运行面;
- 不阻塞已独立通过的 native L1。
- post-task 发现 events inspect 只能按原始数量退出,不能直接等待 assistant/terminal
- 已登记 HWLAB #2657
- 已登记 observability-trace-reliability R8
- 不在本修复中扩展 CLI 合同。
@@ -122,6 +122,10 @@
执行 [UniDesk #2326](https://github.com/pikasTech/unidesk/issues/2326):经用户明确授权修改共享 observability 基础设施后,为 Kubernetes pod discovery 的 Prometheus scrape/relabel 增加 YAML 声明的 namespace 与 pod 归属标签,并保持指标缺口 `blocking=false`;当前只登记,不在 PikaOA 或 #2322 主线实现,完成任务后将详细报告写入[任务报告](./details/observability-trace-reliability/R6_Task_Report.md)。
## R7
## R7 [completed]
解决 [HWLAB #2649](https://github.com/pikasTech/HWLAB/issues/2649):修复 NC01/v03 Workbench L1 host-native Kafka consumer 因 broker metadata 集群域名无法由 host DNS 解析而持续零事件的问题;由 owning YAML 声明 CoreDNS 地址并仅向 native API 注入进程内 DNS lookup,保持 agentrun.event.v1→hwlab.event.v1→SSE 单一 Kafka authority,禁止 AgentRun /events、/result、Cloud API SSE、snapshot/read-model fallback、Kafka NodePort和 host DNS 文件修改;先以正式 L0 CLI 读取新 trace,再以公网 L1 gpt.pika 新 hi turn、consumer group、backend/assistant/terminal 事件及 web-probe readiness 验收,完成任务后将详细报告写入[任务报告](./details/observability-trace-reliability/R7_Task_Report.md)。
## R8
解决 [HWLAB #2657](https://github.com/pikasTech/HWLAB/issues/2657):让正式 workbench events inspect 支持按事件语义等待 assistant、terminal/final,而不是依赖与业务终态无稳定关系的 --min-events 数量;继续消费同一 Kafka SSE,禁止 AgentRun /events、/result、snapshot/read-model fallbacktimeout 时有界披露已见与缺失语义,完成任务后将详细报告写入[任务报告](./details/observability-trace-reliability/R8_Task_Report.md)。