Repository navigation
Conversation
…aper-inference#3481) Codex's model-catalog refresh (codex_models_manager) does GET /v1/models?client_version=<v> and decodes a JSON object with a TOP-LEVEL `models` array. OmniRoute answers in the OpenAI-standard `{object,data}` shape, so codex fails with "missing field `models`" and logs "failed to refresh available models" on every startup. Detect codex clients via the `originator` / `user-agent` = `codex_*` headers they send and add an EMPTY top-level `models: []` so the decode succeeds. Non-codex OpenAI clients keep the byte-identical `{object,data}` response. The array is intentionally empty: codex replaces its built-in per-model agent prompt (`base_instructions`, ~21k chars) with whatever a populated entry carries for the selected model, so emitting our catalog would drop the agent prompt to nothing and break codex's agent behaviour (verified empirically against codex 0.137). An empty list keeps codex on its built-in model info — same inference as before, minus the error. Validated end-to-end with the real handler against codex 0.137: "failed to refresh available models" → 0 occurrences, instructions preserved (built-in Codex agent prompt, not empty). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add generated quality gate reports, metrics files, and local setup prompt artifacts to .gitignore to prevent committing environment-specific or temporary files.
cheaper-inference#3490) Integrated into release/v3.8.18
…e#3451) Integrated into release/v3.8.18
…heaper-inference#3492) Integrated into release/v3.8.18
…cheaper-inference#3491) Integrated into release/v3.8.18
…inference#3473) Integrated into release/v3.8.18
…ity combos (cheaper-inference#3169) Integrated into release/v3.8.18
…-inference#1422 (cheaper-inference#3401) Integrated into release/v3.8.18
…-inference#3510) Integrated into release/v3.8.18
…g retry text (cheaper-inference#3513) PR cheaper-inference#3422 ('allow OpenAI usage-only empty choices chunks') reintroduced the assistant-content injection '[OmniRoute] Upstream returned an empty response. Please retry.' for empty `choices: []` chunks that carry no valid usage. Clients (Goose/opencode) feed that text back as a turn and spin in a retry loop -- the exact regression cheaper-inference#3400 had fixed by dropping the chunk. Restore the drop behavior for the no-usage case while preserving cheaper-inference#3422's standards-compliant forwarding of usage-only `include_usage` final chunks. Realign the mislabeled stream-utils test (it asserted the injection) and add a dedicated regression guard. Reported-by: @mochizzan Refs: cheaper-inference#3502, cheaper-inference#3388, cheaper-inference#3400, cheaper-inference#3422
…Bearer (cheaper-inference#3504) Integrated into release/v3.8.18
…aper-inference#3503) Integrated into release/v3.8.18
There was a problem hiding this comment.
Code Review
This pull request introduces a PROJECT_ROOT constant in src/lib/system/autoUpdate.ts that safely resolves the current working directory with a fallback to the home or temp directory. It refactors the auto-update route and helper functions to use PROJECT_ROOT instead of process.cwd(), ensuring more robust directory resolution during update operations. There are no review comments to address, and I have no additional feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
96bc07d to
f695332
Compare
…per-inference#3513, cheaper-inference#3435-repair, gitignore chore (full commit↔changelog coverage)
…polynomial-ReDoS)
CodeQL js/polynomial-redos: unbounded \s* before an anchored \s*$ allowed
O(n²) backtracking on attacker-influenced display names. Bounded to {0,8}/{1,8}
(ample for any real label spacing). Plugin builds + 254 tests green.
- getPendingRequests() typed to real shape (was widened to object) → fixes unknown 'count' in the unified-requests view (cheaper-inference#3401) - streamChunks log payload cast to its declared type (callLogs.ts) - preScreenTargets aligned to canonical IsModelAvailable signature (cheaper-inference#3169), Promise.resolve-normalized so .catch never hits a bare boolean All 5 gates green: lint(0 err) + typecheck:core + cycles + docs-all + unit + vitest(146).
- Remove redundant existsSync checks in resolveProjectRoot (always returned cwd regardless of checks) - Fix indentation inconsistencies in version/route.ts (10 spaces → 8) Addresses review comments from Copilot and @gemini-code-assist on PR cheaper-inference#3423.
f695332 to
d83df76
Compare
Code Review SummaryStatus: 3 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)CRITICAL
WARNING
Other Observations (not in diff)Issues found in unchanged code that cannot receive inline comments: The diff shows a large PR with many test files being added and numerous source changes. The core issue is that the auto-update module has an import mismatch that would break at runtime. Files Reviewed (13 files)
|
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)CRITICAL
Other ObservationsThe PR title mentions "simplify resolveProjectRoot + fix indentation" but the diff shows a much larger change set including:
The core CRITICAL issue is that Files Reviewed (13+ files)
Reviewed by laguna-m.1-20260312:free · 5,799,309 tokens |
|
Thanks @oyi77. Same situation as #3514: this is 133 files / +8.5k for a 2-file auto-update fix, with ~42 Beyond the noise, the actual Recommend we go with #3423 (2 files, clean) for this fix. If you'd prefer your approach, please resubmit on a clean branch off |
|
Superseded by #3561 (focused 2-file re-cut off release/v3.8.20 per @diegosouzapw review). Uses the stable PROJECT_ROOT walker approach (vs the weaker "just return cwd" version) and includes a regression test. Closing this one in favor of the cleaner PR. |
Problem
PR #3423 had review comments from Copilot and @gemini-code-assist:
resolveProjectRoothad redundantexistsSyncchecks — always returnedcwdregardlessversion/route.ts(10 spaces instead of 8)Fix
resolveProjectRootto just returnprocess.cwd()(removed deadexistsSyncchecks)version/route.tsto use consistent 8-space indentTests
Supersedes #3423 (includes original fix + addresses review comments)