On Linux, aborting the server-side WebSocket left the TCP connection open,
so the client never saw the drop and the reconnect test timed out on the
Gitea runner. Ending the response closes it everywhere, as a real server's
drop does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A Forgejo workflow builds and tests every push and pull request on the
club's docker runner. A v* tag also assembles the plugin zip, checks it
with OpenAC's own plugin checker, and publishes a Gitea release with the
zip, its checksum and plugin.json.
The checker refused the manifest: both permission notes were over the
launcher's 120-character limit. They are shorter now.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>