Skip to content

feat: add llm-upgrade and gitalias-upgrade to make upgrade - #1076

Merged
shunkakinoki merged 3 commits into
mainfrom
feat/upgrade-scripts
Mar 13, 2026
Merged

feat: add llm-upgrade and gitalias-upgrade to make upgrade#1076
shunkakinoki merged 3 commits into
mainfrom
feat/upgrade-scripts

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Mar 13, 2026

Copy link
Copy Markdown
Owner

Changes

  • Add llm-upgrade target: runs scripts/llm-update.sh to regenerate tool configs from models.json
  • Add gitalias-upgrade target: downloads latest gitalias.txt from upstream
  • Fix neovim-upgrade: symlink nvim-pack-lock.json into repo before running vim.pack.update() so changes persist
  • Run upgrade locally to apply generated file changes

Technical 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-upgrade and gitalias-upgrade to make upgrade so scheduled upgrades regenerate LLM configs and refresh gitalias.txt. Also fixes Neovim plugin upgrades and updates Codex defaults to gpt-5.4.

  • New Features

    • llm-upgrade: regenerate tool configs from models.json via scripts/llm-update.sh (bumps Gemini to 3.1 and GPT to 5.4 across configs).
    • gitalias-upgrade: fetch latest gitalias.txt via scripts/update-gitalias.sh.
    • Upgrade Codex default model for cxe/cxeh to gpt-5.4; switch templates from __GPT_CODEX__ to __GPT__.
  • Bug Fixes

    • Persist Neovim plugin updates by symlinking init.lua and nvim-pack-lock.json before running vim.pack.update().
    • Add 10s timeouts to git-ai commit hooks to prevent hangs.

Written for commit b10cf2e. Summary will update on new commits.

- 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
@shunkakinoki shunkakinoki added the enhancement Indicates new feature requests. label Mar 13, 2026
Copilot AI review requested due to automatic review settings March 13, 2026 14:09
@shunkakinoki shunkakinoki added the enhancement Indicates new feature requests. label Mar 13, 2026
@mesa-dot-dev

mesa-dot-dev Bot commented Mar 13, 2026

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@shunkakinoki
shunkakinoki enabled auto-merge (squash) March 13, 2026 14:09
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 make upgrade command. It also resolves a critical issue with Neovim plugin updates to ensure configuration changes are properly persisted. These changes are designed to enable the daily scheduled upgrade workflow to generate meaningful file diffs and create pull requests automatically, preventing no-op executions. Additionally, it updates several LLM model versions to their latest iterations in various configuration files, ensuring the system utilizes up-to-date models for improved performance and capabilities.

Highlights

  • New Upgrade Targets: Added llm-upgrade and gitalias-upgrade targets to the make upgrade command, automating updates for LLM tool configurations and Git aliases.
  • Neovim Upgrade Fix: Fixed the neovim-upgrade target to ensure Neovim configuration files are correctly symlinked, allowing for persistent plugin updates.
  • LLM Model Updates: Updated various Large Language Model (LLM) references, including GPT and Gemini models, to newer versions across several configuration files.
  • Claude Hook Timeout: Introduced a 10-second timeout for git-ai checkpoint claude hooks in the Claude settings.
  • Git Alias Correction: Corrected a minor typo in the gitalias.txt file, swapping topic-end and topic-finish definitions.
Changelog
  • Makefile
    • Added llm-upgrade target to regenerate LLM tool configs.
    • Added gitalias-upgrade target to download the latest gitalias.txt.
    • Integrated llm-upgrade and gitalias-upgrade into the main upgrade target.
    • Modified neovim-upgrade to symlink init.lua and nvim-pack-lock.json before updating plugins.
  • config/ccs/gemini.settings.template.json
    • Updated Gemini model versions from gemini-3-pro-preview to gemini-3.1-pro-preview and gemini-3-flash-preview to gemini-3.1-flash-preview.
  • config/claude/settings.json
    • Added a timeout of 10 seconds to the git-ai checkpoint claude command within hooks.
  • config/openclaw/openclaw.template.json
    • Updated GPT model id and name from gpt-5.2 to gpt-5.4.
    • Updated Gemini model id and name from gemini-3-pro-preview to gemini-3.1-pro-preview and gemini-3-flash-preview to gemini-3.1-flash-preview.
    • Updated primary model references for several agents (Code Reviewer, Sales Agent, Twitter, Product Manager, Strategy) to their respective new versions.
  • config/opencode/opencode.jsonc
    • Updated GPT model id and name from gpt-5.2 to gpt-5.4 in both CLIProxy configurations.
    • Updated Gemini model id and name from gemini-3-pro-preview to gemini-3.1-pro-preview and gemini-3-flash-preview to gemini-3.1-flash-preview in both CLIProxy configurations.
  • config/pi/models.json
    • Updated GPT model id and name from gpt-5.2 to gpt-5.4.
    • Updated Gemini model id and name from gemini-3-pro-preview to gemini-3.1-pro-preview and gemini-3-flash-preview to gemini-3.1-flash-preview.
  • home-manager/programs/git/gitalias.txt
    • Corrected a typo by swapping topic-end and topic-finish alias definitions.
Activity
  • The pull request was generated by Claude Code using claude-sonnet-4-6.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mesa-dot-dev

mesa-dot-dev Bot commented Mar 13, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Added llm-upgrade and gitalias-upgrade targets to make upgrade to automate LLM configuration regeneration and Git alias updates. Fixed Neovim plugin upgrades to ensure lockfile changes persist, enabling daily scheduled upgrade workflows to produce meaningful file diffs and PRs.

What changed?

  • Makefile: The main upgrade target now includes llm-upgrade and gitalias-upgrade. The neovim-upgrade target has been modified to ensure the Neovim configuration directory exists and symlinks nvim-pack-lock.json before updating plugins.
  • config/ccs/gemini.settings.template.json: Upgraded gemini-3-pro-preview and gemini-3-flash-preview models to gemini-3.1-pro-preview and gemini-3.1-flash-preview.
  • config/claude/settings.json: Added a "timeout": 10 setting for "git-ai checkpoint claude" command hooks to prevent indefinite runs.
  • config/openclaw/openclaw.template.json: Updated "gpt-5.2" models to "gpt-5.4" and "gemini-3-pro-preview" and "gemini-3-flash-preview" to their "3.1-preview" versions.
  • config/opencode/opencode.jsonc: Upgraded "gpt-5.2" to "gpt-5.4", "gemini-3-pro-preview" to "gemini-3.1-pro-preview", and "gemini-3-flash-preview" to "gemini-3.1-flash-preview" across CLIProxy configurations.
  • config/pi/models.json: Updated model configurations or definitions.
  • home-manager/programs/git/gitalias.txt: Swapped the aliased commands for topic-end and topic-finish.

Description generated by Mesa. Update settings

@coderabbitai

coderabbitai Bot commented Mar 13, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d2a68451-e2bb-48d5-a591-05ebfd5c2602

📥 Commits

Reviewing files that changed from the base of the PR and between 3900826 and b10cf2e.

📒 Files selected for processing (4)
  • home-manager/programs/fish/functions/_coxe_function.fish
  • home-manager/programs/fish/functions/_coxe_function.tpl.fish
  • home-manager/programs/fish/functions/_coxeh_function.fish
  • home-manager/programs/fish/functions/_coxeh_function.tpl.fish

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Upgrade workflow now also refreshes LLM tool configs and updates git-alias definitions as part of the system upgrade.
  • Bug Fixes

    • More reliable Neovim plugin upgrades by ensuring config presence before updating.
  • Chores

    • Bumped AI model versions to Gemini 3.1 and GPT 5.4 across configs.
    • Added timeouts to git integration hooks.
    • Adjusted git alias mappings.

Walkthrough

Adds 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

Cohort / File(s) Summary
Makefile targets & upgrade flow
Makefile
Added public targets llm-upgrade and gitalias-upgrade; upgrade now depends on them. neovim-upgrade now ensures Neovim config dir exists and creates symlinks for init.lua and nvim-pack-lock.json before headless update.
Global LLM model updates
config/openclaw/openclaw.template.json, config/opencode/opencode.jsonc, config/pi/models.json, config/ccs/gemini.settings.template.json
Replaced model IDs/names: gpt-5.2gpt-5.4, gemini-3-pro-previewgemini-3.1-pro-preview, gemini-3-flash-previewgemini-3.1-flash-preview (and updated display names) across providers and agent primary model entries.
Hook configuration
config/claude/settings.json
Added timeout: 10 to two hook entries that run git-ai checkpoint claude --hook-input stdin.
Git aliases
home-manager/programs/git/gitalias.txt
Swapped mapping between topic-end and topic-finish aliases (changed which alias references the other's implementation).
Fish shell Codex functions
home-manager/programs/fish/functions/_coxe_function.fish, .../_coxe_function.tpl.fish, .../_coxeh_function.fish, .../_coxeh_function.tpl.fish
Updated invoked Codex model identifiers: moved references from Codex-specific tokens/ids (e.g., gpt-5.3-codex, __GPT_CODEX__) to unified gpt-5.4 / __GPT__ model identifiers; no control-flow 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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐇 I hopped through models, swapped their shoes,

GPT and Gemini now chase new hues,
Targets sprouted, scripts hum with cheer,
Neovim symlinks whisper, "Update's here!"
Aliases flipped — a rabbit's small coup.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and specifically describes the main changes: adding llm-upgrade and gitalias-upgrade targets to the make upgrade workflow.
Description check ✅ Passed The description is detailed and related to the changeset, covering new features, bug fixes, and technical implementation details relevant to the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/upgrade-scripts
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread Makefile
Comment on lines +609 to +611
@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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

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"

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 upgrade to run new llm-upgrade (regenerates tool configs from models.json) and gitalias-upgrade (downloads latest gitalias.txt).
  • Update several tool configuration files to use updated model IDs (gpt-5.4, gemini-3.1-*-preview).
  • Adjust gitalias.txt to make topic-finish alias topic-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.

Comment thread Makefile
Comment on lines +609 to +611
@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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread config/pi/models.json
Comment on lines +60 to +61
"id": "gemini-3.1-flash-preview",
"name": "Gemini 3.1 Flash",

@cubic-dev-ai cubic-dev-ai Bot Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>
Suggested change
"id": "gemini-3.1-flash-preview",
"name": "Gemini 3.1 Flash",
"id": "gemini-3-flash-preview",
"name": "Gemini 3 Flash",
Fix with Cubic

Comment thread config/pi/models.json
{
"id": "gpt-5.2",
"name": "GPT 5.2 [ChatGPT Pro]",
"id": "gpt-5.4",

@cubic-dev-ai cubic-dev-ai Bot Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>
Fix with Cubic

"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",

@cubic-dev-ai cubic-dev-ai Bot Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>
Fix with Cubic

Comment thread Makefile
.PHONY: neovim-upgrade
neovim-upgrade: ## Update Neovim plugins.
@echo "📦 Updating neovim plugins..."
@mkdir -p ~/.config/nvim

@cubic-dev-ai cubic-dev-ai Bot Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>
Fix with Cubic

… in _coxe_function and _coxeh_function

Entire-Checkpoint: 50f02811ffcb
@shunkakinoki
shunkakinoki disabled auto-merge March 13, 2026 14:27
@shunkakinoki
shunkakinoki merged commit f2cfbdc into main Mar 13, 2026
25 of 26 checks passed
@shunkakinoki
shunkakinoki deleted the feat/upgrade-scripts branch March 13, 2026 14:27

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

@cubic-dev-ai cubic-dev-ai Bot Mar 13, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>
Fix with Cubic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Indicates new feature requests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants