Skip to content

perf(webview): uncontrolled composer input + per-session draft persistence #70

Description

@cloud-on-prem

Extracted from #39. Today every keystroke dispatches through the global useChat reducer and persists a single global draft via the state bridge, re-rendering the whole chat tree.

Make InputArea own its value locally (onSend(content, chips) replaces value/onChange), and persist drafts per session via the existing bridge getState/setState (debounced, swapped on session switch, with legacy single-draft fallback). Ride-alongs from #39: useFilePicker React 19 ref-typing fix and the textarea autosize style-thrash fix.

Size: M | Depends on: nothing (touches useChat's sendMessage signature, so sequence around #61) | Tier: 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions