# Phase 06: 输入框 @ 引用文件能力 - Discussion Log

> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves alternatives considered.

**Date:** 2026-04-15
**Phase:** 06-input-mention-files
**Areas discussed:** 引用来源范围, @触发方式, 输入框展示形态, 提交数据结构, 同名去歧义, 失效与上限策略

---

## 引用来源范围

**Options presented**
- A: 仅当前线程（artifacts + uploads）
- B: 当前 workspace 最近线程
- C: 全局跨线程

**User selection**
- A

**Notes**
- 用户选择稳定优先，避免跨线程复杂度与歧义扩散。

---

## @ 触发方式

**Options presented**
- A: 输入 `@` 立即弹候选，继续输入即过滤
- B: `@` 后至少 1 字符才弹
- C: 不靠 `@`，仅按钮打开

**User selection**
- A

---

## 输入框展示形态

**Options presented**
- A: 可删除标签（chip）
- B: 纯文本 `@文件名`
- C: 标签 + 文本混合

**User selection**
- A

---

## 提交数据结构

**Options presented**
- A: 复用 `additional_kwargs.files` 并增加来源元信息
- B: 新增 `additional_kwargs.referenced_files`
- C: 正文特殊标记

**User clarification**
- 用户先询问“`additional_kwargs` 是什么数据结构”，确认后给出“复用”。

**Final selection**
- A（复用）

---

## 同名文件去歧义

**Options presented**
- A: 文件名 + 类型徽标 + 路径尾段
- B: 仅文件名
- C: 发送时二次确认

**User selection**
- A

---

## 失效与上限策略

**Options presented**
- A: 软失败 + 最多 10 个
- B: 硬失败 + 最多 20 个
- C: 不设上限

**User selection**
- A

---

## Final Decision Snapshot

- 1A 2A 3A 4A(复用) 5A 6A 全部锁定。
- 本阶段目标保持在“当前线程内 @ 引用文件”边界，不引入跨线程能力。
- 新增要求：`@` 触发后的文件候选面板必须使用 dropdown 组件实现。
