Skip to content

claude-opus-4-7#823

Merged
lchoquel merged 3 commits into
mainfrom
release/v0.24.0
Apr 17, 2026
Merged

claude-opus-4-7#823
lchoquel merged 3 commits into
mainfrom
release/v0.24.0

Conversation

@lchoquel
Copy link
Copy Markdown
Member

@lchoquel lchoquel commented Apr 17, 2026

Summary by cubic

Adds Gemini 3.1 models and “latest” aliases for Google, promotes claude-4.7-opus to default premium, and correctly maps Google’s MINIMAL reasoning level. Also simplifies ReactFlow asset caching and improves error messages when a local model deck is stale.

  • New Features

    • Added gemini-3.1-flash-lite and gemini-3.1-pro to Google backend configs and test profiles.
    • Introduced gemini-pro-latest, gemini-flash-latest, and gemini-flash-lite-latest aliases; switched LLM deck defaults to use them (e.g., best-gemini = gemini-pro-latest, small vision/creative now gemini-flash-latest, cheap retrieval uses gemini-flash-lite-latest).
    • Promoted claude-4.7-opus as best-claude and as default for premium, premium-vision, and premium-structured.
    • Mapped ReasoningEffort.MINIMAL to Google’s ThinkingLevel.MINIMAL; enum and default map updated; tests and docs updated.
  • Refactors

    • Simplified ReactFlow standalone asset caching with functools.cache and improved ModelNotFoundError guidance for stale local decks (pipelex init inference hint).
    • Renamed gemini-3.0-flash-preview to gemini-3.0-flash; regenerated gateway model docs.

Written for commit 0891ac9. Summary will update on new commits.

…lify standalone asset caching

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lchoquel lchoquel requested a review from thomashebrard April 17, 2026 12:59
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 17, 2026

Greptile Summary

  • Adds Gemini 3.1 series models (gemini-3.1-flash-lite, gemini-3.1-pro) and three floating "latest" aliases (gemini-pro-latest, gemini-flash-latest, gemini-flash-lite-latest) to the Google backend config, and maps ReasoningEffort.MINIMAL to Google's new ThinkingLevel.MINIMAL (previously collapsed to LOW).
  • Simplifies standalone_assets.py caching from manual global/nullable-module-var pattern to @functools.cache, and updates the LLM deck to use claude-4.7-opus as the best-claude and default-premium aliases.

Confidence Score: 5/5

Safe to merge — no P0/P1 issues; all changes are additive config and a clean refactor.

The only finding is a P2 clarification question about whether the "latest" alias entries in google.toml are gateway-only or also intended for direct Google API use. No logic bugs, data integrity issues, or breaking changes were found.

pipelex/kit/configs/inference/backends/google.toml — the three "latest" alias entries lack explicit model_id and may not resolve correctly against the direct Google API.

Important Files Changed

Filename Overview
pipelex/plugins/google/google_config.py Adds MINIMAL to GoogleThinkingLevel enum and maps it to genai_types.ThinkingLevel.MINIMAL in get_reasoning_level; match/case stays exhaustive and correct.
pipelex/graph/reactflow/standalone_assets.py Replaces manual global-variable caching with @functools.cache; functionally equivalent and eliminates the PLW0603 noqa suppressions.
pipelex/kit/configs/inference/backends/google.toml Adds gemini-3.1-flash-lite, gemini-3.1-pro, and three "latest" alias entries; aliases omit model_id (factory falls back to section name), which works for the gateway but may not be valid for direct Google API calls.
pipelex/kit/configs/inference/deck/1_llm_deck.toml Updates best-claude alias and default-premium* aliases to claude-4.7-opus, adds cheap presets and retrieval tiers; no issues.
tests/unit/pipelex/plugins/google/test_google_reasoning.py Adds MINIMAL to ADAPTIVE mode parametrize and verifies ThinkingLevel.MINIMAL is returned; MANUAL + NONE test correctly omits get_reasoning_budget mock since the disabled-gate short-circuits before that call.
tests/unit/pipelex/cogt/llm/test_llm_config_reasoning.py _DEFAULT_GOOGLE_LEVEL_MAP updated to map "minimal" → "minimal"; tests for level-value validation and all-disabled scenario are correct.
pipelex/pipelex.toml google_config.effort_to_level_map.minimal changed from "low" to "minimal", consistent with the new GoogleThinkingLevel.MINIMAL enum value.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[ReasoningEffort] --> B{GoogleLLMWorker
_build_thinking_config}
    B --> C{reasoning_effort set?}
    C -- yes --> D{ThinkingMode?}
    C -- no --> E{reasoning_budget set?}
    E -- yes --> F[_build_thinking_config_for_budget
ThinkingConfig budget]
    E -- no --> G[return None]
    D -- MANUAL --> H[get_reasoning_level
effort → level string]
    H --> I{level is None
disabled?}
    I -- yes --> J[ThinkingConfig budget=0]
    I -- no --> K[get_reasoning_budget
prompting_target + effort]
    K --> L[ThinkingConfig thinking_budget]
    D -- ADAPTIVE --> M[get_reasoning_level
effort → ThinkingLevel]
    M --> N{level is None?}
    N -- yes --> O[ThinkingConfig budget=0]
    N -- no --> P[ThinkingConfig thinking_level
MINIMAL / LOW / MEDIUM / HIGH]
    D -- NONE --> Q[raise LLMCapabilityError]
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: pipelex/kit/configs/inference/backends/google.toml
Line: 91-111

Comment:
**Latest-alias entries rely on name-fallback for `model_id`**

`gemini-pro-latest`, `gemini-flash-latest`, and `gemini-flash-lite-latest` have no explicit `model_id`, so `InferenceModelSpecFactory` will fall back to the section name (line 99: `blueprint.model_id or name`). For Pipelex Gateway this is fine — the gateway resolves these aliases. For a direct Google Gemini API backend, though, the string `"gemini-pro-latest"` (without a version number) is sent as-is to Google's API; if Google doesn't recognise it as a valid model alias the call will fail at runtime.

Consider either adding an explicit `model_id` (e.g. pointing to the current latest concrete model ID) or a comment clarifying these entries are gateway-only.

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "Merge branch 'dev' into release/v0.24.0" | Re-trigger Greptile

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 15 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="pipelex/kit/configs/inference/backends/google.toml">

<violation number="1" location="pipelex/kit/configs/inference/backends/google.toml:65">
P2: Renaming this preset drops the existing `gemini-3.0-flash-preview` handle and breaks backward compatibility. Keep the old name as an alias or retain the original preset key.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread pipelex/kit/configs/inference/backends/google.toml
Comment thread pipelex/kit/configs/inference/backends/google.toml
thomashebrard
thomashebrard previously approved these changes Apr 17, 2026
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lchoquel lchoquel merged commit cea6979 into main Apr 17, 2026
30 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 17, 2026
@lchoquel lchoquel deleted the release/v0.24.0 branch April 17, 2026 15:35
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants