# Managed by IssueSpec. Hand edits are welcome; keep the schema valid. id: 11 title: Add file selector (@) state: closed author: name: k33g email: ph.charriere@gmail.com createdAt: 2026-09-17T21:56:20.311Z updatedAt: 2026-09-17T22:56:44.367Z labels: [] body: | Typing `@` in the composer (at the start or after a space) opens a popup listing the workspace files, filtered as the user types, with keyboard navigation (↑/↓, Enter/Tab to pick, Esc to close). Picking inserts `@` into the prompt. Implemented (2026-09-17): - Backend: `GET /api/files/search?q=&limit=` in `internal/files` (recursive walk from `--cwd`, skips `.git`/`node_modules`, ranked, capped at 500 hits / 50 000 entries). - Prompt transport: the `prompt` WebSocket message gained an optional `attachments` array (`{path, name}`); the bridge converts each one into an ACP `resource_link` block (`file://` URI) sent next to the text block, and echoes them in `user_message`. The `@path` mention stays visible in the text. The Claude Code adapter turns the link into a file reference; the mock agent echoes `[attached: name]`. - Frontend: `ui/src/mentions.ts` (pure trigger/completion logic), `useCompletion` hook, `CompletionPopup`, rewired `PromptInput`; attachments whose mention was deleted before sending are dropped. - Docs: how-to `mention-files-and-skills.md`, references updated (EN + FR). tasks: [] comments: []