Skip to content

provider-opencode-go: CodeRabbit review fixes (review before official) - #2

Merged
faramirezs merged 1 commit into
feat/provider-opencode-gofrom
feat/provider-opencode-go-cr
Aug 4, 2026
Merged

provider-opencode-go: CodeRabbit review fixes (review before official)#2
faramirezs merged 1 commit into
feat/provider-opencode-gofrom
feat/provider-opencode-go-cr

Conversation

@faramirezs

Copy link
Copy Markdown
Owner

Fixes for the 9 CodeRabbit comments on iii-hq#690 — staged here for review before the official PR moves.

Fixed (7)

  • iii-permissions.yaml: deny provider::opencode_go::abort (Major/security — agents must not cancel router-owned streams; matches provider-claude-code, the only sibling with an abort surface)
  • sse.rs: relay delta.reasoning_content as thinking blocks (the OpenCode Go wire emits it — live-verified); bound tool-call index to 64 (malformed upstream could grow the vec unboundedly)
  • upstream.rs: data_line per SSE spec — accept data: without a space, join repeated data: lines (was silently dropping assistant output)
  • curated.rs: per-model max_output_tokens from models.dev limit.output (24 values); 4096 stays the unknown-id fallback
  • reasoning.rs: Minimal maps to minimal then none (gpt-5.6-luna publishes none as its floor) + tests
  • register.rs: log router::ready trigger registration failures (was let _)
  • README.md (root): repair the split provider-openai table row our port commit broke; provider README III_WS_URLIII_URL (code + engine convention; sibling READMEs carry the old doc name)

Skipped with reasons

  • main.rs III_URL → III_WS_URL: inverted — every binary in the repo incl. the engine (harness/src/main.rs) uses III_URL; fixed the README instead
  • discovery.rs (no URL when path ≠ /chat/completions): the fallback only triggers for non-OpenAI-compatible paths; skipping discovery would silently stall catalog refreshes — kept the deliberate fallback
  • integration abort test (heavy lift): the abort guard is scaffold-owned (pump_abortable/StreamAborts, shared with kimi/codex); our wiring is the 2-line register + pre-spawn check — follow-up

Verification

  • fmt/clippy clean; 68 tests pass (58 lib + 2 bin + 4 schema + 4 integration vs real engine); harness prompt sweep 5/5

- iii-permissions.yaml: deny provider::opencode_go::abort (agents must not
  cancel router-owned streams; matches provider-claude-code)
- sse.rs: relay delta.reasoning_content as thinking blocks (the OpenCode Go
  wire emits it, live-verified); bound tool-call index to 64 (malformed
  upstream could grow the vec unboundedly)
- upstream.rs: data_line per SSE spec — accept data: without a space and
  join repeated data: lines instead of silently dropping output
- curated.rs: per-model max_output_tokens from models.dev limit.output;
  4096 stays the unknown-id fallback
- reasoning.rs: Minimal maps to minimal then none (gpt-5.6-luna floor)
- register.rs: log router::ready trigger registration failures
- router_client.rs: narrow module doc claim
- README: repair split provider-openai table row; III_WS_URL -> III_URL
  (code + engine convention); thinking-delta relay note
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

skill-check — worker

0 verified, 54 skipped (no docs/).

Layer Result
structure
vale
render

Three for three. Nicely done.

@faramirezs
faramirezs merged commit 9670568 into feat/provider-opencode-go Aug 4, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant