feat: add llm-upgrade and gitalias-upgrade to make upgrade - #1076
Conversation
- Add llm-upgrade target: runs scripts/llm-update.sh to regenerate tool configs (openclaw, opencode, ccs, pi) from models.json - Add gitalias-upgrade target: downloads latest gitalias.txt upstream - Fix neovim-upgrade: symlink nvim-pack-lock.json before running vim.pack.update() so changes write back to the repo - Run upgrade locally to apply generated changes Entire-Checkpoint: d822f0ff01b6
|
You do not have enough credits to review this pull request. Please purchase more credits to continue. |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the project's upgrade automation by integrating new targets for LLM tool configurations and Git aliases into the main Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
Mesa DescriptionTL;DRAdded What changed?
Description generated by Mesa. Update settings |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughSummary by CodeRabbit
WalkthroughAdds Makefile targets to upgrade LLM configs and gitalias, updates multiple model identifiers (GPT 5.2→5.4, Gemini 3→3.1) across config files, tweaks Neovim plugin upgrade to ensure config dir and symlinks, adjusts git alias mappings, and adds hook timeouts. Changes
Sequence Diagram(s)sequenceDiagram
participant User as User
participant Make as Makefile
participant LLMScript as llm-update.sh
participant GitaliasScript as gitalias-update.sh
participant Neovim as Neovim (headless)
Note over Make,LLMScript: upgrade target invokes sequence
User->>Make: make upgrade
Make->>LLMScript: llm-upgrade (regenerate configs from models.json)
LLMScript-->>Make: exit/status
Make->>GitaliasScript: gitalias-upgrade (download gitalias.txt)
GitaliasScript-->>Make: exit/status
Make->>Neovim: neovim-upgrade (ensure dir, create symlinks, headless update)
Neovim-->>Make: exit/status
Make-->>User: completed
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces new llm-upgrade and gitalias-upgrade targets to the make upgrade command, enhancing the automated update capabilities. It also updates various LLM model versions across several configuration files (config/ccs/gemini.settings.template.json, config/openclaw/openclaw.template.json, config/opencode/opencode.jsonc, config/pi/models.json), adds a timeout parameter to git-ai checkpoint claude hooks in config/claude/settings.json for improved robustness, and corrects an alias definition in home-manager/programs/git/gitalias.txt. The changes are generally well-implemented and align with the stated objectives. However, a potential issue exists in the neovim-upgrade target's symlinking logic that could lead to conflicts with Nix-managed configurations.
| @mkdir -p ~/.config/nvim | ||
| @ln -sf "$(PWD)/home-manager/programs/neovim/init.lua" ~/.config/nvim/init.lua | ||
| @ln -sf "$(PWD)/home-manager/programs/neovim/nvim-pack-lock.json" ~/.config/nvim/nvim-pack-lock.json |
There was a problem hiding this comment.
The neovim-upgrade target's symlinking logic might conflict with Nix-managed Neovim configurations. If ~/.config/nvim is a symlink to a Nix store path (common in NixOS/home-manager setups), mkdir -p ~/.config/nvim will attempt to create a directory inside the read-only Nix store, which will fail or lead to unexpected behavior. The neovim-dev target (lines 595-605 in the full file) correctly handles this by removing the symlink first before creating the directory and symlinking files. This robust approach should be mirrored in neovim-upgrade to prevent potential issues in Nix environments.
if [ -L "$(HOME)/.config/nvim" ]; then \
rm "$(HOME)/.config/nvim"; \
fi
@mkdir -p "$(HOME)/.config/nvim"
@ln -sf "$(PWD)/home-manager/programs/neovim/init.lua" "$(HOME)/.config/nvim/init.lua"
@ln -sf "$(PWD)/home-manager/programs/neovim/nvim-pack-lock.json" "$(HOME)/.config/nvim/nvim-pack-lock.json"
There was a problem hiding this comment.
Pull request overview
This PR extends the repo’s upgrade workflow to also refresh LLM-related generated configs and the upstream GitAlias file, and updates multiple tool configs to newer model IDs (e.g., GPT 5.4 and Gemini 3.1 preview variants).
Changes:
- Expand
make upgradeto run newllm-upgrade(regenerates tool configs frommodels.json) andgitalias-upgrade(downloads latestgitalias.txt). - Update several tool configuration files to use updated model IDs (
gpt-5.4,gemini-3.1-*-preview). - Adjust
gitalias.txtto maketopic-finishaliastopic-end(aligning the “finish/end” pair).
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Makefile | Adds llm-upgrade/gitalias-upgrade to the upgrade flow; updates Neovim upgrade behavior. |
| home-manager/programs/git/gitalias.txt | Pulls in an upstream alias adjustment for topic-branch commands. |
| config/pi/models.json | Updates PI model catalog entries to newer model IDs/names. |
| config/opencode/opencode.jsonc | Updates OpenCode model labels/keys to newer model IDs. |
| config/openclaw/openclaw.template.json | Updates OpenClaw model IDs and agent primary model selections. |
| config/claude/settings.json | Adds hook timeouts for git-ai checkpoint commands. |
| config/ccs/gemini.settings.template.json | Updates Gemini model env vars to gemini-3.1-* preview IDs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| @mkdir -p ~/.config/nvim | ||
| @ln -sf "$(PWD)/home-manager/programs/neovim/init.lua" ~/.config/nvim/init.lua | ||
| @ln -sf "$(PWD)/home-manager/programs/neovim/nvim-pack-lock.json" ~/.config/nvim/nvim-pack-lock.json |
There was a problem hiding this comment.
4 issues found across 7 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="config/pi/models.json">
<violation number="1" location="config/pi/models.json:26">
P2: This renames the entry to GPT-5.4 but leaves the surrounding cost/context metadata on the older profile, so downstream configs will advertise the wrong limits and pricing for this model.</violation>
<violation number="2" location="config/pi/models.json:60">
P1: `gemini-3.1-flash-preview` does not match Google's documented Flash model ID. Keep `gemini-3-flash-preview` here or requests from the generated agent config will fail.</violation>
</file>
<file name="config/ccs/gemini.settings.template.json">
<violation number="1" location="config/ccs/gemini.settings.template.json:5">
P2: This upgrade leaves the installed Factory config pinned to `gemini-3-pro-preview`, so Gemini clients in the repo no longer stay in sync with `models.json`.</violation>
</file>
<file name="Makefile">
<violation number="1" location="Makefile:609">
P2: In a home-manager / NixOS setup, `~/.config/nvim` is often a symlink into the read-only Nix store. `mkdir -p` on that path will either fail or behave unexpectedly. The `neovim-dev` target in this same Makefile already handles this correctly by removing the symlink first. Mirror that pattern here.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| "id": "gemini-3.1-flash-preview", | ||
| "name": "Gemini 3.1 Flash", |
There was a problem hiding this comment.
P1: gemini-3.1-flash-preview does not match Google's documented Flash model ID. Keep gemini-3-flash-preview here or requests from the generated agent config will fail.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At config/pi/models.json, line 60:
<comment>`gemini-3.1-flash-preview` does not match Google's documented Flash model ID. Keep `gemini-3-flash-preview` here or requests from the generated agent config will fail.</comment>
<file context>
@@ -57,8 +57,8 @@
{
- "id": "gemini-3-flash-preview",
- "name": "Gemini 3 Flash",
+ "id": "gemini-3.1-flash-preview",
+ "name": "Gemini 3.1 Flash",
"reasoning": false,
</file context>
| "id": "gemini-3.1-flash-preview", | |
| "name": "Gemini 3.1 Flash", | |
| "id": "gemini-3-flash-preview", | |
| "name": "Gemini 3 Flash", |
| { | ||
| "id": "gpt-5.2", | ||
| "name": "GPT 5.2 [ChatGPT Pro]", | ||
| "id": "gpt-5.4", |
There was a problem hiding this comment.
P2: This renames the entry to GPT-5.4 but leaves the surrounding cost/context metadata on the older profile, so downstream configs will advertise the wrong limits and pricing for this model.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At config/pi/models.json, line 26:
<comment>This renames the entry to GPT-5.4 but leaves the surrounding cost/context metadata on the older profile, so downstream configs will advertise the wrong limits and pricing for this model.</comment>
<file context>
@@ -23,8 +23,8 @@
{
- "id": "gpt-5.2",
- "name": "GPT 5.2 [ChatGPT Pro]",
+ "id": "gpt-5.4",
+ "name": "GPT 5.4 [ChatGPT Pro]",
"reasoning": true,
</file context>
| "ANTHROPIC_DEFAULT_OPUS_MODEL": "gemini-3-pro-preview", | ||
| "ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-3-pro-preview", | ||
| "ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-3-flash-preview" | ||
| "ANTHROPIC_MODEL": "gemini-3.1-pro-preview", |
There was a problem hiding this comment.
P2: This upgrade leaves the installed Factory config pinned to gemini-3-pro-preview, so Gemini clients in the repo no longer stay in sync with models.json.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At config/ccs/gemini.settings.template.json, line 5:
<comment>This upgrade leaves the installed Factory config pinned to `gemini-3-pro-preview`, so Gemini clients in the repo no longer stay in sync with `models.json`.</comment>
<file context>
@@ -2,9 +2,9 @@
- "ANTHROPIC_DEFAULT_OPUS_MODEL": "gemini-3-pro-preview",
- "ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-3-pro-preview",
- "ANTHROPIC_DEFAULT_HAIKU_MODEL": "gemini-3-flash-preview"
+ "ANTHROPIC_MODEL": "gemini-3.1-pro-preview",
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "gemini-3.1-pro-preview",
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "gemini-3.1-pro-preview",
</file context>
| .PHONY: neovim-upgrade | ||
| neovim-upgrade: ## Update Neovim plugins. | ||
| @echo "📦 Updating neovim plugins..." | ||
| @mkdir -p ~/.config/nvim |
There was a problem hiding this comment.
P2: In a home-manager / NixOS setup, ~/.config/nvim is often a symlink into the read-only Nix store. mkdir -p on that path will either fail or behave unexpectedly. The neovim-dev target in this same Makefile already handles this correctly by removing the symlink first. Mirror that pattern here.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At Makefile, line 609:
<comment>In a home-manager / NixOS setup, `~/.config/nvim` is often a symlink into the read-only Nix store. `mkdir -p` on that path will either fail or behave unexpectedly. The `neovim-dev` target in this same Makefile already handles this correctly by removing the symlink first. Mirror that pattern here.</comment>
<file context>
@@ -594,6 +606,9 @@ neovim-dev: ## Set up local Neovim development environment.
.PHONY: neovim-upgrade
neovim-upgrade: ## Update Neovim plugins.
@echo "📦 Updating neovim plugins..."
+ @mkdir -p ~/.config/nvim
+ @ln -sf "$(PWD)/home-manager/programs/neovim/init.lua" ~/.config/nvim/init.lua
+ @ln -sf "$(PWD)/home-manager/programs/neovim/nvim-pack-lock.json" ~/.config/nvim/nvim-pack-lock.json
</file context>
… in _coxe_function and _coxeh_function Entire-Checkpoint: 50f02811ffcb
There was a problem hiding this comment.
1 issue found across 4 files (changes from recent commits).
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="home-manager/programs/fish/functions/_coxe_function.tpl.fish">
<violation number="1" location="home-manager/programs/fish/functions/_coxe_function.tpl.fish:6">
P2: Use the Codex-specific placeholder here instead of `__GPT__`; otherwise `coxe` regenerates to the generic GPT model while the rest of the Codex config still points at `gpt-codex`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
|
||
| if test (count $argv) -eq 0 | ||
| codex --model '__GPT_CODEX__' --full-auto -c model_reasoning_summary_format=experimental | ||
| codex --model '__GPT__' --full-auto -c model_reasoning_summary_format=experimental |
There was a problem hiding this comment.
P2: Use the Codex-specific placeholder here instead of __GPT__; otherwise coxe regenerates to the generic GPT model while the rest of the Codex config still points at gpt-codex.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At home-manager/programs/fish/functions/_coxe_function.tpl.fish, line 6:
<comment>Use the Codex-specific placeholder here instead of `__GPT__`; otherwise `coxe` regenerates to the generic GPT model while the rest of the Codex config still points at `gpt-codex`.</comment>
<file context>
@@ -3,9 +3,9 @@ function _coxe_function --description "Run Codex with a free-form prompt"
if test (count $argv) -eq 0
- codex --model '__GPT_CODEX__' --full-auto -c model_reasoning_summary_format=experimental
+ codex --model '__GPT__' --full-auto -c model_reasoning_summary_format=experimental
else
set -l prompt (string join " " -- $argv)
</file context>
Changes
llm-upgradetarget: runsscripts/llm-update.shto regenerate tool configs frommodels.jsongitalias-upgradetarget: downloads latestgitalias.txtfrom upstreamneovim-upgrade: symlinknvim-pack-lock.jsoninto repo before runningvim.pack.update()so changes persistTechnical Details
These targets are now wired into
make upgrade, which means the daily scheduled upgrade workflow will produce actual file diffs and create PRs instead of being a no-op.Generated with Claude Code by claude-sonnet-4-6
Summary by cubic
Add
llm-upgradeandgitalias-upgradetomake upgradeso scheduled upgrades regenerate LLM configs and refreshgitalias.txt. Also fixes Neovim plugin upgrades and updates Codex defaults togpt-5.4.New Features
llm-upgrade: regenerate tool configs frommodels.jsonviascripts/llm-update.sh(bumps Gemini to3.1and GPT to5.4across configs).gitalias-upgrade: fetch latestgitalias.txtviascripts/update-gitalias.sh.cxe/cxehtogpt-5.4; switch templates from__GPT_CODEX__to__GPT__.Bug Fixes
init.luaandnvim-pack-lock.jsonbefore runningvim.pack.update().git-aicommit hooks to prevent hangs.Written for commit b10cf2e. Summary will update on new commits.