Persist per-thread composer drafts and reuse project draft threads

- add a zustand-backed composer draft store with localStorage persistence for prompt, cursor, model/effort, and image attachments
- wire ChatView to draft state, restore/clear drafts correctly, and warn when an attachment cannot be persisted
- track per-project draft thread IDs so Sidebar reuses hidden draft threads and excludes empty drafts from thread lists
545a9193e2Julius Marminge committed on 3/2/2026, 6:36:35 AM· committed by Julius Marmingeparentfa0205c
7 files changedLine totals unavailable