Skip to main content
PUT
Save the repository's composer draft

Query Parameters

repository
string
required

Absolute path of the repository whose draft to save.

Maximum string length: 4096
ifMatchesSha256
string

Optional 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.

Pattern: ^[0-9a-f]{64}$

Body

application/json

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.

text
string
required

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.

Maximum string length: 8388608

Response

Saved.