fix(server): full-access OpenCode threads no longer ask for approvals - #9282
juliusmarminge merged 9 commits into
Effect Service Conventions: All clear
All clear
Details
Note
Your check run agent prompt is: .macroscope/check-run-agents/effect-service-conventions.md
More information about how Check Run Agents work can be found in our Help Center.
Reviewed the changed production lines in apps/server/src/provider/Layers/OpenCodeAdapter.ts (test file excluded by scope): the new autoRepliedRequestIds context field, the emitUnsafe helper, autoReplyFullAccess, and the changes in emitPendingOpenCodeRequest/emitTerminalOpenCodeRequest. No named imports from the bare effect package were introduced, no service definition/dependency-acquisition changes were made, no new error classes or lint suppressions were added, and the behavior change is covered by focused tests in OpenCodeAdapter.test.ts.
🔍 Agent activity — 2 tool calls
💭 I'm examining the diff to OpenCodeAdapter.ts, checking how it adds an unsafe emit helper via Queue.offerUnsafe and a new auto-reply function using Effect.fn and orElseSucceed, and weighing whether the error-swallowing behavior fits the service conventions I'm checking against. Since the diff is against a merge base and the head is at a later commit, I should pull up the current head version of the file for accurate context.
1. browse_code — In apps/server/src/provider/Layers/OpenCodeAdapter.ts, show the import block at the top of the file, the definition of emit/emitUnsafe, the autoReplyFullAccess function, emitPendingOpenCodeRequest, and the terminal permission.replied handler (around autoRepliedRequestIds). Include line numbers.
2. browse_code — apps/server/src/provider/Layers/OpenCodeAdapter.ts
💭 I'm checking the changed lines for convention violations—the new context field looks fine, but I'm scrutinizing whether using the raw
Queue.offerUnsafeinside an Effect service counts as a violation since it bypasses the documented runtime patterns likeManagedRuntime.makeandrunPromise. I noticeautoReplyFullAccessswallows errors silently withEffect.orElseSucceedand no logging, though that's not explicitly called out as a listed convention violation. Tests do cover the behavior change, no new imports or lint suppressions were introduced in the diff, and theEffect.fnusage matches existing patterns, so overall nothing stands out as a clear violation.
Agent Credits: 85 credits
Token usage: 10 uncached input · 39,987 cache-read input · 97,267 cache-write input · 6,959 output
Agent Credits may also include non-token charges from external tools such as web research.