summaryrefslogtreecommitdiff
path: root/bin/dot-request
AgeCommit message (Collapse)Author
2026-10-13dot-request: --inbox, and xz compression past 400 KBIgor Soarez
--inbox files into another inbox than dot: the path it posts to and the namespace it signs in both follow it, so the key signs for that inbox only. DOT_REQUEST_URL still overrides the whole URL for testing. A signed request over 400 KB -- the inbox's limit on the wire -- now goes xz -9e compressed with Content-Encoding: xz, which the inbox undoes before checking anything; a smaller one goes as it is. --compress and --no-compress override that either way. Compressing needs xz, so it joins the Brewfile; without it a request that must be compressed is refused, never sent plain. Checked against a local inbox: 148 KB sent plain, 740 KB compressed to 37 KB and accepted, --no-compress over the limit refused with 413, --compress on a small request accepted, a bad --inbox name refused before signing.
2026-09-28AGENTS.md is the file; CLAUDE.md imports itIgor Soarez
Every agent here except Claude Code reads AGENTS.md -- pi, codex, and aider now that its read: says so. The vendor-neutral name was the symlink and the Claude-specific one the real file, with a header saying the file was guidance "to Claude Code". Swapped, keeping history on the real file through git mv. Claude Code has read AGENTS.md directly since v2.1.277 and the machine this was done on is newer, so the obvious move was to delete CLAUDE.md. Checking the other machines first was worth it: four were on versions between 2.1.158 and 2.1.263, and a session on any of them would have found no instructions at all. So CLAUDE.md stays as one line, `@AGENTS.md`, which the documentation endorses for exactly this case and which -- unlike the symlink it replaces -- works on Windows and does not trip Claude Code's refusal to write through a symlink. The header says to delete it once every machine is current.
2026-09-25dot-request: file a change request from a machine that cannot pushIgor Soarez
A clone made over https cannot publish anything, so a fix found on such a machine is lost at the next pull. The instructions already said to hand back a change request instead of editing; this is the command that does it. The request is markdown on stdin, signed with a key that machine holds, and posted to the inbox, which stores it only if the signature is from a key authorised there. Where the key is not authorised, nothing is stored and the submission says so. The endpoint is named here, which the leak rule would otherwise forbid, and the rule now carries the exception: a public endpoint this repo's own tooling must reach, already published by a DNS record and a certificate in the transparency logs, is not a leak. Concealing it would protect nothing and cost every machine a hand-written config file; what protects it is the signature. The private layer's check has the same exception, so it is enforced rather than remembered, and it does not extend to hosts, addresses or internal-only names. The other side is documented too: where `sz-requests` exists, what arrived can be read and judged. A signature says which machine produced the text, never that the text is right -- the machines filing these are the ones this account does not fully control.