Files
Jyotisha/docs/tasks/PROGRESS-consult-followup-tool-contract-20260917.md
T
jesse-ux dc2f2a16bb
Independent Staging Quality Gate / validate (push) Successful in 9m22s
Independent Staging Quality Gate / publish (push) Successful in 13m39s
fix(consult): 每一轮回答前都必须调用排盘工具
2026-09-17 14:21:33 +08:00

1.9 KiB
Raw Blame History

进度 · 咨询追问轮必须先调排盘工具(2026-09-17)

基线:origin/staging @ 6d097de9。 分支:codex/consult-followup-tool-contract-20260917。 BUG922、923。Skill 未 bump。

做了什么

  • T1 / BUG-922:删掉本命与窗口两处「简单追问可复用 existing packet/context」。frontend/src 已无 follow-ups may use
  • T2 / BUG-923consultationNatalPrepareStep 第 0 步 toolChoice: "required"。新增 consultationWindowPrepareStep,申报时段首次 stream 与合同 retry 走 windowStreamOptionsretryForAnswer / 续写 / 分段不带强制。
  • prepareStep 类型@mastra/core/dist/agent/types.d.tstoolChoice'auto' | 'none' | 'required' | { type: 'tool'; ... }。本仓接受 "required",未升级依赖。源码注释里曾写「思考模式供应商拒 named/required」;产品拍板每轮必调工具,仍上 required。若某模型线上拒收,另立单。
  • T4 第一轮取证(执行方无 VPS,留给产品/部署):
cd /opt/jyotisha-production
docker compose -f deploy/docker-compose.server.yml logs web --since 2026-09-17T00:00:00 \
  | grep agent-observability | grep '<该会话的 sessionId>' | head

三条 run.failed 若都没有 tool 步骤,即本单同一根因;若第一轮有 toolstatus: failed,另立单。

测试

结果
tsc --noEmit 0 错
改动文件 eslint 0 error
consultation-workflow-contract + voice 14 passed / 0 fail(含 BUG-922/923 契约)
consultation-agentic-runtime / consultation-birth-time-mode 本机 Windows EPERM symlinkskill runtime alias),Linux CI 不受影响。断言已写在这两个文件里。
Python 未改
客户端 bundle 未改,gzip 应为 0

T4 第一轮失败原因需 VPS agent-observability 日志,本机做不了。