Skip to content
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
e965660
feat: add awscli2 dependency and S3 backup for config
shunkakinoki Dec 25, 2025
a2315b1
fix: update ENV_FILE path to handle launchd context correctly
shunkakinoki Dec 25, 2025
ab7652b
fix: update start script to use variable paths for awscli and sed com…
shunkakinoki Dec 25, 2025
b0fb91e
feat: add support for glm-4.7 model in OpenAI compatibility section
shunkakinoki Dec 25, 2025
35b618b
feat: add GLM-4.7 Coding Plan model support in Z-AI provider
shunkakinoki Dec 25, 2025
6220231
feat: update config and start script to support AMP API keys
shunkakinoki Dec 25, 2025
67833c0
fix: update API keys section in config.yaml for clarity and optional …
shunkakinoki Dec 25, 2025
4058359
fix: remove unused AMP_API_KEY substitution from config generation
shunkakinoki Dec 25, 2025
6fc5a70
fix: remove unnecessary newline in AMP integration section of config.…
shunkakinoki Dec 25, 2025
a1fa14d
fix: update API keys section in config.yaml for clarity and add GLM-4…
shunkakinoki Dec 25, 2025
a4f3a7f
Merge remote-tracking branch 'origin/main' into cliproxyapi-proper-ba…
shunkakinoki Dec 25, 2025
a7e77e4
feat: add GLM-4.6 Coding Plan model support in opencode.jsonc
shunkakinoki Dec 25, 2025
e8f69cd
feat: update GLM-4.6 and GLM-4.7 Coding Plan model support in opencod…
shunkakinoki Dec 25, 2025
2ce2dc0
feat: update GLM-4.7 model support in opencode.jsonc and remove depre…
shunkakinoki Dec 25, 2025
c5c14b8
feat: enhance GLM-4.6 and GLM-4.7 model descriptions in opencode.json…
shunkakinoki Dec 25, 2025
51ec726
feat: remove KeepAlive option from brew-upgrader configuration in def…
shunkakinoki Dec 25, 2025
bbde1bd
feat: add timeout to launchctl restart commands in Makefile
shunkakinoki Dec 25, 2025
0b03f2d
feat: update paths for cliproxyapi scripts in spec files
shunkakinoki Dec 25, 2025
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
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -608,37 +608,37 @@ launchctl: launchctl-brew-upgrader launchctl-cliproxyapi launchctl-code-syncer l
.PHONY: launchctl-brew-upgrader
launchctl-brew-upgrader: ## Restart brew-upgrader launchd agent.
@echo "🔄 Restarting brew-upgrader..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.brew-upgrader || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.brew-upgrader || true

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.

medium

Adding a timeout is a good way to prevent the command from hanging. However, hardcoding the timeout value 5 in multiple places makes it harder to maintain. Consider defining a variable for the timeout at the top of the Makefile. This would allow for easy adjustment and ensure consistency across all launchctl targets.

For example:

# At the top of the file
LAUNCHCTL_TIMEOUT ?= 5

# ... in the target
	@timeout $(LAUNCHCTL_TIMEOUT) launchctl kickstart ...

This change would apply to all similar launchctl commands modified in this PR.

@cubic-dev-ai cubic-dev-ai Bot Dec 25, 2025 •

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: timeout is not available by default on macOS. These launchd targets are macOS-specific, but timeout is a GNU coreutils command. Consider using gtimeout (requires brew install coreutils) or a portable alternative like perl -e 'alarm 5; exec @ARGV' launchctl kickstart ....

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At Makefile, line 611:

<comment>`timeout` is not available by default on macOS. These launchd targets are macOS-specific, but `timeout` is a GNU coreutils command. Consider using `gtimeout` (requires `brew install coreutils`) or a portable alternative like `perl -e &#39;alarm 5; exec @ARGV&#39; launchctl kickstart ...`.</comment>

<file context>
@@ -608,37 +608,37 @@ launchctl: launchctl-brew-upgrader launchctl-cliproxyapi launchctl-code-syncer l
 launchctl-brew-upgrader: ## Restart brew-upgrader launchd agent.
 	@echo &quot;🔄 Restarting brew-upgrader...&quot;
-	@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.brew-upgrader || true
+	@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.brew-upgrader || true
 	@echo &quot;✅ brew-upgrader restarted&quot;
 
</file context>
Fix with Cubic

@echo "✅ brew-upgrader restarted"

.PHONY: launchctl-cliproxyapi
launchctl-cliproxyapi: ## Restart cliproxyapi launchd agent.
@echo "🔄 Restarting cliproxyapi..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.cliproxyapi || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.cliproxyapi || true
@echo "✅ cliproxyapi restarted"

.PHONY: launchctl-code-syncer
launchctl-code-syncer: ## Restart code-syncer launchd agent.
@echo "🔄 Restarting code-syncer..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.code-syncer || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.code-syncer || true
@echo "✅ code-syncer restarted"

.PHONY: launchctl-dotfiles-updater
launchctl-dotfiles-updater: ## Restart dotfiles-updater launchd agent.
@echo "🔄 Restarting dotfiles-updater..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.dotfiles-updater || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.dotfiles-updater || true
@echo "✅ dotfiles-updater restarted"

.PHONY: launchctl-neverssl-keepalive
launchctl-neverssl-keepalive: ## Restart neverssl-keepalive launchd agent.
@echo "🔄 Restarting neverssl-keepalive..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.neverssl-keepalive || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.neverssl-keepalive || true
@echo "✅ neverssl-keepalive restarted"

.PHONY: launchctl-ollama
launchctl-ollama: ## Restart ollama launchd agent.
@echo "🔄 Restarting ollama..."
@launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.ollama || true
@timeout 5 launchctl kickstart -k gui/$$(id -u)/org.nix-community.home.ollama || true
@echo "✅ ollama restarted"

##@ Systemd Services (Linux)
Expand Down
1 change: 0 additions & 1 deletion config/cliproxyapi/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ openai-compatibility:
- "__OPENROUTER_API_KEY__"
models:
- name: "z-ai/glm-4.6"
- name: "z-ai/glm-4.7"
- name: "z-ai"
base-url: "https://api.z.ai/api/coding/paas/v4"
api-keys:
Expand Down
46 changes: 34 additions & 12 deletions config/opencode/opencode.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@
"name": "Claude Haiku 4.5 (via CLIProxyAPI)"
},
"z-ai/glm-4.6": {
"name": "GLM-4.6 (via OpenRouter)",
"options": {
"stream": false
}
"name": "GLM-4.6 (via OpenRouter and Z.AI Coding Plan)"
},
"z-ai/glm-4.7": {
"name": "GLM-4.7 (via OpenRouter and Z.AI Coding Plan)"

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.

medium

The model description here states that GLM-4.7 is available via OpenRouter. However, the change in config/cliproxyapi/config.yaml removes the z-ai/glm-4.7 model from the openrouter provider configuration. This creates an inconsistency and could be misleading. Please update the description to accurately reflect that the model is available via the Z.AI Coding Plan only.

					"name": "GLM-4.7 (via Z.AI Coding Plan)"

Comment on lines 45 to +49

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Add missing openrouter allowlist entry for z-ai/glm-4.7

The new z-ai/glm-4.7 entry is added under the CLIProxyAPI provider, but CLIProxyAPI’s openai-compatibility config only allowlists z-ai/glm-4.6 for the openrouter backend (see config/cliproxyapi/config.yaml under openai-compatibility → openrouter → models). With that config, selecting z-ai/glm-4.7 via the proxy will be rejected as an unknown model unless you also add it to the openrouter model list or point this entry at the Z-AI provider (glm-4.7).

Useful? React with 👍 / 👎.

Copilot AI Dec 25, 2025

Copy link

Choose a reason for hiding this comment

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

The model name mentions "via OpenRouter and Z.AI Coding Plan", but z-ai/glm-4.7 was removed from the OpenRouter configuration in config/cliproxyapi/config.yaml. The name should be updated to reflect that this model is only available via Z.AI Coding Plan, not OpenRouter.

Suggested change
"name": "GLM-4.7 (via OpenRouter and Z.AI Coding Plan)"
"name": "GLM-4.7 (via Z.AI Coding Plan)"

Copilot uses AI. Check for mistakes.
}
}
},
Expand Down Expand Up @@ -85,7 +85,9 @@
"reasoningEffort": "medium",
"reasoningSummary": "auto",
"textVerbosity": "medium",
"include": ["reasoning.encrypted_content"]
"include": [
"reasoning.encrypted_content"
]
},
"models": {
"gpt-5-codex-low-oauth": {
Expand Down Expand Up @@ -151,39 +153,49 @@
"deepseek/deepseek-chat-v3.1:free": {
"options": {
"provider": {
"order": ["baseten"],
"order": [
"baseten"
],
"allow_fallbacks": false
}
}
},
"moonshotai/kimi-k2": {
"options": {
"provider": {
"order": ["baseten"],
"order": [
"baseten"
],
"allow_fallbacks": false
}
}
},
"moonshotai/kimi-k2:free": {
"options": {
"provider": {
"order": ["baseten"],
"order": [
"baseten"
],
"allow_fallbacks": false
}
}
},
"openai/gpt-oss-120b:free": {
"options": {
"provider": {
"order": ["baseten"],
"order": [
"baseten"
],
"allow_fallbacks": false
}
}
},
"qwen/qwen3-coder:free": {
"options": {
"provider": {
"order": ["baseten"],
"order": [
"baseten"
],
"allow_fallbacks": false
}
}
Expand All @@ -198,7 +210,17 @@
"glm-4.6": {
"name": "GLM-4.6 (via Z-AI)",
},

Copilot AI Dec 25, 2025

Copy link

Choose a reason for hiding this comment

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

Trailing comma after the last property in the JSON object. This will cause a JSON parsing error in most parsers, although JSONC typically allows trailing commas in arrays and objects.

Copilot uses AI. Check for mistakes.
"zai-coding-plan/glm-4.7": {
},

Copilot AI Dec 25, 2025

Copy link

Choose a reason for hiding this comment

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

Trailing comma after the last property in the models object. This will cause a JSON parsing error in most parsers, although JSONC typically allows trailing commas in arrays and objects.

Copilot uses AI. Check for mistakes.
"options": {
"apiKey": "{env:ZAI_API_KEY}",
}
Comment on lines +215 to +216

Copilot AI Dec 25, 2025

Copy link

Choose a reason for hiding this comment

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

Trailing comma after the last property in the options object. This will cause a JSON parsing error in most parsers, although JSONC typically allows trailing commas in arrays and objects.

Copilot uses AI. Check for mistakes.
},
"zai-coding-plan": {
"models": {
"glm-4.6": {
"name": "GLM-4.6 Coding Plan (via Z-AI)"
},
"glm-4.7": {
"name": "GLM-4.7 Coding Plan (via Z-AI)"
}
},
Comment on lines +218 to 226

Copilot AI Dec 25, 2025

Copy link

Choose a reason for hiding this comment

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

The zai-coding-plan provider is missing required configuration fields. Based on the pattern used by other providers like cliproxyapi, lmstudio, and ollama, it should include an npm package specification and a baseURL in the options section. Without these fields, the provider may not function correctly.

Copilot uses AI. Check for mistakes.
Expand All @@ -210,4 +232,4 @@
"tui": {
"scroll_speed": 3
}
}
}
1 change: 0 additions & 1 deletion home-manager/services/brew-upgrader/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"${./upgrade.sh}"
];
RunAtLoad = true;
KeepAlive = true;
StartInterval = 10800;
StandardOutPath = "/tmp/brew-upgrader.log";
StandardErrorPath = "/tmp/brew-upgrader.error.log";
Expand Down
Loading