3 Commits
Author SHA1 Message Date
davidandClaude Opus 5.5 43e227e3f3 Report receiver: don't log senders' addresses
shellcheck / shellcheck (push) Failing after 14s
The rate limit keeps addresses in memory, for at most a day; the log
lines don't need them, so the privacy policy can say they aren't stored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 12:14:03 -07:00
davidandClaude Opus 5.5 a811c347b7 Report receiver: fix a race in its tests, and log Gitea's reasons
The first test checked that a report was no longer pending as soon as
its log reached the fake Gitea, a moment before the receiver marks it
filed, so it could fail; wait for the mark instead. The tests now close
their servers and error responses.

When Gitea refuses an issue or attachment, the receiver closes the reply
and logs Gitea's reason, such as a token without the right permission.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:43:51 -07:00
davidandClaude Opus 5.5 ce7cf08d60 Add the receiver that files error reports as Gitea issues
server/report-receiver/receiver.py takes what report sends to
federated.sh/report, behind Caddy, and files each report as an issue in
the private Federated_Computer/coredesktop-reports repository with the
full log attached. It saves each report before replying and tries Gitea
again later if it's down, limits how many reports one address can send,
and refuses oversized logs, gzip bombs included. Standard library only.

The README has the deployment steps: a Gitea user that can only file
issues there, the systemd unit, and the Caddy route. make test runs its
tests, which send reports with the real report client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:36:43 -07:00