[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/361708556","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/361708556/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/361708556/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.4","id":361708556,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VjzwM","tag_name":"v0.8.4","target_commitish":"main","name":"CSSwitch v0.8.4","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-29T11:37:02Z","updated_at":"2026-07-29T11:38:18Z","published_at":"2026-07-29T11:38:18Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/493974092","id":493974092,"node_id":"RA_kwDOTLwuKs4dcXJM","name":"CSSwitch_0.8.4_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":12884340,"digest":"sha256:23471daf2caa7832da3205bcc8ba97d96c057ad17539c6c7ed36aa43a3c5f2b2","download_count":604,"created_at":"2026-07-29T11:37:39Z","updated_at":"2026-07-29T11:38:16Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.4/CSSwitch_0.8.4_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.4","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.4","body":"## Fixed\n\n- Fixed Claude Science 0.1.25 startup being rejected when the fixed updater path contains the App-seeded executable with identifier `com.anthropic.operon.cli`.\n- Continue to accept the standalone updater identifier `com.anthropic.operon`.\n- Retained the exact Team ID, fixed-path, ownership, permissions, Mach-O, same-open copy, SHA-256 content-addressed snapshot, source-stability, and fail-closed checks.\n\n## Package\n\n- macOS Apple Silicon only.\n- The App is ad-hoc signed with verified on-disk integrity. It is not Developer ID signed, notarized, stapled, or claimed Gatekeeper-accepted.\n- `CSSwitch_0.8.4_aarch64.dmg`\n- SHA-256: `23471daf2caa7832da3205bcc8ba97d96c057ad17539c6c7ed36aa43a3c5f2b2`\n\nThis is a narrowly scoped hotfix over v0.8.3. It does not claim changes to providers, model routing, OAuth, SSH, profiles, or Science data.\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/361669267","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/361669267/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/361669267/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.3","id":361669267,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VjqKT","tag_name":"v0.8.3","target_commitish":"main","name":"CSSwitch v0.8.3","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-29T10:31:32Z","updated_at":"2026-07-29T10:33:07Z","published_at":"2026-07-29T10:33:07Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/493915245","id":493915245,"node_id":"RA_kwDOTLwuKs4dcIxt","name":"CSSwitch_0.8.3_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":11734020,"digest":"sha256:549c7a01e721470e3e442f7c4d27227e9ca0e0f633e63b8f62691bba69459ec3","download_count":33,"created_at":"2026-07-29T10:32:34Z","updated_at":"2026-07-29T10:33:04Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.3/CSSwitch_0.8.3_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.3","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.3","body":"## CSSwitch v0.8.3\n\n### Fixed\n\n- Added Claude Science 0.1.25 compatibility for updater runtimes, new-session control, authority trees, health checks, managed reattach, and stop/recovery identity.\n- Replaced whole-tree Science authority backups with a selective snapshot of credentials, organizations, MCP state, and SSH bridge metadata. Conda, Runtime, seed assets, R libraries, and sandbox bind sources remain opaque and are never traversed or copied, removing the multi-gigabyte cold-start snapshot path.\n- Split profile selection from runtime application: **Set active** now saves the local choice only, while **Start** is the single guarded transaction that validates, applies, starts, and opens Science.\n- Preserved selected-versus-applied truth across profile edits, preset sync, key clearing, deletion, rollback, and interrupted runtime operations.\n- Hardened managed Science and Gateway adoption against stale receipts, PID reuse, unproven restart candidates, late SSH failures, and incomplete authority recovery.\n- Rejected malformed OpenAI Responses tool arguments locally instead of forwarding ambiguous tool calls.\n- Simplified provider cards and Science model display names while retaining strict internal selector and role mappings.\n\n### Compatibility and boundaries\n\n- macOS Apple Silicon only.\n- The package is ad-hoc signed. It is not Developer ID signed, notarized, stapled, or claimed Gatekeeper accepted.\n- DeepSeek Pro thinking multi-round compatibility remains an open provider-specific issue.\n- This release does not claim every provider or real-account path is green.\n\n### Artifact\n\n- `CSSwitch_0.8.3_aarch64.dmg`\n- SHA-256: `549c7a01e721470e3e442f7c4d27227e9ca0e0f633e63b8f62691bba69459ec3`\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/358530230","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/358530230/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/358530230/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.2","id":358530230,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VXry2","tag_name":"v0.8.2","target_commitish":"main","name":"CSSwitch v0.8.2","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-23T07:54:38Z","updated_at":"2026-07-23T07:55:29Z","published_at":"2026-07-23T07:55:29Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/486923658","id":486923658,"node_id":"RA_kwDOTLwuKs4dBd2K","name":"CSSwitch_0.8.2_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":12697639,"digest":"sha256:35c78c38773df119346ec9e1a629cce097d77cd45844bb32cd469a304e53911a","download_count":239,"created_at":"2026-07-23T07:55:12Z","updated_at":"2026-07-23T07:55:28Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.2/CSSwitch_0.8.2_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.2","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.2","body":"## macOS 0.8.2\n\n- 修复 Claude Science 隔离 HOME 下 SSH Host alias 不可见：将授权 Host 块生成到隔离配置，不再依赖跨目录 Include。\n- 修复 OpenCode Go 的 kimi-k3 在 Science 中显示/路由为旧模型的问题。\n- 修复官方/第三方模式切换后首次启动可能误报 gateway 模型目录无响应的问题；Codex 动态目录改用一次完整、有界的校验。\n- 修复 Science 0.1.20+ 向 Codex 发送 python 工具时的保留名称冲突。\n- 修复覆盖安装脚本在旧版 Gateway 未运行时提前退出，以及第三方模式固定使用 App 内旧 Science runtime 的问题。\n\n本附件为 Apple Silicon macOS DMG。Linux 版本继续使用 v0.8.1 Linux x64 prerelease。\n\n签名说明：当前附件为 ad-hoc seal，未做 Apple Developer ID 签名或 notarization；首次打开可能需要在 Finder 中右键“打开”。"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356689030","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356689030/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/356689030/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.1","id":356689030,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VQqSG","tag_name":"v0.8.1","target_commitish":"main","name":"CSSwitch v0.8.1","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-20T11:52:34Z","updated_at":"2026-07-20T11:53:12Z","published_at":"2026-07-20T11:53:12Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/483411396","id":483411396,"node_id":"RA_kwDOTLwuKs4c0EXE","name":"CSSwitch_0.8.1_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":11392224,"digest":"sha256:923f2977ec4e4dd83787a6b928867bf0141571c5814ce8cdc84a84b64d750bef","download_count":136,"created_at":"2026-07-20T11:53:08Z","updated_at":"2026-07-20T11:53:12Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.1/CSSwitch_0.8.1_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.1","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.1","body":"## 修复\n\n- 修复 OpenCode Go 因模型协议与端点路由不一致导致的连接失败，并分别支持官方 OpenAI Chat 与 Anthropic Messages 路径。\n- 修复 Codex 对话标题、描述被显示为 JSON 字符串的问题，并为 Memory classifier 增加受控的 Sonnet fallback。\n- 修复 Kimi K3 多轮对话中 reasoning、工具调用和失败尾部污染导致同一对话持续 `temporarily unavailable` 的本地兼容问题；上游服务自身临时不可用不在此修复范围内。\n- 修复第三方模式在 Science 中 Sign out 后，多历史组织无法从 UI 恢复的问题（#63）。\n- 修复 DeepSeek DSML 工具调用标记泄漏到正文的问题（#8）。\n- 修复模型映射的默认/Sonnet 漂移和旧配置迁移路径，并在 UI 显示实际 Balanced、Quality、Fast、Fable 路由，避免误判 Flash/Pro。\n- 修复 Grok 与 Gemini OpenAI-compatible 路由合同缺失的问题；本次未进行这两个 provider 的真实 API 消耗测试。\n- 修复隔离 HOME 未生成经授权系统 SSH config `Include` bridge 的问题；Claude Science 自身前置解析器仍作为单独实机兼容边界。\n\nmacOS Apple Silicon；附件为 ad-hoc 签名，未使用 Developer ID，未公证。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356856752","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356856752/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/356856752/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.1-linux-x64","id":356856752,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VRTOw","tag_name":"v0.8.1-linux-x64","target_commitish":"main","name":"CSSwitch v0.8.1 Linux x64","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-20T16:31:34Z","updated_at":"2026-07-20T16:33:12Z","published_at":"2026-07-20T16:33:12Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/483666050","id":483666050,"node_id":"RA_kwDOTLwuKs4c1CiC","name":"CSSwitch_0.8.1_amd64.deb","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-debian-package","state":"uploaded","size":12140986,"digest":"sha256:bec218f6d8475868b9eda0a20d31a23200d8a4453c090917fceedb865cde9c17","download_count":319,"created_at":"2026-07-20T16:32:32Z","updated_at":"2026-07-20T16:33:09Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.1-linux-x64/CSSwitch_0.8.1_amd64.deb"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/483666052","id":483666052,"node_id":"RA_kwDOTLwuKs4c1CiE","name":"CSSwitch_0.8.1_amd64.deb.sha256","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":91,"digest":"sha256:477e7b094304ca85f95157c36f5464868d01e0d9e170a7a583ff083434ee0dac","download_count":61,"created_at":"2026-07-20T16:32:32Z","updated_at":"2026-07-20T16:32:33Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.1-linux-x64/CSSwitch_0.8.1_amd64.deb.sha256"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/483666051","id":483666051,"node_id":"RA_kwDOTLwuKs4c1CiD","name":"test-summary.txt","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"text/plain; charset=utf-8","state":"uploaded","size":425,"digest":"sha256:2729eb096d3f67b82b055962ce68b0be743dbd18388081f47ae9330d47caf594","download_count":64,"created_at":"2026-07-20T16:32:32Z","updated_at":"2026-07-20T16:32:32Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.1-linux-x64/test-summary.txt"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.1-linux-x64","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.1-linux-x64","body":"## 修复\n\n- 修复 Anthropic Messages、OpenAI Chat Completions 与 Responses 兼容转换中的流式事件、工具调用和错误语义问题。\n- 修复第三方 Provider 合同、模型目录探测与多模型角色映射不一致的问题。\n- 修复 v0.8.0 多份历史登录记录的安全恢复流程。\n- 修复 Linux 测试沙箱在系统临时目录下的所有者校验假失败。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356279747","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/356279747/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/356279747/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.8.0","id":356279747,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VPGXD","tag_name":"v0.8.0","target_commitish":"main","name":"CSSwitch v0.8.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-19T07:00:50Z","updated_at":"2026-07-19T08:13:58Z","published_at":"2026-07-19T07:10:43Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/482212553","id":482212553,"node_id":"RA_kwDOTLwuKs4cvfrJ","name":"CSSwitch_0.8.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":12586913,"digest":"sha256:fce19ed23e3632e84d7214f9257d9b74ac2270340f16aad1c5d07a1402da1c02","download_count":134,"created_at":"2026-07-19T08:02:57Z","updated_at":"2026-07-19T08:03:40Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.8.0/CSSwitch_0.8.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.8.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.8.0","body":"# CSSwitch v0.8.0\n\nCSSwitch 0.8 brings a redesigned desktop UI and a simpler model configuration flow for Claude Science.\n\n## What’s new\n\n- New compact UI with clearer Provider, Codex, Skill, and MCP entry points.\n- Provider profiles now support four explicit model slots: Sonnet, Opus, Haiku, and Fable. You can keep one model or fill all four, including exact custom upstream model IDs.\n- Strict model routing: the model shown in Science maps to the configured upstream model; unknown aliases fail explicitly instead of silently falling back.\n- Science model catalogs refresh when the active catalog, default model, or role mapping changes. The placeholder `default` entry is no longer used as the visible model name.\n- Codex cards use the same configuration layout while keeping account-managed model data read-only.\n- Startup errors and browser-open fallbacks are surfaced as non-blocking notifications with a copyable URL.\n- Configuration schema moves to v4 with an automatic migration path from earlier supported schemas.\n\n## Download\n\nThis release is for macOS Apple Silicon. Download `CSSwitch_0.8.0_aarch64.dmg`, open it, and drag CSSwitch to Applications.\n\nThe release artifact is an open-source ad-hoc macOS build. If macOS blocks the first launch, right-click CSSwitch in Finder and choose **Open**.\n\n## Packaging correction\n\nThe macOS DMG was replaced on 2026-07-19 after an unintended stale `CSSwitch Test.app` was found beside the production app. The current asset contains exactly one app, `CSSwitch.app`, plus the Applications link. Current SHA-256: `fce19ed23e3632e84d7214f9257d9b74ac2270340f16aad1c5d07a1402da1c02`.\n\n## Verification boundary\n\nThe source, loopback, Rust, frontend, packaging, DMG integrity, and mounted-app checks passed for this release. This does not claim exhaustive live-account coverage for every provider, relay, model, or Science environment.\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/355564968","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/355564968/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/355564968/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.7.0","id":355564968,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VMX2o","tag_name":"v0.7.0","target_commitish":"main","name":"CSSwitch v0.7.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-17T08:46:08Z","updated_at":"2026-07-17T08:56:38Z","published_at":"2026-07-17T08:56:38Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/480177743","id":480177743,"node_id":"RA_kwDOTLwuKs4cnu5P","name":"CSSwitch_0.7.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/octet-stream","state":"uploaded","size":12267718,"digest":"sha256:72fc5dc47dd428951a055762296e1b654af3b577b62ff409b72910698c5c700f","download_count":101,"created_at":"2026-07-17T08:55:53Z","updated_at":"2026-07-17T08:56:08Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.7.0/CSSwitch_0.7.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.7.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.7.0","body":"# CSSwitch v0.7.0\n\n这次发布新增了默认关闭的 Codex → Claude Science 实验接入，并启用新的橙色圆角开关图标。\n\n## 主要更新\n\n- CSSwitch 独立完成 Codex 浏览器 OAuth；登录成功后自动确保 Codex profile 存在，但不会擅自切换当前 provider。\n- 动态读取当前账号模型目录，在 Science “More models” 中显示可用的 `Codex / …` 模型；不硬编码或伪造账号没有返回的模型。\n- Rust Gateway 支持 Codex Responses/SSE 的文本、reasoning、流式、工具调用、工具结果和加密 reasoning 续接。\n- OAuth、刷新、退出、模型目录、scratch/formal Gateway 和推理共用一条经过校验的 direct / HTTP(S) / SOCKS5 / SOCKS5h 网络路线。\n- 修复部分 Codex 成功 SSE 响应缺少 `Content-Type` 时被 Science 显示为 “Claude is temporarily unavailable” 的问题；新实现只做有界 SSE 前缀识别，保留已消费字节，且不会重发推理 POST。\n- Codex 凭据保存在 CSSwitch 自有 data root 的私有文件中，不使用 macOS Keychain，不读取、复用、修改或删除原生 `~/.codex` 登录。\n- 应用图标替换为选定的 1 号橙色圆角设计；四角透明，无黑边。\n\n## 使用 Codex\n\n1. 在「高级设置」中启用 Codex 实验能力。\n2. 选择自动网络或填写无认证的 HTTP、HTTPS、SOCKS5、SOCKS5h 代理。\n3. 点击 Codex 浏览器登录并完成 OpenAI 页面授权。\n4. 将自动出现的 Codex 配置设为当前，点击「一键开始」。\n5. 在 Science “More models” 中选择当前账号返回的 `Codex / …` 模型。\n\n当前边界：macOS Apple Silicon、单个 CSSwitch Codex 账号、浏览器登录。暂不支持设备码、多账号、代理认证、PAC、自定义 CA、系统代理自动发现或 TUN 检测。Codex 是非官方实验能力，上游账号权限、模型目录和协议可能变化。\n\n## 升级与回滚\n\n0.7.0 会把 v1/v2 配置原子迁移到 v3，并保留不可覆盖的版本备份。回滚到 0.6.0 前，必须在 0.7.0 中执行“导出并降级到 v2”，或在停止所有 CSSwitch 进程后恢复迁移生成的 v2 备份；只删除 Codex profile 不会改变 schema。\n\n## 下载\n\n- macOS Apple Silicon: `CSSwitch_0.7.0_aarch64.dmg`\n- Size: `12,267,718` bytes\n- SHA-256: `72fc5dc47dd428951a055762296e1b654af3b577b62ff409b72910698c5c700f`\n\n## 安装提示\n\n本包使用本地 ad-hoc seal，没有 Developer ID、Apple notarization 或 stapled ticket。首次打开如果被 macOS 拦截，请在 Finder 中右键 CSSwitch 并选择「打开」。Codex 登录不要求 Apple 开发者账号或正式签名。\n\n详细使用方法见 [README](https://github.com/SuperJJ007/CSSwitch/tree/v0.7.0#readme)，完整变更见 [CHANGELOG](https://github.com/SuperJJ007/CSSwitch/blob/v0.7.0/CHANGELOG.md)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/354640041","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/354640041/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/354640041/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.6.0","id":354640041,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VI2Cp","tag_name":"v0.6.0","target_commitish":"main","name":"CSSwitch v0.6.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-15T18:43:44Z","updated_at":"2026-07-15T18:46:29Z","published_at":"2026-07-15T18:46:29Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/478260967","id":478260967,"node_id":"RA_kwDOTLwuKs4cga7n","name":"CSSwitch_0.6.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":9701904,"digest":"sha256:4a67973ef090e6d0a0dbc8e85d456c81d87733831555f6ea84cecb75e563dfb4","download_count":91,"created_at":"2026-07-15T18:44:13Z","updated_at":"2026-07-15T18:46:25Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.6.0/CSSwitch_0.6.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.6.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.6.0","body":"# CSSwitch v0.6.0\n\n这次发布完成了外部 Skill 安装链路的正式收口，并继续保持 CSSwitch 只做窄范围桥接，不接管 Science 的 Skill Manager、catalog、inventory 或数据库。\n\n## 主要更新\n\n- 支持从准确的公开 GitHub URL 安装单 Skill 或 bundle。\n- GitHub 慢下载显示单请求进度；同一请求内完成固定提交解析、archive / fallback、最终响应和临时状态清理，不自动重试或重复提交。\n- CSSwitch 主面板新增“导入 Skill 包”，通过系统文件选择器导入本地 `.zip` / `.skill`。\n- bundle 保留直接成员与 `_shared` 等支持资源，并批量绑定到 Science。\n- 从任意 bundle 成员卸载时，先显示完整受影响 Skill 列表并要求整包确认；取消不修改任何内容，确认后整包解绑与隔离，不支持部分物理删除。\n- 从 v0.5.0 升级时迁移旧外部 Skill route / connector，同时保留用户 MCP 项和未知字段。\n- README 中英文版、架构合同、升级与回滚说明和发布证据已同步到 v0.6.0。\n\n## 下载\n\n- macOS Apple Silicon: `CSSwitch_0.6.0_aarch64.dmg`\n- SHA-256: `4a67973ef090e6d0a0dbc8e85d456c81d87733831555f6ea84cecb75e563dfb4`\n\n## 安装提示与边界\n\n当前包是 ad-hoc 签名、未做 Apple notarization，也没有 stapled ticket。首次打开如果被 macOS 拦截，请在 Finder 中右键 CSSwitch 并选择“打开”。\n\n本版本不支持私有仓库认证、同名覆盖更新、bundle 成员级物理删除、Skill Manager / catalog / inventory / SQLite 集成。\n\n详细使用方法见 [README](https://github.com/SuperJJ007/CSSwitch/tree/v0.6.0#readme)，完整变更见 [CHANGELOG](https://github.com/SuperJJ007/CSSwitch/blob/v0.6.0/CHANGELOG.md)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/353569099","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/353569099/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/353569099/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.5.0","id":353569099,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VEwlL","tag_name":"v0.5.0","target_commitish":"main","name":"CSSwitch v0.5.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-14T04:29:08Z","updated_at":"2026-07-14T04:30:49Z","published_at":"2026-07-14T04:30:49Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/476269736","id":476269736,"node_id":"RA_kwDOTLwuKs4cY0yo","name":"CSSwitch_0.5.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":6741103,"digest":"sha256:08d5dabe8a867052b10b806239751528429ccbf1c6e8ea4e5047702bdf7c3baf","download_count":129,"created_at":"2026-07-14T04:29:34Z","updated_at":"2026-07-14T04:30:42Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.5.0/CSSwitch_0.5.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.5.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.5.0","body":"## 主要更新\n\n- 在第三方模型模式下，通过一个合并后的本地 connector 安装或卸载外部 Skill。安装要求准确的公开 GitHub 目录 URL，并使用 Science 原生 Agent attach/load；卸载只隔离 CSSwitch 自己导入的目录，再原生 detach。\n- 优化「一键开始」：Science 版本探测按可执行文件指纹复用，Skill 路由成功状态跨重启保存；正常重复启动不再反复执行 connector attach/readback。\n- 增加可选的系统 SSH 配置授权。默认关闭；启用后允许隔离 Science 的系统 OpenSSH 调用读取真实 `~/.ssh/config`，但 CSSwitch 不复制或链接整个 `.ssh`。\n- 改进 DeepSeek DSML 工具调用转换，减少第三方 Science 会话中的工具调用失败。\n\n## 安全与兼容边界\n\n- Gateway 与 Science 继续只监听 loopback；本版本不提供 `0.0.0.0`、不启动 `sshd`、不修改防火墙。\n- 系统 SSH 授权会遵循 OpenSSH 原生的 `Include`、`IdentityFile`、`IdentityAgent`、`ProxyCommand` 和 `Match exec` 语义，请仅在信任当前隔离 Science 实例时开启。\n- 名称搜索仍取决于模型；安装桥本身始终要求准确 URL。不支持私有仓库、更新覆盖、永久删除/恢复 UI 或 Skill 发布。\n- 保持 v2 配置格式并继续复用 `~/.csswitch/sandbox/home/.claude-science`，不迁移或覆盖现有 Science 数据。\n- 当前附件仅支持 macOS Apple Silicon，使用 ad-hoc 签名，尚未 Apple 公证。\n\n## 校验\n\n`CSSwitch_0.5.0_aarch64.dmg`\n\nSHA-256: `08d5dabe8a867052b10b806239751528429ccbf1c6e8ea4e5047702bdf7c3baf`\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352787356","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352787356/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/352787356/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.4.4","id":352787356,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VBxuc","tag_name":"v0.4.4","target_commitish":"main","name":"CSSwitch v0.4.4","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-12T15:54:29Z","updated_at":"2026-07-12T15:56:17Z","published_at":"2026-07-12T15:56:17Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/474514365","id":474514365,"node_id":"RA_kwDOTLwuKs4cSIO9","name":"CSSwitch_0.4.4_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":6517572,"digest":"sha256:b9c0e5e48be7e93fa45232b3b5eef4a791c2429b77cba1c755ffbc9df8a339aa","download_count":84,"created_at":"2026-07-12T15:55:32Z","updated_at":"2026-07-12T15:55:44Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.4.4/CSSwitch_0.4.4_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.4.4","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.4.4","body":"## CSSwitch v0.4.4\n\nThis release restores CSSwitch to its core role as a provider switcher and Claude Science launcher.\n\n### Changed\n\n- Removed Skill Manager from the compiled application, Tauri command registry, and one-click startup path.\n- One-click startup no longer scans external or workspace Skills, reads legacy store/inventory, runs deployment reconcile, or requires a Skill reconcile marker.\n- Continued reuse of the persistent Science data directory at `~/.csswitch/sandbox/home/.claude-science`.\n- Existing Science organizations, projects, and Skills are left untouched. Legacy CSSwitch Skill Manager data is retained on disk but is no longer used at runtime.\n- Large/unreadable external Skill trees, `LIMIT_EXCEEDED`, `STORE_CONFLICT`, broken inventory, and Skill catalog availability can no longer block CSSwitch startup.\n\n### Known limitations\n\n- This release does **not** fix natural-language external Skill installation in Science third-party mode.\n- The tested Science build routes conversational Skill authoring and GitHub import through an Anthropic account-backed Skill catalog. Without a real Anthropic login, those paths may fail with catalog 401/degraded errors.\n- A GitHub monorepo subdirectory URL also produced HTTP 422 in the tested Science importer.\n- CSSwitch does not bypass OAuth, emulate the Anthropic Skill catalog, or claim that external Skill discovery, triggering, execution, or hot reload has been verified.\n\n### Distribution\n\n- macOS Apple Silicon only.\n- Ad-hoc signed and not notarized. First launch may require right-clicking the app and choosing **Open**.\n- DMG SHA-256: `b9c0e5e48be7e93fa45232b3b5eef4a791c2429b77cba1c755ffbc9df8a339aa`\n\nSee the [changelog](https://github.com/SuperJJ007/CSSwitch/blob/v0.4.4/CHANGELOG.md), [architecture contract](https://github.com/SuperJJ007/CSSwitch/blob/v0.4.4/docs/ARCHITECTURE.md), and [upgrade/rollback guide](https://github.com/SuperJJ007/CSSwitch/blob/v0.4.4/docs/upgrade-and-rollback.md).\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352738951","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352738951/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/352738951/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.4.3","id":352738951,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VBl6H","tag_name":"v0.4.3","target_commitish":"main","name":"CSSwitch v0.4.3","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-12T11:46:41Z","updated_at":"2026-07-12T11:48:31Z","published_at":"2026-07-12T11:48:31Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/474353477","id":474353477,"node_id":"RA_kwDOTLwuKs4cRg9F","name":"CSSwitch_0.4.3_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":7047771,"digest":"sha256:a0052ca180b48121bce2b40b14e425609bf468551b82e8ed039fc34b57a404d6","download_count":25,"created_at":"2026-07-12T11:47:09Z","updated_at":"2026-07-12T11:48:29Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.4.3/CSSwitch_0.4.3_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.4.3","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.4.3","body":"CSSwitch v0.4.3 closes the Science agent Skill persistence path and hardens Skill Manager recovery.\\n\\n- A Science agent can write a single-file <name>.skill.md in the active workspace; one-click start imports it into the CSSwitch store, deploys it, and automatically restarts isolated Science.\\n- STORE_CONFLICT now moves the old Skill root to a non-destructive quarantine, restores every payload that passes normal inspection, and retries startup once.\\n- Workspace ingress is fd-anchored, rejects symlinks/hardlinks and shared-writable paths, uses bounded files/counts, and reads no credentials.\\n- README wording now positions CSSwitch as a configuration converter that connects Science to your own API.\\n- The exact v0.4.1 legacy Python proxy identity cleanup remains unchanged.\\n\\nArtifact SHA-256: a0052ca180b48121bce2b40b14e425609bf468551b82e8ed039fc34b57a404d6\\n\\nThe macOS artifact is ad-hoc signed and not notarized."},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352708245","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352708245/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/352708245/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.4.2","id":352708245,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VBeaV","tag_name":"v0.4.2","target_commitish":"main","name":"CSSwitch v0.4.2","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-12T08:40:52Z","updated_at":"2026-07-12T08:42:49Z","published_at":"2026-07-12T08:42:49Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/474242248","id":474242248,"node_id":"RA_kwDOTLwuKs4cRFzI","name":"CSSwitch_0.4.2_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":6998499,"digest":"sha256:1044c107d120d549f64f908463cd09e44ef59aa6086d86ac362d24a1b2f4b697","download_count":22,"created_at":"2026-07-12T08:42:43Z","updated_at":"2026-07-12T08:42:48Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.4.2/CSSwitch_0.4.2_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.4.2","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.4.2","body":"## CSSwitch v0.4.2\n\n### Skill Manager\n\n- Automatically scans configured real-HOME Skill sources without reading real Science credentials.\n- Imports immutable managed copies into the CSSwitch store, tracks inventory and compatibility, and deploys enabled Skills into isolated Science.\n- Keeps imported Skills when their original source disappears and restores deployments after sandbox reconstruction.\n- Adds requirement inspection for scripts, assets, references, static trees, Python/R, network, MCP, SSH, and external-tool boundaries.\n\n### Runtime and compatibility\n\n- Expands the public Capability Catalog and installation-matrix coverage.\n- Preserves v0.4.1's exact legacy Python proxy cleanup. CSSwitch stops a listener only when port, UID, Python identity, legacy bundle script path, provider, and arguments all match; unknown processes remain untouched.\n- Uses temporary isolated HOME/data, dynamic non-8765 ports, an environment allowlist, and a fake `security` boundary in installed-Science E2E validation.\n\n### Validation boundaries\n\n- Full repository gates passed: Rust tests, clippy with warnings denied, formatting, Python/catalog/matrix tests, shell tests, frontend syntax, and `test/run_all.sh`.\n- Installed Science discovery, Skill triggering, disabled-Skill rejection, and sandbox-rebuild restoration passed with retained redacted evidence.\n- Four additional scientific Skill shapes passed scan, import, store/inventory, deploy, source-loss retention, and rebuild restoration. Their network- or external-tool-dependent scientific functions were not claimed as executed.\n- The release DMG SHA-256 is `1044c107d120d549f64f908463cd09e44ef59aa6086d86ac362d24a1b2f4b697`.\n\n### macOS distribution note\n\nThis Apple Silicon build is ad-hoc signed and is not Apple-notarized. It has no stapled notarization ticket and is not Gatekeeper-approved. You may need to right-click CSSwitch and choose **Open** on first launch. This is an explicitly accepted open-source distribution boundary, not a claim that Developer ID signing or notarization passed.\n\nSee the repository changelog and `docs/upgrade-and-rollback.md` for upgrade and rollback details.\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352489803","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352489803/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/352489803/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.4.1","id":352489803,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VApFL","tag_name":"v0.4.1","target_commitish":"main","name":"CSSwitch v0.4.1 — legacy proxy upgrade fix","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-11T10:32:52Z","updated_at":"2026-07-11T10:38:25Z","published_at":"2026-07-11T10:38:25Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/473417958","id":473417958,"node_id":"RA_kwDOTLwuKs4cN8jm","name":"CSSwitch_0.4.1_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":6514241,"digest":"sha256:01bea3ccc5bdb27ceac0329a7bf692e8480e3b19185422df4b6e9e684c850b78","download_count":51,"created_at":"2026-07-11T10:35:43Z","updated_at":"2026-07-11T10:36:53Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.4.1/CSSwitch_0.4.1_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.4.1","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.4.1","body":"CSSwitch 0.4.1 fixes an upgrade issue where a legacy CSSwitch Python proxy could remain on the configured port and block Start.\n\nWhat changed:\n- Stops the listener only when PID ownership, current user, Python process name, exact prior bundle script path, provider argument, and configured port all match.\n- Unknown listeners, unrelated Python processes, and unverified stale gateways remain untouched and fail closed.\n- Keeps the v2 profile/configuration format unchanged.\n\nValidated on macOS Apple Silicon with an in-place 0.4.0 to 0.4.1 upgrade and the full offline, loopback, script, Rust, and frontend test gate.\n\nSHA-256:\n`01bea3ccc5bdb27ceac0329a7bf692e8480e3b19185422df4b6e9e684c850b78`  `CSSwitch_0.4.1_aarch64.dmg`\n\nPackaging: ad-hoc signed, not notarized."},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352475905","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/352475905/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/352475905/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.4.0","id":352475905,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4VAlsB","tag_name":"v0.4.0","target_commitish":"main","name":"CSSwitch v0.4.0 — Rust inference gateway","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-11T09:17:04Z","updated_at":"2026-07-11T09:17:37Z","published_at":"2026-07-11T09:17:37Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/473378507","id":473378507,"node_id":"RA_kwDOTLwuKs4cNy7L","name":"CSSwitch_0.4.0_aarch64.dmg","label":"CSSwitch_0.4.0_aarch64.dmg","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":6509258,"digest":"sha256:d613ca716ec723aad175f2a137f0f7f3a5e63f7d28d114fc04d67222e304d722","download_count":3,"created_at":"2026-07-11T09:17:35Z","updated_at":"2026-07-11T09:17:37Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.4.0/CSSwitch_0.4.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.4.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.4.0","body":"CSSwitch v0.4.0 is a major runtime upgrade for Apple Silicon Macs.\n\nHighlights:\n- Replaces the Python inference proxy with a bundled Rust gateway.\n- Improves provider compatibility, model discovery, streaming, and failure handling.\n- Strengthens process ownership, sandbox isolation, and runtime diagnostics.\n- Adds a safer upgrade and rollback path for existing installations.\n\nDownload CSSwitch_0.4.0_aarch64.dmg below.\n\nSHA-256: d613ca716ec723aad175f2a137f0f7f3a5e63f7d28d114fc04d67222e304d722\n\nBefore upgrading, quit CSSwitch and keep a backup of your existing application. See the README and upgrade guide for details."},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349512405","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349512405/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/349512405/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.6","id":349512405,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4U1SLV","tag_name":"v0.3.6","target_commitish":"main","name":"CSSwitch v0.3.6","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-06T11:35:22Z","updated_at":"2026-07-06T11:36:29Z","published_at":"2026-07-06T11:36:29Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/468018575","id":468018575,"node_id":"RA_kwDOTLwuKs4b5WWP","name":"CSSwitch_0.3.6_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3885649,"digest":"sha256:091858ef5443b27067300ac61ca0f331cbf35cfbc1dc6f86d3eb83590f4fbb55","download_count":290,"created_at":"2026-07-06T11:36:20Z","updated_at":"2026-07-06T11:36:28Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.6/CSSwitch_0.3.6_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.6","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.6","body":"CSSwitch v0.3.6 adds preview support for custom OpenAI Responses-compatible providers.\n\n### Added\n- New \"Custom OpenAI Responses\" provider profile.\n- The proxy derives `/responses` and `/models` from an OpenAI-compatible base root.\n- Basic Anthropic Messages <-> OpenAI Responses conversion.\n\n### Fixed\n- Improves DashScope Responses compatibility for tool requests by using conservative tool-choice and output-token handling.\n- Omits tool definitions currently rejected by DashScope Responses compatibility mode, while keeping other tools available.\n\n### Notes\n- Responses streaming is currently implemented as an upstream non-streaming request followed by local Anthropic SSE replay.\n- macOS build is ad-hoc signed and not notarized; first launch may require right-click Open or approving it in System Settings.\n\n### Validation\n- `test/run_all.sh --require-release-ready`\n- Live local proxy checks for DashScope Responses-compatible non-streaming and replayed-streaming requests.\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349437582","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349437582/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/349437582/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.5","id":349437582,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4U0_6O","tag_name":"v0.3.5","target_commitish":"main","name":"CSSwitch v0.3.5 — API/provider stability","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-06T09:12:45Z","updated_at":"2026-07-06T09:13:39Z","published_at":"2026-07-06T09:13:39Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/467912561","id":467912561,"node_id":"RA_kwDOTLwuKs4b48dx","name":"CSSwitch_0.3.5_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3933593,"digest":"sha256:5c10f973827f8cb14eac1874b98c6f5d5bbbf97c0969b76f30d6ee40fb27c8cc","download_count":24,"created_at":"2026-07-06T09:13:36Z","updated_at":"2026-07-06T09:13:38Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.5/CSSwitch_0.3.5_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.5","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.5","body":"CSSwitch v0.3.5 focuses on API/provider stability. It tightens the Anthropic-compatible provider path used by DeepSeek, Kimi, and custom Anthropic endpoints, with clearer provider policy handling and more robust streaming/error behavior.\n\n### Highlights\n- Extracted provider policy and Anthropic-compatible protocol handling into focused modules.\n- Improved streaming keepalive, upstream error forwarding, and end-of-stream behavior.\n- Filtered unsupported Kimi server-side tool definitions before forwarding requests.\n- Added focused regression coverage for provider policy and Anthropic compatibility paths.\n\n### Validation\n- `test/run_all.sh`: all 5 layers passed.\n- Desktop Rust tests, clippy/fmt, and frontend syntax checks passed.\n- DeepSeek streaming and non-streaming smoke paths completed.\n- Kimi failures observed during validation were upstream quota/rate-limit 429 responses, not a proxy regression.\n\n### Install\nDownload `CSSwitch_0.3.5_aarch64.dmg`, open it, and drag `CSSwitch.app` into Applications.\n\nSHA-256:\n\n```text\n5c10f973827f8cb14eac1874b98c6f5d5bbbf97c0969b76f30d6ee40fb27c8cc\n```\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349178924","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349178924/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/349178924/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.4","id":349178924,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4U0Aws","tag_name":"v0.3.4","target_commitish":"main","name":"CSSwitch v0.3.4 — 自定义 OpenAI 入口防呆","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-05T14:21:42Z","updated_at":"2026-07-05T14:23:07Z","published_at":"2026-07-05T14:23:07Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/467195976","id":467195976,"node_id":"RA_kwDOTLwuKs4b2NhI","name":"CSSwitch_0.3.4_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3882445,"digest":"sha256:32626d76461e506dc0802a8d96518263ca2564362102514cf98aa0666b118d70","download_count":135,"created_at":"2026-07-05T14:23:01Z","updated_at":"2026-07-05T14:23:05Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.4/CSSwitch_0.3.4_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.4","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.4","body":"## CSSwitch v0.3.4\n\n小热修：给「自定义 OpenAI」入口加防呆。\n\n### 修复\n- 如果把 `https://.../anthropic` 这类 Anthropic 兼容端点填进「自定义 OpenAI」，现在新建、编辑、获取模型、激活都会明确提示改用「自定义 Anthropic」。\n- 避免 Kimi / 其它 Anthropic 兼容地址被误拼成 OpenAI Chat Completions 路径。\n\n### 验证\n- Rust 单测：125 passed\n- Clippy：0 warnings\n- Python 代理测试：111 passed\n- `test/run_all.sh`：ALL GREEN\n- gitleaks：no leaks found\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349145783","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/349145783/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/349145783/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.3","id":349145783,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uz4q3","tag_name":"v0.3.3","target_commitish":"main","name":"v0.3.3","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-05T11:05:35Z","updated_at":"2026-07-05T11:06:40Z","published_at":"2026-07-05T11:06:40Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/467094029","id":467094029,"node_id":"RA_kwDOTLwuKs4b10oN","name":"CSSwitch_0.3.3_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3885303,"digest":"sha256:0ac30014799d45590f02b79e1b9e4125edfbcdd60bca293a081aa47d0a1f7834","download_count":28,"created_at":"2026-07-05T11:06:38Z","updated_at":"2026-07-05T11:06:39Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.3/CSSwitch_0.3.3_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.3","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.3","body":"## v0.3.3\n\n主题：自定义 OpenAI 兼容 API 真正可用。\n\n### Added\n- 新增「自定义 OpenAI」来源，支持任意 OpenAI Chat Completions 兼容 base URL + key + model。\n- OpenAI base URL 支持常见 `/v1`、`/v4`、`/chat/completions`、`/models` 结尾归一化，避免路径双拼。\n\n### Fixed\n- 修复自定义 OpenAI 配置保存后仍走旧 relay/qwen 硬编码路径的问题。\n- 修复自定义 OpenAI「获取模型」失败：模型发现 scratch 不再要求 `CSSWITCH_OPENAI_MODEL`。\n- 修复不同配置切换可能复用旧代理语义的问题，代理复用指纹纳入模板与协议语义。\n- 更新 doctor 回归测试到多 profile 的 `CSSWITCH_KEY_PRESENT` 语义。\n\n### Verification\n- `cargo test`: 124 passed\n- `cargo clippy --all-targets -- -D warnings`: clean\n- `cargo fmt --check`: clean\n- `test/run_all.sh`: ALL GREEN\n- `test_proxy_units.py`: 45 passed\n- DMG `codesign --verify --deep --strict`: valid\n- DMG `hdiutil verify`: VALID\n\n### Asset\n- `CSSwitch_0.3.3_aarch64.dmg`\n- SHA256: `0ac30014799d45590f02b79e1b9e4125edfbcdd60bca293a081aa47d0a1f7834`\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348905524","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348905524/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348905524/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.2","id":348905524,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uy-A0","tag_name":"v0.3.2","target_commitish":"main","name":"v0.3.2 — Science 顶部显示真实模型名 + 新增 Kimi/MiniMax","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-04T09:25:00Z","updated_at":"2026-07-04T09:25:38Z","published_at":"2026-07-04T09:25:38Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/466217532","id":466217532,"node_id":"RA_kwDOTLwuKs4byeo8","name":"CSSwitch_0.3.2_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3882534,"digest":"sha256:5a24961a218f02135d98d00f4f4858daf699f2f8fb12157126ba0deed7508a2d","download_count":218,"created_at":"2026-07-04T09:25:33Z","updated_at":"2026-07-04T09:25:38Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.2/CSSwitch_0.3.2_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.2","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.2","body":"## v0.3.2 — Science 顶部显示真实模型名 + 新增 Kimi / MiniMax\n\n修复 relay 家在 Science 模型选择器里笼统显示「claude / opus」的问题，让每个服务商都能选择或自填模型、并在 Science 里显示真实模型名；新增 Kimi（Moonshot）与 MiniMax；各家内置模型更新到官方主流版本。\n\n### 新增\n- **Kimi（Moonshot）与 MiniMax**：均走原生 Anthropic 兼容端点，零协议转换。\n- **为每个服务商选择或自填模型**：模型输入改为「下拉精选 + 自填」——下拉里是我们维护的各家主流模型，也可以直接填任意模型名。自定义端点终于有地方填模型名了。\n\n### 修复\n- **relay 家在 Science 顶部选择器显示笼统的「claude / opus」**：现让 relay 家复用 DeepSeek 已验证的「借壳」做法，代理向 Science 返回一个外壳、显示名写成你选择的真实模型名，实际推理仍走你选的模型。真机验证：Science 顶部正确显示 `glm-5.2` 等真实名。\n- **中转 / 自定义端点可以保存空的连接地址或空模型**：现在保存前就拦下，前端与后端各有一道守卫，绝不谎报已保存。\n- **各家内置模型过时**：上官方来源逐一核对更新（GLM `glm-5.2`、MiniMax `MiniMax-M3`、硅基 `DeepSeek-V4` 系、Kimi `kimi-k2.7-code` 等）。\n\n### 说明\n- 全 relay 家统一为「选一个模型」：GLM / OpenRouter 从「默认跟随 Science」改为需要指定一个模型。升级时旧的未指定模型的配置会自动补上默认模型并给出一次提示。\n- 硅基流动 Anthropic `/v1/messages` 兼容性经真机确认。\n- 全绿：cargo test 122 / clippy 0 / fmt clean；代理单测 40；真机在隔离沙箱 Science 里验证模型选择器显示。真实 `~/.claude-science` 与 8765 端口全程未碰。\n\n完整变更见 [CHANGELOG.md](https://github.com/SuperJJ007/CSSwitch/blob/main/CHANGELOG.md)。当前版本仅支持 Apple Silicon（arm64），尚未 Apple 公证，首次启动请右键「打开」。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348855908","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348855908/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348855908/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.1","id":348855908,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uyx5k","tag_name":"v0.3.1","target_commitish":"main","name":"CSSwitch v0.3.1 — 内置预设 base_url 可编辑（修小米 MiMo token plan 401）","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-04T03:33:03Z","updated_at":"2026-07-04T03:33:52Z","published_at":"2026-07-04T03:33:52Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/466020255","id":466020255,"node_id":"RA_kwDOTLwuKs4bxuef","name":"CSSwitch_0.3.1_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3881307,"digest":"sha256:3bd3b5ba91a49877287dc2ec9962caf0053d7832a261980cecc6d4ebef9e9e87","download_count":84,"created_at":"2026-07-04T03:33:50Z","updated_at":"2026-07-04T03:33:52Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.1/CSSwitch_0.3.1_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.1","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.1","body":"## 主题：内置预设支持自定义 base_url\n\n修用户反馈的**小米 MiMo「token plan」401**。\n\n### 修复\n- 小米 MiMo 的「token plan」套餐走独立域名 `token-plan-cn.xiaomimimo.com/anthropic`，与内置的 `api.xiaomimimo.com/anthropic` 不是同一 host；旧版预设地址锁死改不了，套餐 key 打到内置域名被上游 401。\n- 现将四家 relay 预设（智谱 GLM / 小米 MiMo / 硅基流动 / OpenRouter）的 `base_url` 改为**可编辑的默认值**：预填官方地址，允许改到 token 套餐 / 区域镜像 / 自建反代。新建向导与「编辑连接」两处都可改。\n- DeepSeek / 通义千问为原生 adapter（上游地址在代理内固定，运行时不吃自定义地址），保持只读以免「能填但不生效」。「自定义」来源行为不变。\n\n### 用法（小米 token plan 用户）\n新建或编辑「小米 MiMo」来源，把 base_url 改成 `https://token-plan-cn.xiaomimimo.com/anthropic`，填套餐 key，点「获取模型」选一个，设为当前即可。\n\n### 验收\n纯前端 + 模板注册表改动，不改运行语义与鉴权。cargo test 114 全绿 / clippy 0 / fmt clean；独立 agent 前端预览在 420×700 与 380×600 两窗口尺寸实测通过。全程只碰隔离环境，未触碰真实 `~/.claude-science`。\n\n**安装**：下载 `CSSwitch_0.3.1_aarch64.dmg`（Apple Silicon），拖入「应用程序」。首次打开若提示未验证，右键「打开」。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348849388","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348849388/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348849388/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.0","id":348849388,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4UywTs","tag_name":"v0.3.0","target_commitish":"main","name":"CSSwitch v0.3.0 — 多 API 支持 + UI 改版","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-04T02:42:53Z","updated_at":"2026-07-04T02:45:34Z","published_at":"2026-07-04T02:45:34Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/465985954","id":465985954,"node_id":"RA_kwDOTLwuKs4bxmGi","name":"CSSwitch_0.3.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3881183,"digest":"sha256:6ec447b5176532e9830ee7bca96acf337c2eeac641aba3c0cec9519a387a158b","download_count":17,"created_at":"2026-07-04T02:45:32Z","updated_at":"2026-07-04T02:45:33Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.0/CSSwitch_0.3.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.0","body":"## CSSwitch v0.3.0 — 多 API 支持 + UI 改版\n\n从只支持 DeepSeek / 通义千问两家，扩展到 7 家 provider + 自定义端点的多 profile 管理；面板重做为配置列表 + chip 网格 + 三能力模型呈现。真机验收通过，正式毕业为稳定版（取代 v0.2.1 成为 Latest）。\n\n### ✨ 多 API / 多 provider 支持\n- 内置 7 家模板：**DeepSeek、通义千问、智谱 GLM、OpenRouter、小米 MiMo、硅基流动**，外加**自定义 OpenAI / Anthropic 兼容端点**（自填 base_url / 模型 / Key）。\n- **cc-switch 式多 profile 管理**：同一家可存多套、命名、增删、一键切换；切换是事务式的（先探活、健康才提交、失败回滚、全程不停沙箱）。配置 JSON 硬化 + v1→v2 迁移不丢数据。\n- **中转站 relay**：填 base_url + token 即可接任意 Anthropic 兼容中转站，`/v1/models` 自动铺该站真实模型到选择器。\n\n### 🎨 UI 改版\n- 面板重做为 profile 配置列表；来源选择改 chip 网格（键盘可达 / aria-pressed）；模型按三能力呈现（native 内置映射 / relay 跟随 Science / relay 固定）；新建 / 编辑走独立视图；文案瘦身 + 无障碍打磨。\n- 反馈栏空闲不占位（去掉常驻「就绪。」，有反馈才显示）。\n\n### 🐞 修复\n- 配置列表长 key 掩码横向溢出：改定长 `••••` + 末 4 位（WKWebView 也撑不破，且不泄漏 key 长度）。\n- 自检（doctor）对非 deepseek/qwen 来源误报「未知 provider」：改多 profile 感知（据 adapter + key 有无报告，key 存 config.json）。\n- 承接 beta 阶段的多 profile / DSML 一系列修复（无效 native key 拦截、切换回滚健壮性、SSE 末帧、布尔校验等）。\n\n### 📦 安装\n下载 `CSSwitch_0.3.0_aarch64.dmg`，拖入「应用程序」。首次打开请**右键 →「打开」**（未 Apple 公证，属正常）。仅 **Apple Silicon（arm64）**。\n\n### 说明\n- 真机验收已由用户在场完成；DSML 工具调用兜底 shim 默认关闭（需 `CSSWITCH_TOOLUSE_SHIM=rewrite` 显式开启）。\n- 安全：全程只碰隔离沙箱，绝不触碰真实 `~/.claude-science` 与端口 8765。\n- 完整变更见 [CHANGELOG.md](https://github.com/SuperJJ007/CSswitch/blob/main/CHANGELOG.md)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348815965","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348815965/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348815965/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.3.0-beta.2","id":348815965,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4UyoJd","tag_name":"v0.3.0-beta.2","target_commitish":"feat/dsml-tooluse-shim","name":"v0.3.0-beta.2 — 大预览版：relay + 多 profile + DSML（测试版）","draft":false,"immutable":false,"prerelease":true,"created_at":"2026-07-03T22:47:29Z","updated_at":"2026-07-03T22:47:37Z","published_at":"2026-07-03T22:47:37Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/465825332","id":465825332,"node_id":"RA_kwDOTLwuKs4bw-40","name":"CSSwitch_0.3.0-beta.2_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3879196,"digest":"sha256:80d94b9c928f5013a7f30efc7d5410632a2c706dd7d8b006c4a76d1d86f18ee6","download_count":2,"created_at":"2026-07-03T22:47:35Z","updated_at":"2026-07-03T22:47:36Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.3.0-beta.2/CSSwitch_0.3.0-beta.2_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.3.0-beta.2","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.3.0-beta.2","body":"**测试版 / 大预览版（Big Preview · prerelease）。** 一次把三块尚未进正式版的功能合在一起供实机试用。**这不是稳定版**，稳定版仍是 **v0.2.1**。本版**取代并撤回**同日名不副实的 `v0.3.0-beta.1`。\n\n### 本版包含\n- **多 profile 配置管理（cc-switch 式）**：从「固定槽」升级为**用户自管的命名配置列表 + 当前生效指针**。同一家（如 GLM）可存多套、命名、增删、一键切换；切换是事务式（探活健康才提交、失败回滚、不停沙箱）。内置 7 家 provider 模板。配置继续用 JSON 存储并硬化（原子写 + schema 版本 + `.bak`）。\n- **中转站 relay provider**：填 `base_url` + `token` 即可接**任意 Anthropic 兼容中转站**，`/v1/models` 回源自动铺模型，双鉴权头兼容各家。\n- **DSML 兜底 shim（默认 `off`）**：DeepSeek 偶发把工具调用泄漏成纯文本 DSML 标记致 Science 卡死（issue #8）；shim 端到端接进代理，`CSSWITCH_TOOLUSE_SHIM` 选 `off`/`detect`/`rewrite`。\n\n### 关键修复\n- 多 profile：**无效 native key 不再被误报「已切到」**（native 也走隔离上游探测，坏 key 拦下不提交）；切换/编辑健壮性（回滚、停沙箱失败即报错、truthful-save、护栏隔离）。\n- DSML：SSE 末帧丢失 / 非法布尔臆断 false / rewrite 非流式无泄漏时不逐字与遥测误报。\n\n### ⚠️ 请注意（为什么是预览版）\n- **多 profile / relay 的真机行为仍待复测**（RM-04/06/13）：代码 + 单测已覆盖，但真机需在场实测确认。请勿当稳定版依赖，重要配置先备份。\n- **DSML 默认关闭**：普通安装后 DSML 行为与 0.2.1 一致；`rewrite` 需 `CSSWITCH_TOOLUSE_SHIM=rewrite` 显式开启。\n- **铁律零回退**：全程只碰隔离沙箱，绝不触真实 `~/.claude-science` 与端口 8765。\n\n### 验收\ncargo test 113 / clippy 0 / 离线回归 90 全绿 / gitleaks 0。dmg 为 arm64（Apple Silicon）、ad-hoc 签名未公证（首次打开需右键「打开」）。\n\n完整条目见 [`CHANGELOG.md`](https://github.com/SuperJJ007/CSswitch/blob/feat/dsml-tooluse-shim/CHANGELOG.md) 的 `0.3.0-beta.2` 段。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348389097","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348389097/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348389097/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.2.1","id":348389097,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uw_7p","tag_name":"v0.2.1","target_commitish":"main","name":"v0.2.1 — 修「开了 CSSwitch 仍要登录」","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-03T03:00:02Z","updated_at":"2026-07-03T03:00:33Z","published_at":"2026-07-03T03:00:33Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464967612","id":464967612,"node_id":"RA_kwDOTLwuKs4btte8","name":"CSSwitch_0.2.1_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3773360,"digest":"sha256:38eb7fb556713d24d1892b289c2bb368fb2158019fcf80d26f4ecb957a726a71","download_count":227,"created_at":"2026-07-03T03:00:30Z","updated_at":"2026-07-03T03:00:32Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.2.1/CSSwitch_0.2.1_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.2.1","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.2.1","body":"## v0.2.1 — 修「开了 CSSwitch 仍要登录」\n\n0.2.0 有两个会导致「一键开始走完仍落登录页」的缺陷，本版各修一个、各补一条回归测试。链路方案本身没坏（虚拟 OAuth 结构自洽、代理此前成功处理过真实聊天），坏在「重开 / 取入口 URL」这两条路径。\n\n### 修复 Fixed\n- **入口 URL 解析**：`claude-science url` 现在输出多行（第一行是真 URL，第二行是「single-use…」说明）。旧代码把整段 stdout 当 URL 交给浏览器，参数带上换行与说明文字 → 单次性 nonce 未被正确消费 → 最终落到 `/login`。新增 `first_http_url()`，只取第一条合法 `http(s)://` URL。\n- **健康快捷路径绕过登录修复**：0.2.0 只要沙箱 daemon 活着就「连 auth 文件都不读」直接重开窗口，导致旧版遗留 / 凭证损坏 / 已落登录页的健康 daemon 永不自愈。现在健康分支先做**只读**校验（`login_intact`）：登录自洽 → 只重开（org 不动、旧对话不丢）；健康但登录失效 → 停沙箱，走「修复保 org + 重启」自愈。\n\n### 升级安全 Update safety\n更新只替换 app，不动 `~/.csswitch`：你的 API key 与沙箱会话原样保留。经全仓删除路径审计，无任何生产代码路径会删除会话数据（`orgs/`）。\n\n### 受影响用户临时绕法（装 0.2.1 后不再需要）\n先点「停止代理与沙箱」，确认已停，再点「一键开始」——绕开健康快捷路径、生成新入口，不会删除历史组织数据。\n\n### 验证\n`cargo test --lib` 49 全绿（新增 `first_http_url_*` / `login_intact_*` 两条回归）、`cargo fmt --check` CLEAN、`test/run_all.sh` ALL GREEN。\n\n**铁律**：全程只碰隔离沙箱（`~/.csswitch/sandbox`），绝不触碰真实 `~/.claude-science` 与端口 8765。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348359150","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348359150/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348359150/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.2.0","id":348359150,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uw4nu","tag_name":"v0.2.0","target_commitish":"main","name":"CSSwitch v0.2.0 — 一键幂等化","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-03T01:08:51Z","updated_at":"2026-07-03T01:09:56Z","published_at":"2026-07-03T01:09:56Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464889570","id":464889570,"node_id":"RA_kwDOTLwuKs4btabi","name":"CSSwitch_0.2.0_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3773058,"digest":"sha256:bf78af1f2ce0db2a23b7d9c9209e27fb0de13972adf88e5df779275f05c26f48","download_count":57,"created_at":"2026-07-03T01:09:54Z","updated_at":"2026-07-03T01:09:55Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.2.0/CSSwitch_0.2.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.2.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.2.0","body":"## CSSwitch v0.2.0 — 一键幂等化\n\n主题:让「一键开始」变得**幂等**,修 #3(运行中再点的分派)与 #6 的「复发」部分(更新后对话「不见」),并随三轮外部复审全面加固代理与进程路径。\n\n### 修复\n- **#3 一键幂等分派 + 对话不再被孤儿化(阻止 #6 复发)**:虚拟登录从「每次重铸」改为**幂等**。沙箱已在跑时只重新打开,绝不重铸、连登录文件都不读;没起才走完整流程(完整可用则原样复用,部分损坏则修复但**保住组织**,真首次才新建)。**核心不变式:组织 id 只在真正首次生成一次、此后复用与修复都粘住它**,根治「每点一次一键就换新组织、把旧对话留在旧目录里界面看不到」。发现多个历史组织却无法确定活动者时**报恢复提示,绝不静默新建**。*注:本版只「阻止复发」,已产生的孤儿历史对话恢复留待后续(#6b)。*\n- **提示据实**:一键结果分「已在运行,已重新打开 / 已用新配置重启代理,Science 沿用不变 / 沿用原有对话 / 已启动」四态;浏览器打开失败改提示手动打开,不再谎报。\n- **停止 / 切换官方模式不再虚报成功**:定位不到停止脚本时如实报错;切「官方 Claude」改为先拆第三方链路成功、再落盘,杜绝状态分裂。\n- **代理健壮性**:畸形请求体规范回 400;上游 401/403/429 原样透传(DeepSeek 透传与 Qwen 翻译两条路径都修)。\n\n### 安全 / 健壮性(三轮外部复审加固)\n- OAuth 复用从严校验(合法 UUID + provider + 非空 token + 未过期 + 读路径非符号链接),否则降级修复;加密密钥非法时自愈重造。\n- 孤儿代理清理收紧到本安装的绝对脚本路径 + 端口,不误杀其它 checkout / 手启进程。\n- 沙箱身份改用按 data-dir 的强身份确认,替代裸端口探活,防端口被冒名占用误判。\n\n### 变更\n- 全仓 Rust 统一格式(`cargo fmt --check` 通过)。\n\n---\n\n下载:附件 `CSSwitch_0.2.0_aarch64.dmg`(Apple Silicon)。完整变更见 [`CHANGELOG.md`](https://github.com/SuperJJ007/CSswitch/blob/main/CHANGELOG.md)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348326382","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348326382/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348326382/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.1.5","id":348326382,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uwwnu","tag_name":"v0.1.5","target_commitish":"main","name":"CSSwitch v0.1.5","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-02T22:42:31Z","updated_at":"2026-07-02T22:48:30Z","published_at":"2026-07-02T22:48:30Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464776200","id":464776200,"node_id":"RA_kwDOTLwuKs4bs-wI","name":"CSSwitch_0.1.5_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3766284,"digest":"sha256:bcaaa9f837e0fa4e261d962841cf5def4c6fd2d51731bfd3c5ed80b3e1960039","download_count":20,"created_at":"2026-07-02T22:48:27Z","updated_at":"2026-07-02T22:48:29Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.1.5/CSSwitch_0.1.5_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.1.5","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.1.5","body":"本版为文案优化，相对 v0.1.4 **零功能 / 逻辑改动**。\n\n### 变更\n- 主按钮与面板提示文案统一为中性说法「**一键开始**」。\n- README 开场白改为「无需 Claude 订阅也能用上它」。\n\n### 安装\n下载 `CSSwitch_0.1.5_aarch64.dmg`，拖进「应用程序」。首次打开**右键 →「打开」**（ad-hoc 签名、未做 Apple 公证，属正常；仅 Apple Silicon / arm64）。\n\n前置：本机装好 Claude Science，并有 `python3`（虚拟登录已是 Rust 原生，不再需要 node）。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348298014","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348298014/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348298014/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.1.4","id":348298014,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4Uwpse","tag_name":"v0.1.4","target_commitish":"main","name":"CSSwitch v0.1.4","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-02T21:21:02Z","updated_at":"2026-07-02T21:23:25Z","published_at":"2026-07-02T21:23:25Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464723876","id":464723876,"node_id":"RA_kwDOTLwuKs4bsx-k","name":"CSSwitch_0.1.4_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3766789,"digest":"sha256:cc99cc18cb97a568193585a60ab3065b59b1f71219be0d2756c6eb466bb7f5e8","download_count":10,"created_at":"2026-07-02T21:23:22Z","updated_at":"2026-07-02T21:23:24Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.1.4/CSSwitch_0.1.4_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.1.4","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.1.4","body":"## CSSwitch v0.1.4\n\n自 v0.1.2 起的合并发布，重点是**开箱即用**与**实机验证过的稳定性修复**。\n\n### 重大：拔掉 node 运行时依赖（开箱即用）\n\n- **node-ectomy**：虚拟 OAuth 伪造器移进 Rust 原生实现（`oauth_forge.rs`，RustCrypto 重写 HKDF-SHA256 + AES-256-GCM v2 令牌），**app 运行时彻底不再需要 node**。与旧 `make-virtual-oauth.mjs` 的 v2 GCM 格式字节兼容，node↔rust 双向对拍钉死。这是「缺 node」报错的**治本解**：不管用户装没装 node 都能用。\n\n### 新增\n\n- **第三方 / 官方 一键切换**：面板顶部分段切换。第三方模式走 DeepSeek/千问；切到「官方 Claude」即干净交回你真实的 Science 与订阅（用 `open` 正常启动 + 抹掉 `ANTHROPIC_*`，**不碰真实凭证、不起代理/沙箱**）。切官方是真正的切换：后端先停掉第三方链路。\n\n### 修复\n\n- **沙箱卡在「Switching organization」**（#3，实机复现并修正）：代理对 `claude.ai / *.anthropic.com` 的 CONNECT **fast-fail 返回 401（未登录）**。初版返回 403（禁止）会让 operon 当组织问题反复重试、仍卡住；改回 **401** 才触发 operon `treating as logged-out` 秒过（operon 日志实测：403→卡、401→过，唯一变量就是状态码）。\n- **面板拖不动**（#1）：随下面的正常窗口改动一并解决。\n\n### 变更\n\n- **面板改为正常桌面窗口**（#4）：不再是菜单栏下拉；启动即居中弹出，有标题栏关闭/最小化/缩放三键、可拖动、可缩放；**移除菜单栏托盘图标**。\n- 运行时依赖：node + python3 → **仅 python3**（下一步移 axum 拔 python）。\n\n### 安全 / 健壮性（两轮外部复审）\n\n- 伪造器护栏加固：**绝不解析进真实 `~/.claude-science` 之内或其本身**（先于沙箱根检查），符号链接异常布局也不碰真实目录；旧 `.enc` 删除失败改显式报错；登录 shell 探测超时 kill 子进程；`http_proxy` 收敛为只设 `https_proxy`；clippy 清零。\n\n### 已知限制\n\n- 虚拟登录下，**Anthropic 托管的远程 MCP 服务**（pubmed / clinical-trials / chembl / biorxiv，位于 `*.mcp.claude.com`）不可用（需真实 Anthropic 授权，代理已短路，Science 自动跳过）；**本地内置 bio-tools MCP 正常可用**。\n\n### 安装\n\n下载 `CSSwitch_0.1.4_aarch64.dmg`，拖进「应用程序」。**首次打开右键 →「打开」**（ad-hoc 签名、未做 Apple 公证，属正常）。目前仅 **arm64（Apple Silicon）**。需要本机装有 Claude Science 与 `python3`，并填入你自己的第三方 API key。\n\n完整变更见 [CHANGELOG.md](https://github.com/SuperJJ007/CSswitch/blob/main/CHANGELOG.md)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348198554","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348198554/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348198554/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.1.2","id":348198554,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4UwRaa","tag_name":"v0.1.2","target_commitish":"main","name":"CSSwitch v0.1.2","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-02T17:37:08Z","updated_at":"2026-07-02T17:38:38Z","published_at":"2026-07-02T17:38:05Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464554751","id":464554751,"node_id":"RA_kwDOTLwuKs4bsIr_","name":"CSSwitch_0.1.2_aarch64.dmg","label":"","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3824182,"digest":"sha256:cdf433cd856a7307bd24b3762429b3a18a582a993b8c942cac267345a4cbd65c","download_count":9,"created_at":"2026-07-02T17:38:00Z","updated_at":"2026-07-02T17:38:04Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.1.2/CSSwitch_0.1.2_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.1.2","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.1.2","body":"菜单栏面板的稳定性与可用性修复版。\n\n## 修复\n- **面板拖不动**：无边框窗口现会锚到菜单栏正下方，且可正常拖动。\n- **端口占用（Errno 48）**：代理绑定重试 + 起前自动清理上次会话遗留的孤儿代理，「一键越过登录」不再因端口被占而失败。\n- **代理重启后沙箱失效（403）**：path-secret 改为持久化复用，换 key / 换 provider / 重开 app 后已在跑的沙箱仍然可用。\n- **粘贴 key 后直接「一键越过登录」**：现会自动先保存输入框里的 key，不必先点「保存」。\n- **保存即验证 key**：保存后经代理向上游发一个最小请求，真判 key 是否可用（有效 / 被拒），而非只看代理是否起来。\n\n## 反馈与报错\n- 面板新增「反馈 / 报 bug」「日志」入口；GitHub 结构化 Issue 模板上线。\n- 新增隐私声明：**绝不做任何自动遥测 / 崩溃上报**，所有诊断信息均由你手动提交。\n\n## 安装\n下载 `CSSwitch_0.1.2_aarch64.dmg`（仅 Apple Silicon），拖进「应用程序」。首次打开 **右键 →「打开」**（未做 Apple 公证，属正常）。你只需在面板填入自己的第三方 API key。\n\n> 校验：`shasum -a 256 CSSwitch_0.1.2_aarch64.dmg`\n\n`SHA-256: cdf433cd856a7307bd24b3762429b3a18a582a993b8c942cac267345a4cbd65c`\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348183783","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348183783/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348183783/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.1.1","id":348183783,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4UwNzn","tag_name":"v0.1.1","target_commitish":"main","name":"CSSwitch v0.1.1 — 一键面板 + 检查更新","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-02T17:08:12Z","updated_at":"2026-07-02T17:08:43Z","published_at":"2026-07-02T17:08:43Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464534184","id":464534184,"node_id":"RA_kwDOTLwuKs4bsDqo","name":"CSSwitch_0.1.1_aarch64.dmg","label":"CSSwitch_0.1.1_aarch64.dmg","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3822662,"digest":"sha256:26339743afd1519bf0902886ab8278d90105e4b4a3c1defc0ee89610f9da3702","download_count":11,"created_at":"2026-07-02T17:08:41Z","updated_at":"2026-07-02T17:08:42Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.1.1/CSSwitch_0.1.1_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.1.1","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.1.1","body":"### 本次更新\n- **面板简化**：主流程收成「选 provider → 粘贴 key → 一键越过登录」。存 key 就自动起代理，去掉多余的「启动代理」按钮，端口收进「高级」。\n- **检查更新**：页脚「检查更新」查 GitHub 最新版本，有新版就提示并打开下载页（暂不自动安装，自动更新已列入 Roadmap）。页脚显示当前版本号。\n- **陶土主题**：面板配色统一到 Claude 暖橘，和图标、横幅一致。\n\n### 安装（macOS · Apple Silicon）\n下载下方 `CSSwitch_0.1.1_aarch64.dmg`，拖进「应用程序」。首次打开**右键 →「打开」**（ad-hoc 签名、未公证，属正常）。\n\n能做什么 / 已知限制 / 免责声明见仓库 [README](https://github.com/SuperJJ007/CSswitch#readme)。\n"},{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348174509","assets_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/348174509/assets","upload_url":"https://uploads.github.com/repos/SuperJJ007/CSSwitch/releases/348174509/assets{?name,label}","html_url":"https://github.com/SuperJJ007/CSSwitch/releases/tag/v0.1.0","id":348174509,"author":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOTLwuKs4UwLit","tag_name":"v0.1.0","target_commitish":"main","name":"CSSwitch v0.1.0 — macOS 菜单栏 app","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-07-02T16:40:10Z","updated_at":"2026-07-02T16:47:48Z","published_at":"2026-07-02T16:47:48Z","assets":[{"url":"https://api.github.com/repos/SuperJJ007/CSSwitch/releases/assets/464516314","id":464516314,"node_id":"RA_kwDOTLwuKs4br_Ta","name":"CSSwitch_0.1.0_aarch64.dmg","label":"CSSwitch_0.1.0_aarch64.dmg","uploader":{"login":"SuperJJ007","id":63803490,"node_id":"MDQ6VXNlcjYzODAzNDkw","avatar_url":"https://avatars.githubusercontent.com/u/63803490?v=4","gravatar_id":"","url":"https://api.github.com/users/SuperJJ007","html_url":"https://github.com/SuperJJ007","followers_url":"https://api.github.com/users/SuperJJ007/followers","following_url":"https://api.github.com/users/SuperJJ007/following{/other_user}","gists_url":"https://api.github.com/users/SuperJJ007/gists{/gist_id}","starred_url":"https://api.github.com/users/SuperJJ007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SuperJJ007/subscriptions","organizations_url":"https://api.github.com/users/SuperJJ007/orgs","repos_url":"https://api.github.com/users/SuperJJ007/repos","events_url":"https://api.github.com/users/SuperJJ007/events{/privacy}","received_events_url":"https://api.github.com/users/SuperJJ007/received_events","type":"User","user_view_type":"public","site_admin":false},"content_type":"application/x-apple-diskimage","state":"uploaded","size":3816371,"digest":"sha256:160e7ba87554dc74b62cf12ad27c96a1e4ba3483720f62c1f78451de29d3f7bd","download_count":6,"created_at":"2026-07-02T16:47:46Z","updated_at":"2026-07-02T16:47:47Z","browser_download_url":"https://github.com/SuperJJ007/CSSwitch/releases/download/v0.1.0/CSSwitch_0.1.0_aarch64.dmg"}],"tarball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/tarball/v0.1.0","zipball_url":"https://api.github.com/repos/SuperJJ007/CSSwitch/zipball/v0.1.0","body":"CSSwitch：让 Claude Science 的推理走你自选的第三方 API，Science 那套「AI Jupyter」体验照旧。\n\n### 能做什么\n- 保留 Science 的**工具调用、代码执行、Skill、MCP**，模型换成自选的第三方 API。\n- **跳过登录**：本地自造虚拟 OAuth 门票，零真实 Anthropic 凭证。\n- **一个菜单栏 app** 管好一切：选 provider、填 key、起停代理、一键越登录、状态灯。\n- 支持 **DeepSeek、通义千问（Qwen）**，或任意 **OpenAI 兼容端点**（自定义 API）。\n\n### 安装（macOS · Apple Silicon）\n1. 下载 `CSSwitch_0.1.0_aarch64.dmg`，拖进「应用程序」。\n2. 首次打开被 Gatekeeper 拦是正常的（本 app 做了 ad-hoc 签名但**未做 Apple 公证**）：\n   **右键 →「打开」**，或系统设置 → 隐私与安全性 →「仍要打开」。\n3. 菜单栏出现开关图标，点开面板，填第三方 key 即可用。\n\n### 已知限制\n- 产物仅 **arm64（Apple Silicon）**；Intel Mac 需自行 x86_64 / universal 构建。\n- **未公证**：严格 Gatekeeper 环境可能仍拦；公证需 Apple Developer ID（本项目不提供）。\n- **Qwen 流式**目前是「上游整段完成后再 SSE 回放」，首 token 延迟约等于整段生成时间\n  （DeepSeek 默认走原生透传，真流式）。\n\n### 免责\n个人学习与研究用途；推理不经 Anthropic 服务端；对登录令牌格式的逆向与「越过登录」的实现\n可能触及相关服务条款与版权法规（如美国 DMCA §1201），是否适用需专业法律判断，使用者自负风险；\n本项目与 Anthropic 无任何从属、合作或背书关系；软件按「现状」提供、不提供任何担保。详见仓库 README。\n"}]