Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
7d49f71
chore(codeql): pin auto-merge.yml to SHA
KooshaPari Apr 26, 2026
819e067
chore(codeql): pin ci-rerun-flaky.yml to SHA
KooshaPari Apr 26, 2026
13c934d
chore(codeql): pin ci.yml to SHA
KooshaPari Apr 26, 2026
8639312
chore(codeql): pin codeql.yml to SHA
KooshaPari Apr 26, 2026
2d4d2db
chore(codeql): pin coderabbit-rate-limit-retry.yml to SHA
KooshaPari Apr 26, 2026
b2c3e7e
chore(codeql): pin docker-image.yml to SHA
KooshaPari Apr 26, 2026
e71885d
chore(codeql): pin docs.yml to SHA
KooshaPari Apr 26, 2026
919e50d
chore(codeql): pin generate-sdks.yaml to SHA
KooshaPari Apr 26, 2026
76b4e2a
chore(codeql): pin lint-test.yml to SHA
KooshaPari Apr 26, 2026
8d7ed84
chore(codeql): pin pages-deploy.yml to SHA
KooshaPari Apr 26, 2026
aa17bd4
chore(codeql): pin policy-gate.yml to SHA
KooshaPari Apr 26, 2026
bc088f9
chore(codeql): pin pr-path-guard.yml to SHA
KooshaPari Apr 26, 2026
5d56c10
chore(codeql): pin pr-test-build.yml to SHA
KooshaPari Apr 26, 2026
6528c82
chore(codeql): pin quality-gate.yml to SHA
KooshaPari Apr 26, 2026
6d21e1c
chore(codeql): pin release-batch.yaml to SHA
KooshaPari Apr 26, 2026
cf77e07
chore(codeql): pin release-drafter.yml to SHA
KooshaPari Apr 26, 2026
7b5706e
chore(codeql): pin release.yaml to SHA
KooshaPari Apr 26, 2026
0b44d13
chore(codeql): pin required-check-names-guard.yml to SHA
KooshaPari Apr 26, 2026
9bb283e
chore(codeql): pin sast-full.yml to SHA
KooshaPari Apr 26, 2026
34ebed4
chore(codeql): pin sast-quick.yml to SHA
KooshaPari Apr 26, 2026
6f64c8d
chore(codeql): pin scorecard.yml to SHA
KooshaPari Apr 26, 2026
7efc7e0
chore(codeql): pin security-guard-hook-audit.yml to SHA
KooshaPari Apr 26, 2026
cd8ef3c
chore(codeql): pin tag-automation.yml to SHA
KooshaPari Apr 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/auto-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ jobs:
if: |
contains(github.event.pull_request.labels.*.name, 'automerge') &&
!contains(github.event.pull_request.labels.*.name, 'do-not-merge')
uses: peter-evans/enable-pull-request-automerge@v3
with:
uses: peter-evans/enable-pull-request-automerge@a660677d5469627102a1c1e11409dd063606628d # v3with:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML with: keyword consumed by trailing comment

High Severity

Across virtually every workflow file, with: was appended to the SHA comment (e.g. # v3with:) instead of remaining on its own line. In YAML, # begins a comment that extends to the end of the line, so with: is swallowed by the comment. This causes all action inputs (github-token, go-version-file, languages, username, etc.) to become orphaned keys at the wrong indentation level, resulting in YAML parse errors that break every affected CI workflow.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cd8ef3c. Configure here.

github-token: ${{ secrets.GITHUB_TOKEN }}
merge-method: squash
3 changes: 1 addition & 2 deletions .github/workflows/ci-rerun-flaky.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Rerun failed CI jobs and remove rerun label
uses: actions/github-script@v7
with:
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7with:
script: |
const label = 'ci:rerun-flaky';
const { owner, repo } = context.repo;
Expand Down
13 changes: 4 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,18 @@ jobs:
go-version: ['1.21', '1.22']

steps:
- uses: actions/checkout@v4

- name: Refresh models catalog
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Refresh models catalog

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step and job boundaries destroyed by comment concatenation

High Severity

Step separators (- name:) and job definitions were appended to SHA comments (e.g. # v4- name: Refresh models catalog), making them invisible to the YAML parser. This collapses separate steps into one, causing the subsequent run: to be paired with a uses: in the same step (which is invalid). In codeql.yml, the entire analyze-skip-for-migrated-router-fix job definition is swallowed by a comment. In sast-full.yml, the trivy-repo job definition is similarly lost.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cd8ef3c. Configure here.

run: |
git fetch --depth 1 https://github.com/router-for-me/models.git main
mkdir -p pkg/llmproxy/registry/models
git show FETCH_HEAD:models.json > pkg/llmproxy/registry/models/models.json

- name: Setup Go
uses: actions/setup-go@v5
with:
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5with:
go-version: ${{ matrix.go-version }}

- name: Cache Go modules
uses: actions/cache@v4
with:
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4with:
path: ~/go/pkg/mod
Comment on lines +21 to 33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

In the main CI workflow, multiple steps are now structurally invalid: the checkout step combines uses and run in a single step, and several action steps (e.g. actions/setup-go, actions/cache, codecov/codecov-action) have their with: blocks collapsed so that keys like go-version and path appear as top-level step keys. These patterns violate GitHub Actions step schema and will cause the CI workflow to fail to load or run.

Suggestion: Split combined steps so each uses either uses or run, restore proper with: mappings under action steps, and then pin action versions only in the uses: values; add an automated check that validates workflow syntax after pinning.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/ci.yml
**Line:** 21:33
**Comment:**
	*CRITICAL: In the main CI workflow, multiple steps are now structurally invalid: the checkout step combines `uses` and `run` in a single step, and several action steps (e.g. `actions/setup-go`, `actions/cache`, `codecov/codecov-action`) have their `with:` blocks collapsed so that keys like `go-version` and `path` appear as top-level step keys. These patterns violate GitHub Actions step schema and will cause the CI workflow to fail to load or run.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +21 to 33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

The pinning rewrite merged step boundaries in the test job: the first step now has both uses (checkout) and a run script in the same step, and the with: blocks for actions/setup-go and actions/cache were removed so their inputs (go-version, path, key, etc.) are now top‑level step keys instead of action inputs. This produces an invalid workflow (a step cannot have both uses and run) and misconfigures the pinned actions, so the CI job will fail or not behave as before in normal runs.

Suggestion: Restore separate steps for checkout and the "Refresh models catalog" run, and reintroduce proper with: mappings for actions/setup-go and actions/cache so their inputs are under with. Regenerate pinning changes with a YAML-aware transform and add a workflow linter (e.g., actionlint) to prevent structural breakage.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/ci.yml
**Line:** 21:33
**Comment:**
	*CRITICAL: The pinning rewrite merged step boundaries in the `test` job: the first step now has both `uses` (checkout) and a `run` script in the same step, and the `with:` blocks for `actions/setup-go` and `actions/cache` were removed so their inputs (`go-version`, `path`, `key`, etc.) are now top‑level step keys instead of action inputs. This produces an invalid workflow (a step cannot have both `uses` and `run`) and misconfigures the pinned actions, so the CI job will fail or not behave as before in normal runs.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
Expand All @@ -49,8 +45,7 @@ jobs:
run: go test ./... -v -race -coverprofile=coverage.out

- name: Upload coverage
uses: codecov/codecov-action@v3
with:
uses: codecov/codecov-action@ab904c41d6ece82784817410c45d8b8c02684457 # v3with:
files: ./coverage.out


Expand Down
13 changes: 4 additions & 9 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,18 @@ jobs:
language: [go]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Initialize CodeQL
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4with:
languages: ${{ matrix.language }}
config-file: .github/codeql/codeql-config.yml
- name: Set up Go
uses: actions/setup-go@v5
with:
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5with:
go-version-file: go.mod
cache: true
- name: Build
run: go build ./...
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4

analyze-skip-for-migrated-router-fix:
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4analyze-skip-for-migrated-router-fix:
name: Analyze (Go)
Comment on lines +22 to 34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The analyze-skip-for-migrated-router-fix job key was concatenated into a comment on the uses: github/codeql-action/analyze@… line, and the following name, if, runs-on, and steps keys are no longer nested under a job id. As a result, the skip-path job for ci/fix-migrated-router-… branches is no longer declared as a separate job, changing the intended branch-specific behavior and required-check identity.

Suggestion: Reintroduce analyze-skip-for-migrated-router-fix: as an explicit job key under jobs: with its own name, if, runs-on, and steps, distinct from analyze, and ensure the CodeQL analyze step's pinning comment does not absorb the job id. Validate both branch paths by dry-running the workflow and confirming the expected check names.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/codeql.yml
**Line:** 22:34
**Comment:**
	*HIGH: The `analyze-skip-for-migrated-router-fix` job key was concatenated into a comment on the `uses: github/codeql-action/analyze@…` line, and the following `name`, `if`, `runs-on`, and `steps` keys are no longer nested under a job id. As a result, the skip-path job for `ci/fix-migrated-router-…` branches is no longer declared as a separate job, changing the intended branch-specific behavior and required-check identity.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +22 to 34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

The CodeQL workflow's second job (analyze-skip-for-migrated-router-fix) was merged into the analyze job: its job key now appears only inside an inline comment on the analyze uses line, and the following name/if/steps fields are attached to the same job, overriding the original job definition so the dedicated skip job is effectively dropped and the CodeQL analysis steps are replaced by the skip stub.

Suggestion: Restore analyze-skip-for-migrated-router-fix as its own job key with its original condition and skip-only steps, and keep each pinned CodeQL action (init/analyze) on its own uses line with a separate with block under the main analyze job.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/codeql.yml
**Line:** 22:34
**Comment:**
	*CRITICAL: The CodeQL workflow's second job (`analyze-skip-for-migrated-router-fix`) was merged into the `analyze` job: its job key now appears only inside an inline comment on the analyze `uses` line, and the following `name/if/steps` fields are attached to the same job, overriding the original job definition so the dedicated skip job is effectively dropped and the CodeQL analysis steps are replaced by the skip stub.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +22 to 34

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

In the CodeQL workflow, the pinning rewrite collapsed separate steps and the secondary job into a single malformed block: the "Checkout" step now has two uses keys (so actions/checkout is never actually invoked and only the CodeQL init action runs), and the analyze-skip-for-migrated-router-fix job key has been lost, with its fields incorrectly indented under jobs. This breaks the intended job structure and will cause the Go build/CodeQL analysis to fail under normal execution.

Suggestion: Revert this section to separate, well-formed steps (Checkout, Initialize CodeQL, Set up Go, Perform CodeQL Analysis) and restore analyze-skip-for-migrated-router-fix as its own job key, then reapply SHA pinning while keeping uses and with on distinct YAML keys.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/codeql.yml
**Line:** 22:34
**Comment:**
	*CRITICAL: In the CodeQL workflow, the pinning rewrite collapsed separate steps and the secondary job into a single malformed block: the "Checkout" step now has two `uses` keys (so `actions/checkout` is never actually invoked and only the CodeQL init action runs), and the `analyze-skip-for-migrated-router-fix` job key has been lost, with its fields incorrectly indented under `jobs`. This breaks the intended job structure and will cause the Go build/CodeQL analysis to fail under normal execution.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

if: ${{ startsWith(github.head_ref, 'ci/fix-migrated-router-20260225060000-feature_ampcode-alias') }}
Comment on lines +22 to 35

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

The pinning rewrite corrupted the CodeQL workflow: a single step now has duplicate uses keys with languages/config-file at step level (invalid keys), and the analyze-skip-for-migrated-router-fix job header was merged into a comment, leaving stray name/if/runs-on fields without a job key. This makes the workflow YAML invalid and removes the second job, so CodeQL analysis cannot run.

Suggestion: Restore distinct steps for checkout and CodeQL init/analyze, and reintroduce the separate analyze-skip-for-migrated-router-fix job with proper indentation and keys; then pin only the uses: values and validate the workflow with a linter or act.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/codeql.yml
**Line:** 22:35
**Comment:**
	*CRITICAL: The pinning rewrite corrupted the CodeQL workflow: a single step now has duplicate `uses` keys with `languages`/`config-file` at step level (invalid keys), and the `analyze-skip-for-migrated-router-fix` job header was merged into a comment, leaving stray `name`/`if`/`runs-on` fields without a job key. This makes the workflow YAML invalid and removes the second job, so CodeQL analysis cannot run.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

runs-on: ubuntu-latest
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/coderabbit-rate-limit-retry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Re-request CodeRabbit when backlog is high and check is stale
uses: actions/github-script@v7
with:
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7with:
script: |
const owner = context.repo.owner;
const repo = context.repo.repo;
Expand Down
33 changes: 11 additions & 22 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Refresh models catalog
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Refresh models catalog
run: |
git fetch --depth 1 https://github.com/router-for-me/models.git main
git show FETCH_HEAD:models.json > internal/registry/models/models.json
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3- name: Login to DockerHub
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Generate Build Metadata
Expand All @@ -33,8 +30,7 @@ jobs:
echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV
echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV
- name: Build and push (amd64)
uses: docker/build-push-action@v6
with:
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6with:
context: .
platforms: linux/amd64
push: true
Expand All @@ -50,16 +46,13 @@ jobs:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Refresh models catalog
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Refresh models catalog
run: |
git fetch --depth 1 https://github.com/router-for-me/models.git main
git show FETCH_HEAD:models.json > internal/registry/models/models.json
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3- name: Login to DockerHub
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Generate Build Metadata
Expand All @@ -68,8 +61,7 @@ jobs:
echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV
echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV
- name: Build and push (arm64)
uses: docker/build-push-action@v6
with:
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6with:
context: .
platforms: linux/arm64
push: true
Expand All @@ -88,12 +80,9 @@ jobs:
- docker_arm64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Set up Docker Buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3- name: Login to DockerHub
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Generate Build Metadata
Expand Down
19 changes: 6 additions & 13 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4with:
node-version: "20"
cache: "npm"
cache-dependency-path: docs/package.json

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2with:
bun-version: latest

- name: Install OXC dependencies
Expand All @@ -54,8 +50,7 @@ jobs:
run: test -f docs/.vitepress/dist/index.html

- name: Upload pages artifact
uses: actions/upload-pages-artifact@v3
with:
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3with:
path: docs/.vitepress/dist/

build-skip-branch-ci-unblock:
Expand All @@ -76,8 +71,6 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Configure Pages
uses: actions/configure-pages@v5

- name: Deploy
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
20 changes: 6 additions & 14 deletions .github/workflows/generate-sdks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,8 @@ jobs:
generate-python-sdk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5with:
python-version: '3.14'
Comment on lines +14 to 16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

In both SDK generation jobs, the pinning rewrite merged the checkout and setup steps into a single step with two uses entries, so GitHub Actions will only honor the last uses (actions/setup-python/actions/setup-node) and never run actions/checkout. As a result, the jobs attempt to run npm install and openapi-generator generate without the repository being checked out, breaking SDK generation.

Suggestion: Split these into separate steps again (one Checkout step using the pinned actions/checkout SHA and one Setup Python/Node step with a with: block for versions), and then validate the workflow with a YAML/workflow linter.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/generate-sdks.yaml
**Line:** 14:16
**Comment:**
	*HIGH: In both SDK generation jobs, the pinning rewrite merged the checkout and setup steps into a single step with two `uses` entries, so GitHub Actions will only honor the last `uses` (`actions/setup-python`/`actions/setup-node`) and never run `actions/checkout`. As a result, the jobs attempt to run `npm install` and `openapi-generator generate` without the repository being checked out, breaking SDK generation.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix


- name: Install OpenAPI Generator
Expand All @@ -32,8 +29,7 @@ jobs:
--additional-properties=pythonVersion==3.12,generateSourceCodeOnly=true

- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6with:
commit-message: 'chore: generate Python SDK'
title: 'chore: generate Python SDK'
body: |
Expand All @@ -44,11 +40,8 @@ jobs:
generate-typescript-sdk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4with:
node-version: '20'

- name: Install OpenAPI Generator
Expand All @@ -64,8 +57,7 @@ jobs:
--additional-properties=typescriptVersion=5.0,npmName=@cliproxy/api

- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6with:
commit-message: 'chore: generate TypeScript SDK'
title: 'chore: generate TypeScript SDK'
body: |
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/lint-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,4 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: KooshaPari/phenotypeActions/actions/lint-test@main
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- uses: KooshaPari/phenotypeActions/actions/lint-test@main

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The checkout step and the reusable KooshaPari/phenotypeActions/actions/lint-test@main call were merged into a single line, leaving only a checkout step and effectively removing execution of the external lint/test action. The lint-test job now performs checkout only and no longer enforces the intended lint/test gate.

Suggestion: Reintroduce the reusable KooshaPari/phenotypeActions/actions/lint-test@… job step as a separate uses: step after checkout while pinning it to a SHA, ensuring the workflow still runs the external lint/test logic and fails on issues.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/lint-test.yml
**Line:** 15:15
**Comment:**
	*HIGH: The checkout step and the reusable `KooshaPari/phenotypeActions/actions/lint-test@main` call were merged into a single line, leaving only a checkout step and effectively removing execution of the external lint/test action. The `lint-test` job now performs checkout only and no longer enforces the intended lint/test gate.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Architect Review — HIGH

The KooshaPari/phenotypeActions/actions/lint-test@main step has been turned into an inline comment on the checkout uses line, leaving the lint-test job with only a checkout step and no invocation of the reusable lint/test action, so this workflow no longer runs any linting or tests.

Suggestion: Reintroduce the reusable lint-test action as a separate step after checkout with its own - uses: KooshaPari/phenotypeActions/actions/lint-test@<pinned-SHA> entry to restore the original lint/test gate behavior.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/lint-test.yml
**Line:** 15:15
**Comment:**
	*HIGH: The `KooshaPari/phenotypeActions/actions/lint-test@main` step has been turned into an inline comment on the checkout `uses` line, leaving the `lint-test` job with only a checkout step and no invocation of the reusable lint/test action, so this workflow no longer runs any linting or tests.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

7 changes: 2 additions & 5 deletions .github/workflows/pages-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/configure-pages@v4
- uses: actions/upload-pages-artifact@v3
with:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- uses: actions/configure-pages@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d # v4- uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3with:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three workflow steps collapsed onto single YAML line

High Severity

Three originally separate steps (actions/checkout, actions/configure-pages, and actions/upload-pages-artifact) were concatenated onto a single line. The YAML parser sees only one step with uses: actions/checkout@... because the remaining two uses: directives are swallowed by the comment. The configure-pages and upload-pages-artifact steps are completely lost, so the pages deployment pipeline will fail.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit cd8ef3c. Configure here.

path: '.'
Comment on lines +15 to 16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

The pages deployment workflow collapsed three separate steps (checkout, actions/configure-pages, and actions/upload-pages-artifact) into a single step with only uses: actions/checkout@… plus a stray top-level path: '.' key. The configure and upload actions are no longer executed and the remaining step is structurally invalid due to the unexpected path key, so the workflow cannot correctly prepare or upload the pages artifact.

Suggestion: Restore checkout, configure-pages, and upload-pages-artifact as distinct sequential steps with a proper with: { path: '.' } block for the upload step, then pin each action's uses: value independently and verify the workflow with a syntax validator.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/pages-deploy.yml
**Line:** 15:16
**Comment:**
	*CRITICAL: The pages deployment workflow collapsed three separate steps (checkout, `actions/configure-pages`, and `actions/upload-pages-artifact`) into a single step with only `uses: actions/checkout@…` plus a stray top-level `path: '.'` key. The configure and upload actions are no longer executed and the remaining step is structurally invalid due to the unexpected `path` key, so the workflow cannot correctly prepare or upload the pages artifact.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +15 to 16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

Three separate steps (actions/checkout, actions/configure-pages, and actions/upload-pages-artifact) were collapsed into a single malformed step where only actions/checkout is actually used and the other uses: entries are embedded in a comment, with path: '.' now passed as a with block to checkout. This means the Pages-specific setup and artifact upload actions are no longer executed, so the deploy step runs without the expected prepared artifact.

Suggestion: Restore three distinct steps for checkout, actions/configure-pages@…, and actions/upload-pages-artifact@…, each with its own uses and with, and then pin those actions to SHAs without merging them into a single step.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/pages-deploy.yml
**Line:** 15:16
**Comment:**
	*CRITICAL: Three separate steps (`actions/checkout`, `actions/configure-pages`, and `actions/upload-pages-artifact`) were collapsed into a single malformed step where only `actions/checkout` is actually used and the other `uses:` entries are embedded in a comment, with `path: '.'` now passed as a `with` block to checkout. This means the Pages-specific setup and artifact upload actions are no longer executed, so the deploy step runs without the expected prepared artifact.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +15 to 16

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Architect Review — CRITICAL

The deploy job's first step has been collapsed into a single item with three uses entries (checkout, configure-pages, upload-pages-artifact), so only the last action (upload-pages-artifact) actually runs; actions/checkout and actions/configure-pages are never executed, and the with: path block is attached only to the artifact upload. This breaks the required Pages preparation and upload sequence.

Suggestion: Restore three distinct sequential steps for actions/checkout, actions/configure-pages, and actions/upload-pages-artifact (each with its own uses and, for the upload step, a with: path block), then verify the Pages deploy job end-to-end.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/pages-deploy.yml
**Line:** 15:16
**Comment:**
	*CRITICAL: The deploy job's first step has been collapsed into a single item with three `uses` entries (`checkout`, `configure-pages`, `upload-pages-artifact`), so only the last action (`upload-pages-artifact`) actually runs; `actions/checkout` and `actions/configure-pages` are never executed, and the `with: path` block is attached only to the artifact upload. This breaks the required Pages preparation and upload sequence.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

- id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
3 changes: 1 addition & 2 deletions .github/workflows/policy-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@ jobs:
enforce:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Enforce engineering policies
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4- name: Enforce engineering policies
run: ./scripts/policy-gate.sh
6 changes: 2 additions & 4 deletions .github/workflows/pr-path-guard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ jobs:
name: ensure-no-translator-changes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4with:
fetch-depth: 0
- name: Detect pkg/llmproxy/translator changes
id: changed-files
uses: tj-actions/changed-files@v45
with:
uses: tj-actions/changed-files@48d8f15b2aaa3d255ca5af3eba4870f807ce6b3c # v45with:
files: |
pkg/llmproxy/translator/**
- name: Fail when restricted paths change
Expand Down
Loading