Skip to content

fix(review): add DeepSeek Zen free reviewer - #655

Merged
seonghobae merged 5 commits into
mainfrom
test/opencode-zen-free-rollout
Jul 30, 2026
Merged

fix(review): add DeepSeek Zen free reviewer#655
seonghobae merged 5 commits into
mainfrom
test/opencode-zen-free-rollout

Conversation

@seonghobae

@seonghobae seonghobae commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add OpenCode Zen DeepSeek V4 Flash Free as the first public-repository reviewer
  • keep North Mini Code Free as the public fallback
  • keep both free models out of private repositories because their free-period data terms permit retention or improvement use
  • require the exact DeepSeek-first order, tool-call support, and absence of forced response formatting in the contract test

Validation

  • pytest -q — 674 passed
  • pytest -q tests/test_opencode_agent_contract.py — 37 passed
  • ruff check tests/test_opencode_agent_contract.py
  • workflow YAML parse
  • git diff --check

Review evidence

  • Probe 1: tests/test_opencode_agent_contract.py:94-121 asserts the public-only expression and exact DeepSeek-then-North order.
  • Probe 2: tests/test_opencode_agent_contract.py:141-154 parses the generated provider config and asserts both models use tool calls without forced response_format.
  • Negative privacy path: .github/workflows/opencode-review-dispatch.yml:3720 includes the free prefix only when is_private == false.

Closes #648

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

OpenCode 무료 모델 카탈로그에 DeepSeek V4 Flash Free를 추가하고, 공개 저장소에서 두 무료 모델을 후보로 선택하도록 변경했다. 관련 워크플로 및 생성 설정 검증 테스트도 후보 조합에 맞게 확장했다.

Changes

OpenCode 무료 모델 라우팅

Layer / File(s) Summary
무료 모델 카탈로그 및 후보 라우팅
.github/workflows/opencode-review-dispatch.yml
deepseek-v4-flash-free의 식별자, tool call, context/output limit을 추가하고, 공개 저장소에서 DeepSeek 및 North 무료 모델을 후보로 사용하도록 조건을 변경했다.
모델 후보 및 설정 계약 테스트
tests/test_opencode_agent_contract.py
후보 조합별 검증을 지원하고, 두 무료 모델의 tool_call 활성화 및 response_format 부재를 생성된 설정에서 확인하도록 테스트를 갱신했다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed DeepSeek free 리뷰어 추가와 관련된 모델 카탈로그 및 계약 테스트 변경을 잘 요약한 제목입니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/opencode-zen-free-rollout

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title test(review): prepare staged Zen free rollout fix(review): add DeepSeek Zen free reviewer Jul 29, 2026
@seonghobae
seonghobae merged commit dd1ae25 into main Jul 30, 2026
46 of 47 checks passed
@seonghobae
seonghobae deleted the test/opencode-zen-free-rollout branch July 30, 2026 00:10
@github-project-automation github-project-automation Bot moved this from In Progress to Done in naruon Platform Roadmap Jul 30, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

Controlled bootstrap merge audit:

  • Exact PR head: 471fae2d056a53c8c91754dcfbb60f41aa55c89a; squash merge: dd1ae2585cb91ca4f57433906449c62ea585cace.
  • Reason: base-branch OpenCode run 30488270555 exhausted the old pool after North returned invalid control output; the base workflow could not use this PR’s DeepSeek Zen candidate before the fix reached main.
  • Pre-merge evidence: all current-head hosted security/CodeQL/coverage/Strix checks green, no unresolved review threads, no open code-scanning alerts on the PR ref, local full suite 674 passed, focused contract 37 passed.
  • Controlled bypass: repository ruleset 17921150 briefly granted only seonghobae pull-request bypass and branch-protection admin enforcement was briefly disabled. Both were restored immediately after the SHA-pinned merge. Post-restore state is active ruleset, empty bypass actors, admin enforcement enabled, two-review/last-push ruleset intact, required statuses intact.
  • Post-merge default branch: focused contract 37 passed; full suite including concurrently merged fix(review): materialize base coverage locks by content, not exact filename (org-backlog root cause) #657 677 passed; Ruff/actionlint/YAML/diff checks pass.

@seonghobae seonghobae moved this from Done to In Progress in naruon Platform Roadmap Jul 30, 2026
seonghobae pushed a commit that referenced this pull request Jul 30, 2026
Widen the anonymous OpenCode Zen free reviewer pool with three additional
verified models so a single model's rate-limit, delisting, or transient
outage no longer exhausts the reviewer and blocks org PRs:

- opencode-free/mimo-v2.5-free      (MiMo-V2.5 Free)
- opencode-free/laguna-s-2.1-free   (Laguna S 2.1 Free)
- opencode-free/ling-3.0-flash-free (Ling-3.0-flash Free)

Complements #655/#659 (nemotron-3-ultra-free, deepseek-v4-flash-free): the
public-repo prefix now offers six free Zen candidates before the keyed
providers. Slugs verified against OpenCode's published Zen catalog
(https://opencode.ai/zen/v1). Declared as simple tool-calling models matching
the existing merged pattern (no reasoning claim), so the reasoning-effort
guard accepts them; gated behind the existing is_private == 'false'
public-repository guard so anonymous Zen never sees private code.

Contract test updated to pin the expanded candidate list.

Verification:
- python3 -m pytest tests/test_opencode_agent_contract.py tests/test_opencode_model_pool_runner.py tests/test_assert_opencode_reasoning_effort.py tests/test_opencode_workflow_shell_syntax.py -q  -> 71 passed
- jq -n over the generated config block: rc 0
- assert_opencode_reasoning_effort.validate_candidate accepts all three
- YAML safe_load parses the workflow

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Msz8Dni5zRaqPatNCmZJZ8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

Fix Zen free review JSON output contract

1 participant