--- phase: 06- plan: 01 subsystem: messaging tags: [references, files, submit-payload, unit-test] requires: - phase: 05-test-hardening-and-commit-hygiene provides: stable test baseline and commit hygiene provides: - PromptInputMessage references contract - FileInMessage reference metadata compatibility - stale reference soft-fail filtering in submit payload affects: [input-box, thread-submit, e2e] tech-stack: added: [] patterns: - additional_kwargs.files as single submit envelope - stale reference dropped without blocking submit key-files: created: - .planning/phases/06-/06-01-SUMMARY.md modified: - frontend/src/components/ai-elements/prompt-input.tsx - frontend/src/core/messages/utils.ts - frontend/src/core/threads/hooks.ts - frontend/src/core/threads/hooks.test.ts key-decisions: - "引用文件沿用 additional_kwargs.files,不引入并行字段结构。" - "失效引用只剔除并 toast,文本发送继续。" requirements-completed: [ATREF-03] duration: 20 min completed: 2026-04-15 --- # Phase 06 Plan 01 Summary **完成引用提交契约与软失败链路,确保 uploads + references 统一进 `additional_kwargs.files`。** ## Verification - `cd frontend && node --test src/core/threads/hooks.test.ts` - 2 passed, 0 failed - `cd frontend && pnpm -s typecheck` - passed ## Outcome - `PromptInputMessage` 已支持 `references` 字段。 - `FileInMessage` 已支持 `ref_kind/ref_source` 可选元信息。 - `buildFilesForSubmit` 对 stale 引用执行软剔除且不阻断发送。