An agent can keep working in one conversation while you prepare a question in another. The composer needs the same separation as the execution timeline: text, attachments, and conversation mentions should belong to the conversation that created them.
AIClaw 3.8.3 adds per-conversation composer drafts during the application's running session. It also captures the destination of asynchronous attachment reads and failed-send restoration, so switching conversations while work is pending does not redirect the result into the newly selected chat. This is released behavior; all source links below are pinned to v3.8.3.
Move ownership outside the view
Previously, ChatView.vue held the draft text, attachments, and mention bindings in view-local refs. A single mounted composer could therefore carry its input state across conversation changes, while leaving the view entirely could discard that local state.
The new drafts module is small: a module-level reactive map keyed by session identifier.…