Ports ops/forwarder (standalone Python HTTPServer, flaky) into the NestJS app as an in-process OpencodeService:
RX text on MESH_NOTIFY_CHANNEL → bot calls the opencode API directly (workspace resolve → session pin/discovery → message POST), same wrapper text, Basic auth, 15 s timeouts, retry backoff 2s/10s/30s ×4
Preserved semantics: read timeout on the final message POST = DELIVERED (opencode holds the response until the agent turn finishes) → success, no duplicate injection
MESH_NOTIFY_URL webhook removed (its only consumer was the forwarder); channel gate + self-echo filter kept
compose: forwarder service deleted; bot gains OPENCODE_API/WORKSPACE_PATH/SESSION/USER/PASS env
tests 80 → 88, build + oxlint clean
Closes the "forwarder is very unstable" issue — one less process to babysit.
Ports `ops/forwarder` (standalone Python HTTPServer, flaky) into the NestJS app as an in-process `OpencodeService`:
- RX text on `MESH_NOTIFY_CHANNEL` → bot calls the opencode API directly (workspace resolve → session pin/discovery → message POST), same wrapper text, Basic auth, 15 s timeouts, retry backoff 2s/10s/30s ×4
- Preserved semantics: read timeout on the final message POST = DELIVERED (opencode holds the response until the agent turn finishes) → success, no duplicate injection
- `MESH_NOTIFY_URL` webhook removed (its only consumer was the forwarder); channel gate + self-echo filter kept
- compose: forwarder service deleted; bot gains `OPENCODE_API/WORKSPACE_PATH/SESSION/USER/PASS` env
- tests 80 → 88, build + oxlint clean
Closes the "forwarder is very unstable" issue — one less process to babysit.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ports
ops/forwarder(standalone Python HTTPServer, flaky) into the NestJS app as an in-processOpencodeService:MESH_NOTIFY_CHANNEL→ bot calls the opencode API directly (workspace resolve → session pin/discovery → message POST), same wrapper text, Basic auth, 15 s timeouts, retry backoff 2s/10s/30s ×4MESH_NOTIFY_URLwebhook removed (its only consumer was the forwarder); channel gate + self-echo filter keptOPENCODE_API/WORKSPACE_PATH/SESSION/USER/PASSenvCloses the "forwarder is very unstable" issue — one less process to babysit.