1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# 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 `@<relative path>` 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: []
|