Migrate PR review to openrouter with pinned 0.11.0 action #49

Manually merged
marvin8 merged 4 commits from feat/issue-92-openrouter-review into main 2026-10-16 06:26:22 +00:00
Collaborator

Migrates the wuming PR review to the openrouter backend with the fleet-standard two-tier model mapping (code/tests/performance on deepseek-v4-pro, security on kimi-k2-thinking, config/docs/shell on qwen3.7-flash) and pins the action to 0.11.0.

Tracking: marvin8/wuming#92

Migrates the wuming PR review to the openrouter backend with the fleet-standard two-tier model mapping (code/tests/performance on deepseek-v4-pro, security on kimi-k2-thinking, config/docs/shell on qwen3.7-flash) and pins the action to `0.11.0`. Tracking: marvin8/wuming#92
🔧 migrate PR review to openrouter with pinned 0.11.0 action
Some checks failed
/ gitleaks (pull_request) Successful in 16s
/ pr-review (pull_request) Successful in 1m4s
/ checks (pull_request) Failing after 2m51s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
8e25eb1869
forgejo-actions left a comment

WuMing

Found 1 issue(s). See inline comments below.

## WuMing Found **1** issue(s). See inline comments below.
@ -19,1 +18,3 @@
agents: code:deepseek-v4-pro,config:deepseek-v4-flash,docs:deepseek-v4-flash,shell:deepseek-v4-flash,security:deepseek-v4-pro,tests:deepseek-v4-flash
openrouter_key: ${{ secrets.wuming_openrouter_key }}
backend: openrouter
agents: code:deepseek/deepseek-v4-pro,config:qwen/qwen3.7-flash,docs:qwen/qwen3.7-flash,shell:qwen/qwen3.7-flash,security:moonshotai/kimi-k2-thinking,tests:deepseek/deepseek-v4-pro

config [MEDIUM]

The PR description explicitly states that the performance role should also map to deepseek-v4-pro, but this role is omitted from the agents string. This will cause the workflow to error or skip when evaluating performance files. Add ,performance:deepseek/deepseek-v4-pro to complete the model mapping.

**config** [MEDIUM] The PR description explicitly states that the `performance` role should also map to `deepseek-v4-pro`, but this role is omitted from the `agents` string. This will cause the workflow to error or skip when evaluating performance files. Add `,performance:deepseek/deepseek-v4-pro` to complete the model mapping. <!-- wuming:sha256:9b6885da7a657b6704bd75e644b15cfa04c04f9e9378c496cfb9efa7bf05edb1 -->
Author
Collaborator

#49 (comment)

🔴 Intentional — zaojun did not run a performance agent before this migration, and each repo's existing agent set is preserved. The fleet mapping assigns a model to whichever agents a repo runs; it does not add agents. The workflow will not error or skip: the agents string simply doesn't include performance, so no performance review runs, exactly as before the migration.

https://forge.marvin8.zone/marvin8/zaojun/pulls/49#issuecomment-5170 🔴 Intentional — zaojun did not run a `performance` agent before this migration, and each repo's existing agent set is preserved. The fleet mapping assigns a model to whichever agents a repo runs; it does not add agents. The workflow will not error or skip: the `agents` string simply doesn't include `performance`, so no performance review runs, exactly as before the migration.
agent-pi force-pushed feat/issue-92-openrouter-review from 8e25eb1869
Some checks failed
/ gitleaks (pull_request) Successful in 16s
/ pr-review (pull_request) Successful in 1m4s
/ checks (pull_request) Failing after 2m51s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
to 7fc98866ab
Some checks failed
/ pr-review (pull_request) Successful in 56s
/ gitleaks (pull_request) Successful in 27s
/ checks (pull_request) Failing after 3m51s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
2026-10-15 23:21:16 +00:00
Compare
⬆️ bump dependencies, align hooks
All checks were successful
/ gitleaks (pull_request) Successful in 19s
/ pr-review (pull_request) Successful in 1m25s
/ checks (pull_request) Successful in 2m12s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
4f69d87ee1
forgejo-actions left a comment

WuMing

Found 1 issue(s). See inline comments below.

## WuMing Found **1** issue(s). See inline comments below.
@ -49,2 +48,2 @@
"ty~=0.0.84",
"uv~=0.12.23",
"ruff~=0.16.10",
"ty~=0.0.85",

config [MEDIUM]

Version constraint drift: ty~=0.0.85 in pyproject.toml does not match the pinned version 0.0.88 in pylock.toml and .pre-commit-config.yaml. While technically compatible under PEP 440, this misalignment creates unnecessary ambiguity and risks future resolution conflicts. Update the constraint to ty~=0.0.88 to strictly align with the lockfile.

**config** [MEDIUM] Version constraint drift: `ty~=0.0.85` in `pyproject.toml` does not match the pinned version `0.0.88` in `pylock.toml` and `.pre-commit-config.yaml`. While technically compatible under PEP 440, this misalignment creates unnecessary ambiguity and risks future resolution conflicts. Update the constraint to `ty~=0.0.88` to strictly align with the lockfile. <!-- wuming:sha256:446a6f793efa8480ad3258d6289ec76bf05c2fe905975b11c1177c81ade60712 -->
Author
Collaborator

#49 (comment)

🔴 Intentional per the project's dependency policy: ty~=0.0.85 is the zaojun-chosen aged version (0.0.88 was too_new at scan time — under the 7-day quarantine), and uv lock may resolve a newer patch within the ~= range — the lockfile tracking 0.0.88 is by design, not drift. The pre-commit rev likewise intentionally tracks the pyproject-chosen version; pre-commit maintains its own isolated environments, so the rev does not need to match the installed version exactly.

https://forge.marvin8.zone/marvin8/zaojun/pulls/49#issuecomment-5364 🔴 Intentional per the project's dependency policy: `ty~=0.0.85` is the zaojun-chosen aged version (0.0.88 was too_new at scan time — under the 7-day quarantine), and `uv lock` may resolve a newer patch within the `~=` range — the lockfile tracking 0.0.88 is by design, not drift. The pre-commit rev likewise intentionally tracks the pyproject-chosen version; pre-commit maintains its own isolated environments, so the rev does not need to match the installed version exactly.
🐛 align hook revs with pyproject versions
All checks were successful
/ gitleaks (pull_request) Successful in 19s
/ pr-review (pull_request) Successful in 1m40s
/ checks (pull_request) Successful in 2m38s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
f054439114
forgejo-actions left a comment

WuMing

Found 3 issue(s). See inline comments below.

## WuMing Found **3** issue(s). See inline comments below.
@ -15,3 +15,3 @@
- uses: https://forge.marvin8.zone/marvin8/wuming@main
- uses: https://forge.marvin8.zone/marvin8/wuming@0.11.0
with:
forgejo_token: ${{ forge.token }}

security [CRITICAL]

A02/A05: Potential secret exposure via non-standard context syntax ${{ forge.token }}. Secrets must use ${{ secrets.NAME }} context. Using custom contexts can expose tokens to pull request workflows, allowing attackers to extract credentials via malicious PR commands or logs.

**security** [CRITICAL] A02/A05: Potential secret exposure via non-standard context syntax ${{ forge.token }}. Secrets must use ${{ secrets.NAME }} context. Using custom contexts can expose tokens to pull request workflows, allowing attackers to extract credentials via malicious PR commands or logs. <!-- wuming:sha256:721224eb0a0e488eaa91e1331d4af41fae7fa733f04ead1d77abc57d1dde1e24 -->
@ -19,1 +18,3 @@
agents: code:deepseek-v4-pro,config:deepseek-v4-flash,docs:deepseek-v4-flash,shell:deepseek-v4-flash,security:deepseek-v4-pro,tests:deepseek-v4-flash
openrouter_key: ${{ secrets.wuming_openrouter_key }}
backend: openrouter
agents: code:deepseek/deepseek-v4-pro,config:qwen/qwen3.7-flash,docs:qwen/qwen3.7-flash,shell:qwen/qwen3.7-flash,security:moonshotai/kimi-k2-thinking,tests:deepseek/deepseek-v4-pro

config [HIGH]

The PR description explicitly maps 'performance' to 'deepseek-v4-pro', but the agents string on this line is missing the 'performance' entry. This will likely cause performance-related PR reviews to be skipped or trigger unexpected fallback behavior. Add 'performance:deepseek/deepseek-v4-pro,' to the list.

**config** [HIGH] The PR description explicitly maps 'performance' to 'deepseek-v4-pro', but the agents string on this line is missing the 'performance' entry. This will likely cause performance-related PR reviews to be skipped or trigger unexpected fallback behavior. Add 'performance:deepseek/deepseek-v4-pro,' to the list. <!-- wuming:sha256:e98af7e1a76bba8e58c14e1f9488c74aa158939040bbdd36800fdec9c42abe50 -->
@ -27,3 +27,3 @@
- repo: https://github.com/astral-sh/uv-pre-commit
rev: "0.12.23"
rev: "0.13.1"

security [HIGH]

A06/A08: uv-pre-commit v0.13.1 is incompatible with uv dependency (~0.12.24) in pyproject.toml line 50. Major version mismatch can bypass integrity checks and cause inconsistent security scanning between local pre-commit hooks and CI environment.

**security** [HIGH] A06/A08: uv-pre-commit v0.13.1 is incompatible with uv dependency (~0.12.24) in pyproject.toml line 50. Major version mismatch can bypass integrity checks and cause inconsistent security scanning between local pre-commit hooks and CI environment. <!-- wuming:sha256:74dd2d875f93a93d87cb586b2e4074cf391d79809e111d86ada60da934496ca5 -->
🐛 align uv hook rev with pyproject uv version
All checks were successful
/ gitleaks (pull_request) Successful in 21s
/ pr-review (pull_request) Successful in 1m9s
/ checks (pull_request) Successful in 3m13s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
b740d71c5b
Author
Collaborator

#49 (comment)

🔴 Intentional — zaojun did not run a performance agent before this migration, and each repo's existing agent set is preserved. The fleet mapping assigns a model to whichever agents a repo runs; it does not add agents.

https://forge.marvin8.zone/marvin8/zaojun/pulls/49#issuecomment-5406 🔴 Intentional — zaojun did not run a `performance` agent before this migration, and each repo's existing agent set is preserved. The fleet mapping assigns a model to whichever agents a repo runs; it does not add agents.
Author
Collaborator

#49 (comment)

🔴 Pre-existing, untouched by this PR — forge.token is the token context provided by the zhuiri runner on forge.marvin8.zone (wuming's own ci.yml uses the identical reference), and zaojun's reviews have run successfully with it for months — including the review that produced this finding. On this single-maintainer forge, PR branches originate from the maintainer's own repos, so there is no untrusted fork vector for the described exfiltration scenario.

https://forge.marvin8.zone/marvin8/zaojun/pulls/49#issuecomment-5407 🔴 Pre-existing, untouched by this PR — `forge.token` is the token context provided by the zhuiri runner on forge.marvin8.zone (wuming's own `ci.yml` uses the identical reference), and zaojun's reviews have run successfully with it for months — including the review that produced this finding. On this single-maintainer forge, PR branches originate from the maintainer's own repos, so there is no untrusted fork vector for the described exfiltration scenario.
Author
Collaborator

#49 (comment)

🔴 Declined (fleet-wide maintainer decision): tag pinning keeps wuming release updates a one-line change per consumer repo. The repointed-tag threat requires write access to the wuming repo itself — a single-maintainer repo on this forge.

https://forge.marvin8.zone/marvin8/zaojun/pulls/49#issuecomment-5408 🔴 Declined (fleet-wide maintainer decision): tag pinning keeps wuming release updates a one-line change per consumer repo. The repointed-tag threat requires write access to the wuming repo itself — a single-maintainer repo on this forge.
marvin8 approved these changes 2026-10-16 06:24:46 +00:00
marvin8 manually merged commit ea17c3b53c into main 2026-10-16 06:26:22 +00:00
Sign in to join this conversation.
No description provided.