Repository navigation
v0.2.7 — Chat duplicate submission + error surface
Patch on top of v0.2.6.
Fixes the "3 identical user messages, no AI reply" pattern when shift+clicking a mindmap node to send to chat.
Two bugs, one symptom
1. ChatPanel double-mount
NotebookView renders ChatPanel twice — once in the desktop layout (`md:flex`) and once in the mobile layout (`md:hidden`). Tailwind's `md:` prefix toggles visibility, not mounting, so on desktop both ChatPanels stayed in the React tree with their own `useChat()` instances.
Both received `externalPrompt={chatPrompt}` from the mindmap shift+click handler. Both fired `sendMessage` in parallel → two POSTs to the chat endpoint → two duplicated user messages persisted → race between the two streaming responses → the screenshot's "three identical user messages, no AI reply" pattern.
Fix: mobile ChatPanel no longer receives `externalPrompt`. Mindmap shift+click is a pointer gesture without a touch equivalent anyway, so the mobile path is moot.
2. Chat errors never surfaced
ChatPanel never read or rendered useChat's `error` field, so when the AI provider returned 4xx/5xx (or the chat endpoint was misconfigured in dev) the user just saw an empty assistant slot with no indication of what went wrong.
Fix: dedicated danger-toned error banner appears below the message list when the stream errors, with a hint pointing the user at Settings → Providers to re-test their chat credential.
Commits
```
$(git log -1 --format=%h) fix(chat): kill duplicate submission + surface chat errors — bump 0.2.7
```
Full diff: v0.2.6...v0.2.7