merge: consultation fixes into staging
# Conflicts: # docs/BUG_HISTORY.md
This commit is contained in:
@@ -2728,3 +2728,19 @@
|
||||
- 相关记录:BUG-010、BUG-090、BUG-123
|
||||
- 复发自:无
|
||||
- 修复版本:本地 staging 候选(未 push / deploy)
|
||||
|
||||
## BUG-161 | 咨询状态读取 503 与前台排盘在模型调用前超时
|
||||
|
||||
- 状态:resolved(local candidate,待迁移与部署验收)
|
||||
- 首次发现:2026-08-11
|
||||
- 最近更新:2026-08-11
|
||||
- 影响面:`GET /api/consult/status`、首页前台咨询生成;个人报告与高严谨工作流继续保留完整外部证据链。
|
||||
- 用户现象:咨询状态接口返回“暂时无法读取咨询状态”;已发布且启用的模型仍无法开始聊天,咨询请求最终取消且没有生成回复。
|
||||
- 触发条件:self-hosted Web 以 `service_role` 直查启用 RLS 的 `consultation_requests`;前台咨询缓存未命中新星盘时,同步执行 VedAstro overview/full snapshot/range scan 与末尾 gateway,累计耗时超过 Web 请求时限。
|
||||
- 根因:这是两个独立故障。状态接口所用 `service_role` 缺少 `consultation_requests` 的表级 SELECT;聊天失败发生在模型调用前,排盘主链把可选外部交叉验证当作前台同步必经步骤,多个外部调用超时累计后触发前端 workflow 超时。
|
||||
- 修复:向前迁移仅授予 `service_role` 对 `consultation_requests` 的 SELECT,浏览器角色仍无表权限;只有 `/api/consult` 传入 foreground 模式,Python 前台路径跳过 VedAstro main-entry overview 与 gateway,返回明确的 `foreground_optional_evidence_deferred` 降级状态并继续使用本地 D1、分盘、Arudha、Narayana、Ashtakavarga 与 KP 证据。个人报告保持默认完整工作流,排盘缓存键区分是否跳过外部 overview,避免快速结果污染完整报告缓存。
|
||||
- 验证:Python 聚焦回归覆盖 foreground 标志传播、overview/gateway 不执行、本地结果可回答且外部供应商不可用不致命;前端合同覆盖只有聊天传 foreground、报告不传;数据库合同覆盖 `service_role` 有 SELECT 且 `anon`/`authenticated` 无 SELECT。最终本地测试结果见本次任务记录。
|
||||
- 防复发:服务器直查启用 RLS 的表必须同时验证运行角色、表权限与策略;用户前台请求不得同步串联多个可选外部证据调用;快速排盘与完整证据排盘必须使用不同缓存键。
|
||||
- 相关记录:BUG-159、ERR-020、ERR-021、ERR-022、ERR-024、ERR-025、ERR-026、ERR-104
|
||||
- 复发自:无
|
||||
- 修复版本:本地 staging 候选(未 push / deploy)
|
||||
|
||||
Reference in New Issue
Block a user