8.0 KiB
| status | phase | source | started | updated | |||||
|---|---|---|---|---|---|---|---|---|---|
| diagnosed | 06- |
|
2026-04-15T03:14:38Z | 2026-04-15T06:02:00Z |
Current Test
[testing complete]
Tests
1. 输入 @ 可看到当前线程文件候选并可过滤
expected: 在输入框输入 @ 后出现候选列表,继续输入关键字可过滤,且候选仅来自当前线程。 result: issue reported: "出现的候选列表,应该在紧贴在input的上方" severity: cosmetic
2. 选择候选后显示引用 chip 且支持删除/去重
expected: 选择候选后,输入区显示可删除 chip;重复选择同一文件不会重复新增;可通过删除按钮或 Backspace 移除最后一个 chip。 result: issue reported: "我希望引用的图片出现在textarea中而不是在input上方,而且不要复用tag组件" severity: major
3. 引用上限为 10,超过会被阻止并提示
expected: 单条消息最多只能添加 10 个引用;尝试添加第 11 个时出现错误提示且不会新增。 result: issue reported: "限制为6个。且点击后端列表的时候不要收起input" severity: major
4. 失效引用会被自动移除,但文本发送不被阻断
expected: 当某个已选引用失效时,发送时会提示“部分引用已失效,已自动移除”,其余内容仍成功发送。 result: skipped reason: "本地无法测试失效引用。"
5. 带引用的消息可正常发送并保持文件上下文
expected: 发送包含引用的消息后,消息成功进入对话流;引用对应的文件信息在后续上下文中可用。 result: issue reported: "文件信息在上下文中不可用。当前系统未被当作上下文的传参是 artifact mention(包含 ref_kind/ref_source),上传文件会被当作上下文传参;且在输入中的任何时候输入@都应出现候选列表,不应仅在输入框为空时出现。发送提及文件时也会被误认为发送文件(例如 ref_kind=mention、ref_source=upload 的对象被当作 upload)。" severity: major
Summary
total: 5 passed: 0 issues: 5 pending: 0 skipped: 1 blocked: 0
Gaps
- truth: "在输入框输入 @ 后出现候选列表,继续输入关键字可过滤,且候选仅来自当前线程。"
status: failed
reason: "User reported: 出现的候选列表,应该在紧贴在input的上方"
severity: cosmetic
test: 1
root_cause: "候选面板使用
DropdownMenuContent默认定位,且未绑定输入框锚点/上边缘约束,导致面板位置与输入区视觉预期不一致。" artifacts:- path: "frontend/src/components/workspace/input-box.tsx" issue: "mention dropdown positioned by generic menu behavior, not explicitly anchored above textarea" missing:
- "将候选列表定位策略改为紧贴输入区上方(含滚动与窗口边界处理)" debug_session: ""
- truth: "选择候选后,输入区显示可删除 chip;重复选择同一文件不会重复新增;可通过删除按钮或 Backspace 移除最后一个 chip。"
status: failed
reason: "User reported: 我希望引用的图片出现在textarea中而不是在input上方,而且不要复用tag组件"
severity: major
test: 2
root_cause: "当前引用展示放在输入区外层绝对定位容器,并复用了
Tag组件;未实现 textarea 内联引用预览组件。" artifacts:- path: "frontend/src/components/workspace/input-box.tsx"
issue: "references rendered in absolute
bottom-fullarea usingTag" - path: "frontend/src/components/ui/tag.tsx" issue: "component reused for mention chips against UX requirement" missing:
- "实现 textarea 内联引用卡片/图片缩略块"
- "替换 Tag 复用,使用专用引用 UI 组件" debug_session: ""
- path: "frontend/src/components/workspace/input-box.tsx"
issue: "references rendered in absolute
- truth: "单条消息最多只能添加 10 个引用;尝试添加第 11 个时出现错误提示且不会新增。"
status: failed
reason: "User reported: 限制为6个。且点击后端列表的时候不要收起input"
severity: major
test: 3
root_cause: "上限常量硬编码为 10;同时选择候选后调用
setMentionOpen(false)并存在外部点击收起逻辑,导致输入态被打断。" artifacts:- path: "frontend/src/components/workspace/input-box.tsx"
issue: "
MAX_REFERENCES_PER_MESSAGE = 10and mention selection closes dropdown/input focus" missing: - "上限从 10 改为 6 并同步提示文案"
- "选择候选后保持输入框展开与焦点,不自动收起" debug_session: ""
- path: "frontend/src/components/workspace/input-box.tsx"
issue: "
- truth: "发送包含引用的消息后,消息成功进入对话流;引用对应的文件信息在后续上下文中可用。"
status: failed
reason: "User reported: 文件信息在上下文中不可用。当前系统未被当作上下文的传参是 artifact mention(包含 ref_kind/ref_source),上传文件会被当作上下文传参;且在输入中的任何时候输入@都应出现候选列表,不应仅在输入框为空时出现。"
severity: major
test: 5
root_cause: "artifact 引用仅以前端构造的
additional_kwargs.files元数据提交,缺少后端可解析的上下文绑定信号;另外@触发依赖当前 token 解析,未覆盖“任意输入位置”策略。" artifacts:- path: "frontend/src/core/threads/submit-files.ts" issue: "references appended as metadata only; no backend-compatible context discriminator beyond ref_source"
- path: "frontend/src/core/threads/hooks.ts" issue: "submit envelope does not include explicit artifact-context contract for backend resolution"
- path: "frontend/src/components/workspace/input-box.tsx"
issue: "mention trigger tied to
findMentionTokenresult and closes when token not matched" missing: - "补充 artifact 引用的后端可消费上下文字段(与 uploads 对齐)"
- "确保任意输入位置输入
@都可触发候选" debug_session: ""
- truth: "若已输入文本,在任意位置输入
@仍应弹出候选;选择文件后不得清空已输入问题文本。" status: failed reason: "User reported: 如果已经输入了文字,再输入@的时候,应该弹出候选列表,如果选择了文件,不要清空已经输入的问题" severity: major test: 5 root_cause: "当前选择候选后会执行文本 token 替换并trimEnd,在已有输入场景可能导致用户已输入问题文本被截断或清空。" artifacts:- path: "frontend/src/components/workspace/input-box.tsx"
issue: "
selectMentionCandidatemutates textarea value when resolving mention token" missing: - "选择候选后仅移除当前 mention token,不影响其余已输入文本"
- "补充“已有文本 + 中途 @ + 选中文件”回归测试" debug_session: ""
- path: "frontend/src/components/workspace/input-box.tsx"
issue: "
- truth: "提及文件(ref_kind=mention)发送时应保留 mention 语义,不应被系统识别为“本次新上传文件”。"
status: failed
reason: "User reported: 在发送提及文件的时候,系统误认为我的提及文件是发送文件。因为上传时传了 {filename,size,path,status,ref_kind:mention,ref_source:upload}。"
severity: major
test: 5
root_cause: "后端 UploadsMiddleware 在
_files_from_kwargs中仅按filename/size/path/status解析additional_kwargs.files,没有排除ref_kind=mention,导致 mention 引用被归类为 new_files 并注入<uploaded_files>的“uploaded in this message”块。" artifacts:- path: "backend/packages/harness/deerflow/agents/middlewares/uploads_middleware.py"
issue: "
_files_from_kwargsignoresref_kind/ref_sourceand classifies mention references as newly uploaded files" - path: "frontend/src/core/threads/submit-files.ts"
issue: "references use
ref_kind=mentionwithref_source=upload|artifact; middleware currently does not honor this discriminator" missing: - "在
_files_from_kwargs过滤ref_kind=mention条目,不将其计入 new_files" - "补充 middleware 单测覆盖 mention 条目不被识别为本次上传" debug_session: ""
- path: "backend/packages/harness/deerflow/agents/middlewares/uploads_middleware.py"
issue: "