Migrate PR review to openrouter with pinned 0.11.0 action #39

Manually merged
marvin8 merged 6 commits from feat/issue-90-openrouter-review into main 2026-10-16 06:55:34 +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#90

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#90
🔧 migrate PR review to openrouter with pinned 0.11.0 action
Some checks failed
/ gitleaks (pull_request) Successful in 18s
/ pr-review (pull_request) Successful in 55s
/ checks (pull_request) Failing after 2m9s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
f9f1376688
agent-pi force-pushed feat/issue-90-openrouter-review from f9f1376688
Some checks failed
/ gitleaks (pull_request) Successful in 18s
/ pr-review (pull_request) Successful in 55s
/ checks (pull_request) Failing after 2m9s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
to a32f4559e7
Some checks failed
/ pr-review (pull_request) Successful in 55s
/ gitleaks (pull_request) Successful in 18s
/ checks (pull_request) Failing after 2m44s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
2026-10-15 23:20:58 +00:00
Compare
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 documents a two-tier model mapping that includes 'performance' alongside 'code' and 'tests' for deepseek-v4-pro, but the agents list here omits the performance entry. Add performance:deepseek/deepseek-v4-pro to align the configuration with the stated review scope.

**config** [MEDIUM] The PR description explicitly documents a two-tier model mapping that includes 'performance' alongside 'code' and 'tests' for deepseek-v4-pro, but the `agents` list here omits the `performance` entry. Add `performance:deepseek/deepseek-v4-pro` to align the configuration with the stated review scope. <!-- wuming:sha256:9b6885da7a657b6704bd75e644b15cfa04c04f9e9378c496cfb9efa7bf05edb1 -->
Author
Collaborator

#39 (comment)

🔴 Intentional — sub2pod 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. No performance review ran before this change and none runs after.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5238 🔴 Intentional — sub2pod 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. No performance review ran before this change and none runs after.
⬆️ bump dependencies, align hooks, pin vulnerable transitives
All checks were successful
/ gitleaks (pull_request) Successful in 25s
/ pr-review (pull_request) Successful in 1m27s
/ checks (pull_request) Successful in 2m16s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
9664970337
forgejo-actions left a comment

WuMing

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

## WuMing Found **3** issue(s). See inline comments below.
@ -12,3 +12,3 @@
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.5
rev: v0.17.1

config [MEDIUM]

Version conflict with pyproject.toml: pre-commit specifies ruff v0.17.1, but pyproject.toml dev dependency restricts ruff to ~=0.16.10 (<0.17.0). Update pyproject.toml or pre-commit to align versions and avoid toolchain discrepancies.

**config** [MEDIUM] Version conflict with pyproject.toml: pre-commit specifies ruff v0.17.1, but pyproject.toml dev dependency restricts ruff to ~=0.16.10 (<0.17.0). Update pyproject.toml or pre-commit to align versions and avoid toolchain discrepancies. <!-- wuming:sha256:44bb2f4a05d8d770a9267d2374a3015016a4c0aa45fe05bbe6a49f43d8b660fb -->
@ -27,3 +27,3 @@
- repo: https://github.com/astral-sh/uv-pre-commit
rev: 0.12.7
rev: "0.13.1"

config [MEDIUM]

Version conflict with pyproject.toml: pre-commit specifies uv 0.13.1, but pyproject.toml dev dependency restricts uv to ~=0.12.24 (<0.13.0). Align versions across the project to ensure consistent locking and caching behavior.

**config** [MEDIUM] Version conflict with pyproject.toml: pre-commit specifies uv 0.13.1, but pyproject.toml dev dependency restricts uv to ~=0.12.24 (<0.13.0). Align versions across the project to ensure consistent locking and caching behavior. <!-- wuming:sha256:3b6e6f5014311b53218bcd5a5fcd354c6beb1f95ff725e1ff544ffb9c3226cc8 -->
pyproject.toml Outdated
@ -69,0 +68,4 @@
"anyio>=4.14.2",
"httpcore2>=2.10.0",
"httpx2>=2.12.0",
"pydantic-settings>=2.14.2", # GHSA-4xgf-cpjx-pc3j,

config [LOW]

Non-standard TOML syntax: A trailing comma appears after the inline comment (# GHSA-4xgf-cpjx-pc3j,). TOML comments terminate the line, making the comma redundant and potentially problematic for strict parsers. Remove the trailing comma.

**config** [LOW] Non-standard TOML syntax: A trailing comma appears after the inline comment (`# GHSA-4xgf-cpjx-pc3j,`). TOML comments terminate the line, making the comma redundant and potentially problematic for strict parsers. Remove the trailing comma. <!-- wuming:sha256:7d618707969c02296a8b4989009f14939a3f20509b90856bd5507e85e6db0652 -->
🐛 align hook revs with pyproject versions
Some checks failed
/ gitleaks (pull_request) Successful in 13s
/ pr-review (pull_request) Successful in 1m27s
/ publish (pull_request) Has been cancelled
/ deploy-docs (pull_request) Has been cancelled
/ checks (pull_request) Has been cancelled
810af1c236
forgejo-actions left a comment

WuMing

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

## WuMing Found **6** issue(s). See inline comments below.
@ -13,3 +13,3 @@
if: github.event_name == 'pull_request'
steps:
- uses: https://forge.marvin8.zone/marvin8/wuming@main
- uses: https://forge.marvin8.zone/marvin8/wuming@0.11.0

security [MEDIUM]

A08: Uses a custom domain (forge.marvin8.zone) for the GitHub Action without apparent integrity verification beyond version pinning. This could be vulnerable to supply chain attacks if the domain is compromised. Consider verifying the action's cryptographic signatures or using GitHub's official marketplace.

**security** [MEDIUM] A08: Uses a custom domain (forge.marvin8.zone) for the GitHub Action without apparent integrity verification beyond version pinning. This could be vulnerable to supply chain attacks if the domain is compromised. Consider verifying the action's cryptographic signatures or using GitHub's official marketplace. <!-- wuming:sha256:1d95894bca6a6c7b257f44fa25ab1d596c9284b287d950e46ddc6aa29538777a -->
@ -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 [LOW]

The 'agents' map omits 'performance', which is explicitly mentioned in the PR description ('code/tests/performance on deepseek-v4-pro'). If this omission is intentional, you can disregard it. Otherwise, add the missing agent to ensure full coverage.

**config** [LOW] The 'agents' map omits 'performance', which is explicitly mentioned in the PR description ('code/tests/performance on deepseek-v4-pro'). If this omission is intentional, you can disregard it. Otherwise, add the missing agent to ensure full coverage. <!-- wuming:sha256:e98af7e1a76bba8e58c14e1f9488c74aa158939040bbdd36800fdec9c42abe50 -->
@ -15,3 +15,2 @@
dependencies = [
"cyclopts~=4.23.3",
"lxml~=6.1.2",
"cyclopts~=5.2.0",

security [MEDIUM]

A06: Major version bump of cyclopts from 4.23.3 to 5.2.0 may introduce new vulnerabilities or breaking security changes. Review the changelog for security-related changes and verify no known CVEs exist in this version.

**security** [MEDIUM] A06: Major version bump of cyclopts from 4.23.3 to 5.2.0 may introduce new vulnerabilities or breaking security changes. Review the changelog for security-related changes and verify no known CVEs exist in this version. <!-- wuming:sha256:4d93d60f5c5ba9c08480f4398886d283a642c8255c65b8c01a6f3393f218f06d -->
@ -21,3 +21,3 @@
dev = [
"bump-my-version~=1.5.1",
"complexipy~=7.0.1",
"complexipy~=8.0.1",

security [MEDIUM]

A06: Major version bump of complexipy from 7.0.1 to 8.0.1 may introduce new vulnerabilities. This tool analyzes code complexity and could be exploited if malicious. Verify this version has no known security issues and review its changes.

**security** [MEDIUM] A06: Major version bump of complexipy from 7.0.1 to 8.0.1 may introduce new vulnerabilities. This tool analyzes code complexity and could be exploited if malicious. Verify this version has no known security issues and review its changes. <!-- wuming:sha256:2a63d4d69194ba014a0fa9db35c139e78de2783047c8d0e73b57764d23030e72 -->
@ -31,3 +31,2 @@
"tryke~=0.0.30",
"ty~=0.0.75",
"uv~=0.12.7",
"ty~=0.0.85",

config [MEDIUM]

The version constraint 'ty~=0.0.85' conflicts with the locked version '0.0.88' in pylock.toml. The compatible release specifier (~=) for 0.0.85 expands to >=0.0.85,<0.0.86, making 0.0.88 invalid. Update the constraint to ~=0.0.88 or regenerate the lockfile with explicit overrides.

**config** [MEDIUM] The version constraint 'ty~=0.0.85' conflicts with the locked version '0.0.88' in pylock.toml. The compatible release specifier (~=) for 0.0.85 expands to >=0.0.85,<0.0.86, making 0.0.88 invalid. Update the constraint to ~=0.0.88 or regenerate the lockfile with explicit overrides. <!-- wuming:sha256:4cae564e662785f1207f778914cffb7e6497a8df7c8be647d5144461dde6a529 -->

security [LOW]

A06: Version specification ty~=0.0.85 does not match the updated lock file version 0.0.88, creating a version mismatch that could lead to dependency confusion or unexpected behavior.

**security** [LOW] A06: Version specification ty~=0.0.85 does not match the updated lock file version 0.0.88, creating a version mismatch that could lead to dependency confusion or unexpected behavior. <!-- wuming:sha256:4cae564e662785f1207f778914cffb7e6497a8df7c8be647d5144461dde6a529 -->
📝 drop stray comma from constraint comment
All checks were successful
/ gitleaks (pull_request) Successful in 30s
/ pr-review (pull_request) Successful in 1m50s
/ checks (pull_request) Successful in 2m3s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
e020636c6a
Author
Collaborator

#39 (comment)

✅ Already fixed in commit 810af1c — the ruff hook rev is aligned with the pyproject-chosen ruff~=0.16.10 (rev: v0.16.10), per the fleet-wide hook-alignment policy.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5354 ✅ Already fixed in commit `810af1c` — the ruff hook rev is aligned with the pyproject-chosen `ruff~=0.16.10` (`rev: v0.16.10`), per the fleet-wide hook-alignment policy.
Author
Collaborator

#39 (comment)

✅ Already fixed in commit 810af1c — the uv hook rev is aligned with the pyproject-chosen uv~=0.12.24 (rev: 0.12.24).

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5355 ✅ Already fixed in commit `810af1c` — the uv hook rev is aligned with the pyproject-chosen `uv~=0.12.24` (`rev: 0.12.24`).
Author
Collaborator

#39 (comment)

✅ Fixed in commit e020636 — the stray trailing comma after the inline comment is removed.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5356 ✅ Fixed in commit `e020636` — the stray trailing comma after the inline comment is removed.
🐛 align uv hook rev with pyproject uv version
All checks were successful
/ gitleaks (pull_request) Successful in 22s
/ pr-review (pull_request) Successful in 1m45s
/ checks (pull_request) Successful in 2m2s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
ceb0292af1
Author
Collaborator

#39 (comment)

🔴 Intentional — sub2pod 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/sub2pod/pulls/39#issuecomment-5392 🔴 Intentional — sub2pod 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

#39 (comment)

🔴 Declined (fleet-wide maintainer decision, consistent with the identical findings across this migration): 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 self-hosted forge.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5394 🔴 Declined (fleet-wide maintainer decision, consistent with the identical findings across this migration): 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 self-hosted forge.
Author
Collaborator

#39 (comment)

🔴 Factually incorrect — PEP 440 compatible release ~=0.0.85 expands to >=0.0.85, ==0.0.*, i.e. any 0.0.x — so the locked 0.0.88 is within the specifier, not a conflict. Evidence: uv lock resolved 0.0.88 under ty~=0.0.85 without a single warning, and CI is green.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5393 🔴 Factually incorrect — PEP 440 compatible release `~=0.0.85` expands to `>=0.0.85, ==0.0.*`, i.e. any 0.0.x — so the locked 0.0.88 is *within* the specifier, not a conflict. Evidence: `uv lock` resolved 0.0.88 under `ty~=0.0.85` without a single warning, and CI is green.
Author
Collaborator

#39 (comment)

🔴 Same as the sibling finding — ~=0.0.85 admits 0.0.88 (PEP 440: >=0.0.85, ==0.0.*), so there is no mismatch or dependency-confusion risk. The lockfile resolution is by design.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5397 🔴 Same as the sibling finding — `~=0.0.85` admits 0.0.88 (PEP 440: `>=0.0.85, ==0.0.*`), so there is no mismatch or dependency-confusion risk. The lockfile resolution is by design.
Author
Collaborator

#39 (comment)

🔴 Verified in CI on this very commit: the pysentry session scanned the resolved dependency set (including cyclopts 5.2.0) and reported zero known advisories, and the full tryke suite (3.12/3.13/3.14/3.14t) passes against cyclopts 5.x. No known CVEs exist for the bumped version.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5395 🔴 Verified in CI on this very commit: the `pysentry` session scanned the resolved dependency set (including cyclopts 5.2.0) and reported zero known advisories, and the full tryke suite (3.12/3.13/3.14/3.14t) passes against cyclopts 5.x. No known CVEs exist for the bumped version.
Author
Collaborator

#39 (comment)

🔴 Verified in CI on this very commit: complexipy 8.0.1 runs successfully in the complexipy-3.12 session on the migrated stack, and pysentry reports zero known advisories for the resolved set including complexipy 8.0.1.

https://forge.marvin8.zone/marvin8/sub2pod/pulls/39#issuecomment-5396 🔴 Verified in CI on this very commit: complexipy 8.0.1 runs successfully in the `complexipy-3.12` session on the migrated stack, and `pysentry` reports zero known advisories for the resolved set including complexipy 8.0.1.
📝 add advisory identifiers to constraint dependencies
All checks were successful
/ gitleaks (pull_request) Successful in 15s
/ checks (pull_request) Successful in 1m49s
/ publish (pull_request) Has been skipped
/ deploy-docs (pull_request) Has been skipped
/ pr-review (pull_request) Successful in 2m26s
f6ccf4b5e5
marvin8 approved these changes 2026-10-16 06:53:30 +00:00
marvin8 manually merged commit 7b23fed4f4 into main 2026-10-16 06:55:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
marvin8/sub2pod!39
No description provided.