forked from bots-garden/ori
| ✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme | 1 | # Managed by IssueSpec. Hand edits are welcome; keep the schema valid. |
| 2 | id: 11 | |
| 3 | title: Add file selector (@) | |
| 4 | state: closed | |
| 5 | author: | |
| 6 | name: k33g | |
| 7 | email: ph.charriere@gmail.com | |
| 8 | createdAt: 2026-09-17T21:56:20.311Z | |
| 9 | updatedAt: 2026-09-17T22:56:44.367Z | |
| 10 | labels: [] | |
| 11 | body: | | |
| 12 | Typing `@` in the composer (at the start or after a space) opens a popup listing the | |
| 13 | workspace files, filtered as the user types, with keyboard navigation (↑/↓, Enter/Tab to | |
| 14 | pick, Esc to close). Picking inserts `@<relative path>` into the prompt. | |
| 15 | ||
| 16 | Implemented (2026-09-17): | |
| 17 | - Backend: `GET /api/files/search?q=&limit=` in `internal/files` (recursive walk from | |
| 18 | `--cwd`, skips `.git`/`node_modules`, ranked, capped at 500 hits / 50 000 entries). | |
| 19 | - Prompt transport: the `prompt` WebSocket message gained an optional `attachments` | |
| 20 | array (`{path, name}`); the bridge converts each one into an ACP `resource_link` | |
| 21 | block (`file://` URI) sent next to the text block, and echoes them in `user_message`. | |
| 22 | The `@path` mention stays visible in the text. The Claude Code adapter turns the | |
| 23 | link into a file reference; the mock agent echoes `[attached: name]`. | |
| 24 | - Frontend: `ui/src/mentions.ts` (pure trigger/completion logic), `useCompletion` | |
| 25 | hook, `CompletionPopup`, rewired `PromptInput`; attachments whose mention was | |
| 26 | deleted before sending are dropped. | |
| 27 | - Docs: how-to `mention-files-and-skills.md`, references updated (EN + FR). | |
| 28 | tasks: [] | |
| 29 | comments: [] |