Save the repository's composer draft
Upserts the live draft text for repo’s composer. Called debounced on every edit; the client also calls this with an empty string on submit, so nothing is left behind for a message that was actually sent. The same repository open in two windows shares this one row — the later save always wins, and neither window’s draft is migrated or erased by the other opening. A clearing write names the content it expects to be clearing via ifMatchesSha256, so a submit in one window can never erase text another window typed into the same repository.
Query Parameters
Absolute path of the repository whose draft to save.
4096Optional precondition: apply this write only while the draft currently stored for repository is still the one whose text hashes to this digest — lowercase hex SHA-256 over the text's UTF-8 bytes, where a repository with no stored draft hashes as the empty string. 412 and no write when it no longer matches, which means another client wrote the row after this one last did. Debounced saves omit it; the terminal sends it only when CLEARING a draft it just submitted or discarded, naming the text it itself last stored — so the clear reaches its own text and never a sibling window's unsent draft.
^[0-9a-f]{64}$Body
A repository's saved composer draft — the host's own record of text no client has submitted yet, shared by every session and every window open against that repository.
The draft text. A @path:N-M line-range mention travels unchanged; BOTH marker kinds a composer can hold — a paste chip and an attached file — are expanded to what they stand for before the client ever saves it here, so a stored draft never carries a marker with nothing behind it, since the registry that gives either marker meaning is client-local and does not survive a restart — which is also why the bound is 8 MiB rather than the original 64 KiB (round-3 review finding 2): a single ~2,000-line pasted file already expands past 64 KiB, and the save silently disabling itself past that point (this is a fire-and-forget best-effort save, so the client never learns the write was rejected) cost the whole draft, not just the paste, the one time this feature exists to protect.
8388608Response
Saved.

