50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
---
|
||
phase: 06-
|
||
plan: 02
|
||
subsystem: ui
|
||
tags: [mention, dropdown, chip, keyboard]
|
||
requires:
|
||
- phase: 06-
|
||
provides: reference payload contract and soft-fail behavior
|
||
provides:
|
||
- thread-scoped @ candidate aggregation
|
||
- dropdown filtering and keyboard navigation
|
||
- removable reference chips with max-limit enforcement
|
||
affects: [prompt-input, submit-payload, e2e]
|
||
tech-stack:
|
||
added: []
|
||
patterns:
|
||
- current-thread-only reference candidates
|
||
- IME-safe keyboard handling for mention selection
|
||
key-files:
|
||
created:
|
||
- .planning/phases/06-/06-02-SUMMARY.md
|
||
modified:
|
||
- frontend/src/components/workspace/input-box.tsx
|
||
- frontend/src/components/ai-elements/prompt-input.tsx
|
||
- frontend/src/core/uploads/hooks.ts
|
||
- frontend/src/components/ui/dropdown-menu.tsx
|
||
key-decisions:
|
||
- "@候选严格限定在当前 thread 的 artifacts + uploads。"
|
||
- "引用上限固定为 10,超限 toast 并阻止新增。"
|
||
requirements-completed: [ATREF-01, ATREF-02]
|
||
duration: 25 min
|
||
completed: 2026-04-15
|
||
---
|
||
|
||
# Phase 06 Plan 02 Summary
|
||
|
||
**完成输入框 `@` 引用交互闭环:候选展示、过滤、选择、chip 渲染、删除、键盘操作与上限控制。**
|
||
|
||
## Verification
|
||
|
||
- `cd frontend && pnpm -s typecheck`
|
||
- passed
|
||
|
||
## Outcome
|
||
|
||
- 输入 `@` 可拉起 `DropdownMenu` 候选并按 query 过滤。
|
||
- 选择候选后以 chip 展示,可删除且支持去重。
|
||
- `ArrowUp/ArrowDown/Enter/Escape/Backspace` 与 `isComposing` 保护已落地。
|
||
|