Files
makelore/.project-docs/30-worklog/tasks/20260924-agent-rendering-a8c2d419.md
T

49 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Task: Fix consultation response rendering
## Identity
- Task ID: 20260924-agent-rendering-a8c2d419
- Mode: Feature
- Branch: codex/20260924-agent-rendering-a8c2d419-agent-rendering
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260924-agent-rendering-a8c2d419
- Base commit: 0a8fce67a4ea6de291f82c09c17d3efe0ea7b92c
- Owner: codex
- Status: Blocked
## Scope
- 修复用户截图中的咨询面板渲染:空旧草稿导致数字 0;定位序列化项目上下文进入智能体回复的问题。客户端仅修改证据确认的显示缺陷,云端事件生产问题在独立 Yuxi 任务处理。
- 后续用户追加“这次回复没有整理完整 / 这次整理没有完成”的截图,继续同一回复渲染任务,核对结构化回复解析;先前产品修复提交 3c68155 保留且尚未合并部署。
## Intent And Constraints
- maintain-project-docs 与 diagnosing-bugs 已加载。官方 check/start/status、项目记忆与 peer scope 检查完成,Concurrent/Planning Gates Passed;Feature 模式仅写本人记录和必要产品/测试文件。
- 保留用户话题原文,不批量替换转义字符,不以 JSON 外形猜测并删除回复。线上事件探针被自动审批以 blocked by policy 拒绝,已停止该访问方式,改用本地数据和真实协议测试。用户随后批准创建 1 个全新只读 Reviewer,已委派两端补丁审查。
## Outcome
- 已从本地历史确认异常回复含序列化上下文;Yuxi 对非 AI 消息的错误投影在关联任务修复,客户端不添加猜测式内容清洗。
- 空旧草稿条件显式转换为 Boolean,避免 references.length 为 0 时作为 React 子节点显示。保留有内容的旧草稿入口,产品流程不变;README 无需改变。
- 追加的结构化格式错误尚未确认根因、未修改产品解析代码。当前阻塞为原始模型回答缺失;旧版客户端仍显示0不代表未部署的3c68155修复回归。
## Verification
- pnpm exec vitest run tests/unit/coding-teacher-ui.test.tsx -t 'does not render a zero' --maxWorkers=1:预期失败,复现截图数字 0。
- pnpm exec vitest run tests/unit/coding-teacher-ui.test.tsx --maxWorkers=1:30 passed。
- MAKELORE_LAYOUT_BROWSER_CHANNEL=msedge pnpm exec playwright test tests/e2e/teacher-discussion-layout.spec.ts --grep ordinary:319/508px 两个真实浏览器页面用例通过,使用现有隔离页面与模拟 API。
- pnpm run typecheck、三处改动文件的 eslint、pnpm run build:vite、git diff --check:通过。构建仅有既有 chunk 大小及动态/静态混用提示。
- 官方 check_doc_drift.py:Feature 文件所有权边界通过。未打包、安装、合并、推送或部署;未进行线上收费对话。
- 用户授权的全新只读 Reviewer agent_rendering_review 独立审查 PASS,无 findings;复跑客户端 30/30、Yuxi 55/55 通过。已目视核对508px页面截图,无数字0,回复/草稿/快捷提问显示正常。
- 追加截图诊断:官方 start/status 已恢复同一任务;复用未变项目记忆及113项既有scope,补读新增只读Reviewer记录,Concurrent/Planning Gates再次通过。精确匹配本地13:17的两条问题,均为discussion-v1/completed,只有固定INVALID_REPLY和INVALID_TOOL被落盘,未存模型原文;读取仅限用户报告的项目话题。
- 当前代码将 structuredText 交给 applyDiscussionReply 后覆盖 response,失败时不保存原始回答。截图两种提示并存,说明没有提取出有效reply且结构化解析/组件校验失败;单纯云端output非string或为空只会产生INVALID_REPLY,不会额外产生INVALID_TOOL。未掌握原始输出,不把格式错误、截断或解析误判中的某一种说成已确认根因。
- 现有Reviewer独立核对final-output合同:teacher request_view返回run_id,客户端随后读取run_view;get_agent_run_result.output来自同次output_message.content(Text string),checkpoint最终AI内容按字符串或text block抽取,无messages transport wrapper。structuredReply只传入完成态该字符串,字段/类型合同一致。故没有证据支持接口字段适配或猜测式parser补丁。
## Follow-ups
- 部署 Yuxi 并更新客户端后才能影响用户当前安装,部署后验收一次真实提问及只读工具续接。历史异常原文保持不变。当前仅交付任务分支修复,不含合并或部署。
- 等待用户提供13:17两次问题中任一次Yuxi原始回答(异步问题已发出);复用已授权的现有只读Reviewer完成final-output字段合同核对,没有创建新智能体,不重试已拒绝的凭据/云端事件探针。在拿到可复现原文前不猜测修改parser,也不把上轮角色过滤保证为本轮格式错误的修复。追加诊断未达Ready for Integration,不调用complete,保留同一任务所有权以便恢复。
## Promotion Candidates
- None recorded.