Commit Graph
174 Commits
Author SHA1 Message Date
Fredrik Bränström 3ad140d2f5 feat: add environment variable interpolation for API keys
- Add interpolateEnvVars function to support $VAR_NAME and ${VAR_NAME} syntax
- Apply interpolation to config after JSON5 parsing in readConfigFile()
- Enables secure API key management without hardcoding in config.json
- Supports nested objects and arrays for comprehensive interpolation
- Maintains backward compatibility with existing configurations

Example usage in config.json:
{
  "OPENAI_API_KEY": "$OPENAI_API_KEY",
  "Providers": [
    {
      "name": "openai",
      "api_key": "$OPENAI_API_KEY"
    }
  ]
}
2025-08-11 21:43:32 +02:00
musistudio 075ec76ec1 fix windows logs path error 2025-08-11 10:25:50 +08:00
musistudio 709b49b0e8 release v1.0.35 to fix windows logfile name 2025-08-10 22:11:51 +08:00
musistudio b856e1e11b relese v1.0.34 to optimize the log 2025-08-10 21:37:48 +08:00
musiandGitHub 6510d3aac9 Merge pull request #506 from BigUncle/fix/ui-restart-authentication
fix ui: resolve 403 Forbidden error when restarting service via UI
2025-08-10 07:51:11 +08:00
BigUncle 1708c59434 fix ui: resolve 403 Forbidden error when restarting service via UI
- Include /api/restart endpoint in access control checks alongside /api/config endpoints
- Ensure restart endpoint properly validates API key authentication
- This fixes the issue where 'Save and Restart' fails with 403 error in UI
2025-08-09 20:44:28 +08:00
musistudioandClaude 9cd5587f52 feat: Implement temporary API key based on system UUID for UI access
This commit introduces a new authentication mechanism for the web UI.
Instead of requiring a pre-configured API key, a temporary API key is
generated based on the system's UUID. This key is passed to the UI
as a URL parameter and used for API requests.

Changes:
- Added a new utility to get the system UUID and generate a temporary API key.
- Modified the `ccr ui` command to generate and pass the temporary API key.
- Updated the authentication middleware to validate the temporary API key.
- Adjusted the frontend to use the temporary API key from the URL.
- Added a dedicated endpoint to test API access without modifying data.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-07 15:00:42 +08:00
musiandGitHub 4334f40926 Merge pull request #465 from HynoR/main
fix: check provider name to prevent duplicate name with different config param
2025-08-07 08:56:18 +08:00
HynoR 38bc747261 fix: check provider name to prevent duplicate name with different config 2025-08-07 00:56:30 +08:00
musistudio adfae3263a update sponsors 2025-08-06 22:21:01 +08:00
musistudio 0794151eb5 release v1.0.33 2025-08-06 22:19:05 +08:00
musistudio 3e1963564a fix ui: add form validator 2025-08-06 21:11:44 +08:00
musistudio 023c045821 Merge remote-tracking branch 'origin/main' 2025-08-06 20:54:21 +08:00
musiandGitHub f9b745b621 Merge pull request #449 from schoeffm/bugfix/fix-code-args-handling
Preserve spaces in quoted args
2025-08-06 20:53:36 +08:00
musiandGitHub a958f18305 Merge branch 'main' into bugfix/fix-code-args-handling 2025-08-06 20:53:24 +08:00
musiandGitHub 89844bcb62 Merge pull request #455 from xgblack/fix-docker-ui
fix ui: 修复Docker中运行通过UI重启报错的问题
2025-08-06 20:17:07 +08:00
小光andGitHub 37cb0c776f fix ui: 修复Docker中运行通过UI重启报错的问题
使用Claude Code修复
2025-08-06 15:03:06 +08:00
musiandGitHub d9e8df5c04 Merge pull request #444 from jagnani73/main
feat: non interactive spawn compatible
2025-08-06 13:06:45 +08:00
Stefan Schoeffmann 91e9d43abd Preserve spaces in quoted args
This makes SDK mode work since the model gets the complete quoted prompt passed in (instead of just the first word)
2025-08-05 21:34:19 +02:00
musistudio 216ee939fb feat ui: add placeholder for proxy_url 2025-08-05 22:21:13 +08:00
Yashvardhan Jagnani 47051bf11b docs: non interactive env 2025-08-05 14:20:18 +05:30
Yashvardhan Jagnani 355c83a8c1 feat: non interactive spawn compatible 2025-08-05 13:42:38 +05:30
Yashvardhan Jagnani 552621f707 chore: remove duplicate lock file 2025-08-05 13:42:03 +05:30
musiandGitHub 75ab74957d Merge pull request #425 from FlintyLemming/main
feat: support setting ANTHROPIC_SMALL_FAST_MODEL from config file
2025-08-04 21:00:51 +08:00
FlintyLemmingandGitHub d684319261 feat: support setting ANTHROPIC_SMALL_FAST_MODEL from config file 2025-08-04 15:03:22 +08:00
musistudio 7bb816ad03 fix ui: custom transformer error 2025-08-04 13:18:57 +08:00
musistudio 38c6cf0c9a feat ui: show apikey in edit provider dialog 2025-08-04 13:02:39 +08:00
musistudio e51d70caf2 feat ui: add tooltip 2025-08-04 09:48:15 +08:00
musistudio 5fd78a103b feat ui: add import and export config 2025-08-03 16:42:59 +08:00
musistudio a3b2353bca release v1.0.32 2025-08-03 08:27:57 +08:00
musistudio 99afe0e21a compatible model name case problem 2025-08-03 07:47:11 +08:00
musistudio 7751683365 pass token count to custom router 2025-08-03 07:38:51 +08:00
musistudio c2edcd145e add supoort subagent router via <CCR-SUBAGENT-MODEL> 2025-08-03 07:31:17 +08:00
musistudio 996a05d1d6 feat ui: support import provider from template 2025-08-02 22:56:18 +08:00
musistudio cd43a74ab5 add open router provider doc 2025-08-02 18:05:17 +08:00
musistudio 6523255d83 fix ui: add proxy_url in general settings 2025-08-02 17:50:11 +08:00
musistudio a3d1f44908 release v1.0.31 to support anthropic endpoint provider 2025-08-01 22:10:14 +08:00
musiandGitHub 5a11d2f9af Merge pull request #401 from Honghurumeng/main
fix(ui): 优化Providers编辑模态框取消以进行关闭的删除逻辑和保存逻辑
2025-08-01 13:02:21 +08:00
Reed Qu d929e7cfef fix(ui): 优化Providers编辑模态框取消以关闭的删除逻辑和保存逻辑 2025-08-01 11:30:35 +08:00
musistudio 03c9b0fa58 update sponsors 2025-07-31 09:16:34 +08:00
musiandGitHub cd65b3605d Merge pull request #378 from BigUncle/feature/ui-add-api-timeout-setting
feat(ui): add API_TIMEOUT_MS setting to configuration UI(添加 API 超时时间设置功能)
2025-07-31 09:14:45 +08:00
BigUncle 754125e3a3 feat(ui): add API_TIMEOUT_MS setting to configuration UI
- Add API_TIMEOUT_MS input field to SettingsDialog
- Add translations for the new setting in both English and Chinese locales
- Update ConfigProvider to handle API_TIMEOUT_MS configuration
2025-07-30 23:15:57 +08:00
musistudioandClaude 3cb086fc57 feat: Limit config backups to 3 most recent files
Modified the backupConfigFile function to automatically clean up old backups,
keeping only the 3 most recent backup files. This prevents the config directory
from accumulating excessive backup files over time.

The implementation:
- Creates timestamped backups as before
- After each new backup, scans for existing backups
- Sorts backups by timestamp (newest first)
- Deletes all but the 3 most recent backups
- Gracefully handles cleanup errors with warnings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 21:59:10 +08:00
musistudio 3a12fdffb1 update docker file 2025-07-30 21:48:47 +08:00
musistudio 7978f1abae fix some ui issue 2025-07-30 21:33:58 +08:00
musistudio aea48239f9 fix ui fetch failed 2025-07-30 20:31:14 +08:00
musistudio 7acb443aad release v1.0.30 2025-07-30 16:48:32 +08:00
musistudio 18cfe6e2f0 update doc 2025-07-30 15:53:50 +08:00
musistudioandClaude 1d7374067e fix: improve error handling and config validation
- Add fallback mechanism for service startup with default config
- Implement config file backup before saving
- Add robust validation for config data in UI components
- Improve error handling and user feedback in UI
- Fix potential null/undefined access in provider and router components

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 15:39:44 +08:00
musistudioandClaude e560db85f4 fix: show default port 3456 in status when not specified in config
When the PORT was not specified in the config file, the status command
would show "undefined" for the port. This fix ensures that the default
port 3456 is displayed instead, matching the actual behavior of the
service which uses 3456 as the default port.

Fixes the issue where `ccr status` shows undefined for port when not
configured explicitly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 15:10:44 +08:00