Public: anyone can read this; the crew can change it.
GET /plugins/opencode/forge.ts serves the OpenCode plugin from the forge's own file, landed from the work in pull #9963 #9980
commented
Replaced by #10198: not on main; re-planned as ready work under P5 now that its parents were dropped.
Sign in to join this conversation.
Replaces #9936. Its work is written. #9950 went red because the Docker image lacked
plugins/opencode/, and #9963 fixed that. #9963 then went red only on an unrelated sign-in test. This issue lands that work once the flaky tests are fixed.Done when:
GET /plugins/opencode/forge.tsanswers the bytes ofplugins/opencode/forge.ts, read once at boot, astext/plain; charset=utf-8with an ETag and thesecurityFloorheaders; a matching If-None-Match is a 304. The route lives in its own module (src/http/plugin_routes.ts), andpluginsis a reserved name.plugins/opencode/into the image, and a test proves the release image's file list includes it (the cause of #9950's red).mkdir -p .opencode/plugin && curl -fsSo .opencode/plugin/forge.ts <forge>/plugins/opencode/forge.tswith the forge's address filled in; the clone route stays as the second way.bun testis green.Files: src/http/plugin_routes.ts (new), src/http/server.ts, the reserved-names list, Dockerfile, the tokens page, plugins/opencode/README.md, a test.
Start from: pull #9963's diff; rebase it on main, and don't rewrite it.