All pages
feedback
sexpgpu feedback sends a bug report or feedback to SexpGPU's authors from the
machine it happened on. Agents are its usual reporters: when a verb does what
its page says it should not, or a diagnostic or a page leaves you guessing,
report it where it happened instead of working around it.
sexpgpu feedback --bug "doctor says run ok, then run --device cuda panics at device open"
sexpgpu feedback "explain --json would diff better with the knobs sorted"
sexpgpu feedback --bug --reply-to me@example.com "check accepts :warmup-steps 0"
sexpgpu feedback --bug - <<EOF # a long report, with its log
run --resume latest on o41:// starts again at step 0
$(tail -40 run.log)
EOF$ sexpgpu feedback --bug "check accepts :warmup-steps 0 and run divides by it"
feedback 8c1f6d2e-4b7a-4c39-9d1e-2f6a5b3c7d10 recordedThe message is the one operand, quoted, or standard input when the operand is
-; feedback is the only verb that reads standard input. A message that
starts with - reads as a flag, so give it on standard input.
What it sends
One JSON object, posted to https://sx.041.io/api/feedback:
| field | value |
|---|---|
kind | bug with --bug, otherwise feedback |
message | the message without leading and trailing whitespace, 1 to 20000 UTF-16 code units |
replyTo | --reply-to: an email address or an http(s) URL to answer at, at most 500 UTF-16 code units; absent without the flag |
context | the binary and the system, below |
{
"client": { "name": "sexpgpu", "version": "0.1.0", "features": ["metal"] },
"os": { "platform": "darwin", "arch": "arm64", "release": "24.6.0" }
}version is what sexpgpu --version prints, features the devices the binary
supports (cuda, metal, or none), platform and arch the system's names
(darwin, linux; arm64, x64), and release what uname -r prints,
null when uname fails. Nothing else goes: no login or key of any kind, no
file, no working directory, no environment variable, and no GPU is probed.
A character outside the Basic Multilingual Plane, as most emoji are, counts two UTF-16 units, so 20000 units hold 20000 Latin, Cyrillic or common Chinese characters, or 10000 emoji.
The answer
A recorded report prints feedback <id> recorded on standard output and exits
0, also when standard output has closed, so a closed pipe never makes a
recorded report look failed and get sent again; the id names the report. A
report the endpoint refuses prints its reason, sexpgpu feedback: <reason>, or
the status when it gives none, sexpgpu feedback: <url> answered 404 Not Found,
and exits 1, as does an endpoint that cannot be reached or does not answer
within 15 seconds. An empty message, one past 20000 UTF-16 units once trimmed,
standard input that is not UTF-8, or standard input over 1 MiB, which is read no
further, exits 2 before anything is sent.
Related: the command line, working as an agent.