Skip to content

Releases: SuperJJ007/CSswitch

v0.3.0-beta.2 — 大预览版:relay + 多 profile + DSML(测试版)

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 03 Jul 22:47

测试版 / 大预览版(Big Preview · prerelease)。 一次把三块尚未进正式版的功能合在一起供实机试用。这不是稳定版,稳定版仍是 v0.2.1。本版取代并撤回同日名不副实的 v0.3.0-beta.1

本版包含

  • 多 profile 配置管理(cc-switch 式):从「固定槽」升级为用户自管的命名配置列表 + 当前生效指针。同一家(如 GLM)可存多套、命名、增删、一键切换;切换是事务式(探活健康才提交、失败回滚、不停沙箱)。内置 7 家 provider 模板。配置继续用 JSON 存储并硬化(原子写 + schema 版本 + .bak)。
  • 中转站 relay provider:填 base_url + token 即可接任意 Anthropic 兼容中转站/v1/models 回源自动铺模型,双鉴权头兼容各家。
  • DSML 兜底 shim(默认 off:DeepSeek 偶发把工具调用泄漏成纯文本 DSML 标记致 Science 卡死(issue #8);shim 端到端接进代理,CSSWITCH_TOOLUSE_SHIMoff/detect/rewrite

关键修复

  • 多 profile:无效 native key 不再被误报「已切到」(native 也走隔离上游探测,坏 key 拦下不提交);切换/编辑健壮性(回滚、停沙箱失败即报错、truthful-save、护栏隔离)。
  • DSML:SSE 末帧丢失 / 非法布尔臆断 false / rewrite 非流式无泄漏时不逐字与遥测误报。

⚠️ 请注意(为什么是预览版)

  • 多 profile / relay 的真机行为仍待复测(RM-04/06/13):代码 + 单测已覆盖,但真机需在场实测确认。请勿当稳定版依赖,重要配置先备份。
  • DSML 默认关闭:普通安装后 DSML 行为与 0.2.1 一致;rewriteCSSWITCH_TOOLUSE_SHIM=rewrite 显式开启。
  • 铁律零回退:全程只碰隔离沙箱,绝不触真实 ~/.claude-science 与端口 8765。

验收

cargo test 113 / clippy 0 / 离线回归 90 全绿 / gitleaks 0。dmg 为 arm64(Apple Silicon)、ad-hoc 签名未公证(首次打开需右键「打开」)。

完整条目见 CHANGELOG.md0.3.0-beta.2 段。

v0.2.1 — 修「开了 CSSwitch 仍要登录」

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 03 Jul 03:00

v0.2.1 — 修「开了 CSSwitch 仍要登录」

0.2.0 有两个会导致「一键开始走完仍落登录页」的缺陷,本版各修一个、各补一条回归测试。链路方案本身没坏(虚拟 OAuth 结构自洽、代理此前成功处理过真实聊天),坏在「重开 / 取入口 URL」这两条路径。

修复 Fixed

  • 入口 URL 解析claude-science url 现在输出多行(第一行是真 URL,第二行是「single-use…」说明)。旧代码把整段 stdout 当 URL 交给浏览器,参数带上换行与说明文字 → 单次性 nonce 未被正确消费 → 最终落到 /login。新增 first_http_url(),只取第一条合法 http(s):// URL。
  • 健康快捷路径绕过登录修复:0.2.0 只要沙箱 daemon 活着就「连 auth 文件都不读」直接重开窗口,导致旧版遗留 / 凭证损坏 / 已落登录页的健康 daemon 永不自愈。现在健康分支先做只读校验(login_intact):登录自洽 → 只重开(org 不动、旧对话不丢);健康但登录失效 → 停沙箱,走「修复保 org + 重启」自愈。

升级安全 Update safety

更新只替换 app,不动 ~/.csswitch:你的 API key 与沙箱会话原样保留。经全仓删除路径审计,无任何生产代码路径会删除会话数据(orgs/)。

受影响用户临时绕法(装 0.2.1 后不再需要)

先点「停止代理与沙箱」,确认已停,再点「一键开始」——绕开健康快捷路径、生成新入口,不会删除历史组织数据。

验证

cargo test --lib 49 全绿(新增 first_http_url_* / login_intact_* 两条回归)、cargo fmt --check CLEAN、test/run_all.sh ALL GREEN。

铁律:全程只碰隔离沙箱(~/.csswitch/sandbox),绝不触碰真实 ~/.claude-science 与端口 8765。

CSSwitch v0.2.0 — 一键幂等化

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 03 Jul 01:09

CSSwitch v0.2.0 — 一键幂等化

主题:让「一键开始」变得幂等,修 #3(运行中再点的分派)与 #6 的「复发」部分(更新后对话「不见」),并随三轮外部复审全面加固代理与进程路径。

修复

  • #3 一键幂等分派 + 对话不再被孤儿化(阻止 #6 复发):虚拟登录从「每次重铸」改为幂等。沙箱已在跑时只重新打开,绝不重铸、连登录文件都不读;没起才走完整流程(完整可用则原样复用,部分损坏则修复但保住组织,真首次才新建)。核心不变式:组织 id 只在真正首次生成一次、此后复用与修复都粘住它,根治「每点一次一键就换新组织、把旧对话留在旧目录里界面看不到」。发现多个历史组织却无法确定活动者时报恢复提示,绝不静默新建注:本版只「阻止复发」,已产生的孤儿历史对话恢复留待后续(#6b)。
  • 提示据实:一键结果分「已在运行,已重新打开 / 已用新配置重启代理,Science 沿用不变 / 沿用原有对话 / 已启动」四态;浏览器打开失败改提示手动打开,不再谎报。
  • 停止 / 切换官方模式不再虚报成功:定位不到停止脚本时如实报错;切「官方 Claude」改为先拆第三方链路成功、再落盘,杜绝状态分裂。
  • 代理健壮性:畸形请求体规范回 400;上游 401/403/429 原样透传(DeepSeek 透传与 Qwen 翻译两条路径都修)。

安全 / 健壮性(三轮外部复审加固)

  • OAuth 复用从严校验(合法 UUID + provider + 非空 token + 未过期 + 读路径非符号链接),否则降级修复;加密密钥非法时自愈重造。
  • 孤儿代理清理收紧到本安装的绝对脚本路径 + 端口,不误杀其它 checkout / 手启进程。
  • 沙箱身份改用按 data-dir 的强身份确认,替代裸端口探活,防端口被冒名占用误判。

变更

  • 全仓 Rust 统一格式(cargo fmt --check 通过)。

下载:附件 CSSwitch_0.2.0_aarch64.dmg(Apple Silicon)。完整变更见 CHANGELOG.md

CSSwitch v0.1.5

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 02 Jul 22:48

本版为文案优化,相对 v0.1.4 零功能 / 逻辑改动

变更

  • 主按钮与面板提示文案统一为中性说法「一键开始」。
  • README 开场白改为「无需 Claude 订阅也能用上它」。

安装

下载 CSSwitch_0.1.5_aarch64.dmg,拖进「应用程序」。首次打开右键 →「打开」(ad-hoc 签名、未做 Apple 公证,属正常;仅 Apple Silicon / arm64)。

前置:本机装好 Claude Science,并有 python3(虚拟登录已是 Rust 原生,不再需要 node)。

CSSwitch v0.1.4

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 02 Jul 21:23

CSSwitch v0.1.4

自 v0.1.2 起的合并发布,重点是开箱即用实机验证过的稳定性修复

重大:拔掉 node 运行时依赖(开箱即用)

  • 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 都能用。

新增

  • 第三方 / 官方 一键切换:面板顶部分段切换。第三方模式走 DeepSeek/千问;切到「官方 Claude」即干净交回你真实的 Science 与订阅(用 open 正常启动 + 抹掉 ANTHROPIC_*不碰真实凭证、不起代理/沙箱)。切官方是真正的切换:后端先停掉第三方链路。

修复

  • 沙箱卡在「Switching organization」#3,实机复现并修正):代理对 claude.ai / *.anthropic.com 的 CONNECT fast-fail 返回 401(未登录)。初版返回 403(禁止)会让 operon 当组织问题反复重试、仍卡住;改回 401 才触发 operon treating as logged-out 秒过(operon 日志实测:403→卡、401→过,唯一变量就是状态码)。
  • 面板拖不动#1):随下面的正常窗口改动一并解决。

变更

  • 面板改为正常桌面窗口#4):不再是菜单栏下拉;启动即居中弹出,有标题栏关闭/最小化/缩放三键、可拖动、可缩放;移除菜单栏托盘图标
  • 运行时依赖:node + python3 → 仅 python3(下一步移 axum 拔 python)。

安全 / 健壮性(两轮外部复审)

  • 伪造器护栏加固:绝不解析进真实 ~/.claude-science 之内或其本身(先于沙箱根检查),符号链接异常布局也不碰真实目录;旧 .enc 删除失败改显式报错;登录 shell 探测超时 kill 子进程;http_proxy 收敛为只设 https_proxy;clippy 清零。

已知限制

  • 虚拟登录下,Anthropic 托管的远程 MCP 服务(pubmed / clinical-trials / chembl / biorxiv,位于 *.mcp.claude.com)不可用(需真实 Anthropic 授权,代理已短路,Science 自动跳过);本地内置 bio-tools MCP 正常可用

安装

下载 CSSwitch_0.1.4_aarch64.dmg,拖进「应用程序」。首次打开右键 →「打开」(ad-hoc 签名、未做 Apple 公证,属正常)。目前仅 arm64(Apple Silicon)。需要本机装有 Claude Science 与 python3,并填入你自己的第三方 API key。

完整变更见 CHANGELOG.md

CSSwitch v0.1.2

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 02 Jul 17:38

菜单栏面板的稳定性与可用性修复版。

修复

  • 面板拖不动:无边框窗口现会锚到菜单栏正下方,且可正常拖动。
  • 端口占用(Errno 48):代理绑定重试 + 起前自动清理上次会话遗留的孤儿代理,「一键越过登录」不再因端口被占而失败。
  • 代理重启后沙箱失效(403):path-secret 改为持久化复用,换 key / 换 provider / 重开 app 后已在跑的沙箱仍然可用。
  • 粘贴 key 后直接「一键越过登录」:现会自动先保存输入框里的 key,不必先点「保存」。
  • 保存即验证 key:保存后经代理向上游发一个最小请求,真判 key 是否可用(有效 / 被拒),而非只看代理是否起来。

反馈与报错

  • 面板新增「反馈 / 报 bug」「日志」入口;GitHub 结构化 Issue 模板上线。
  • 新增隐私声明:绝不做任何自动遥测 / 崩溃上报,所有诊断信息均由你手动提交。

安装

下载 CSSwitch_0.1.2_aarch64.dmg(仅 Apple Silicon),拖进「应用程序」。首次打开 右键 →「打开」(未做 Apple 公证,属正常)。你只需在面板填入自己的第三方 API key。

校验:shasum -a 256 CSSwitch_0.1.2_aarch64.dmg

SHA-256: cdf433cd856a7307bd24b3762429b3a18a582a993b8c942cac267345a4cbd65c

CSSwitch v0.1.1 — 一键面板 + 检查更新

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 02 Jul 17:08

本次更新

  • 面板简化:主流程收成「选 provider → 粘贴 key → 一键越过登录」。存 key 就自动起代理,去掉多余的「启动代理」按钮,端口收进「高级」。
  • 检查更新:页脚「检查更新」查 GitHub 最新版本,有新版就提示并打开下载页(暂不自动安装,自动更新已列入 Roadmap)。页脚显示当前版本号。
  • 陶土主题:面板配色统一到 Claude 暖橘,和图标、横幅一致。

安装(macOS · Apple Silicon)

下载下方 CSSwitch_0.1.1_aarch64.dmg,拖进「应用程序」。首次打开右键 →「打开」(ad-hoc 签名、未公证,属正常)。

能做什么 / 已知限制 / 免责声明见仓库 README

CSSwitch v0.1.0 — macOS 菜单栏 app

Choose a tag to compare

@SuperJJ007 SuperJJ007 released this 02 Jul 16:47

CSSwitch:让 Claude Science 的推理走你自选的第三方 API,Science 那套「AI Jupyter」体验照旧。

能做什么

  • 保留 Science 的工具调用、代码执行、Skill、MCP,模型换成自选的第三方 API。
  • 跳过登录:本地自造虚拟 OAuth 门票,零真实 Anthropic 凭证。
  • 一个菜单栏 app 管好一切:选 provider、填 key、起停代理、一键越登录、状态灯。
  • 支持 DeepSeek、通义千问(Qwen),或任意 OpenAI 兼容端点(自定义 API)。

安装(macOS · Apple Silicon)

  1. 下载 CSSwitch_0.1.0_aarch64.dmg,拖进「应用程序」。
  2. 首次打开被 Gatekeeper 拦是正常的(本 app 做了 ad-hoc 签名但未做 Apple 公证):
    右键 →「打开」,或系统设置 → 隐私与安全性 →「仍要打开」。
  3. 菜单栏出现开关图标,点开面板,填第三方 key 即可用。

已知限制

  • 产物仅 arm64(Apple Silicon);Intel Mac 需自行 x86_64 / universal 构建。
  • 未公证:严格 Gatekeeper 环境可能仍拦;公证需 Apple Developer ID(本项目不提供)。
  • Qwen 流式目前是「上游整段完成后再 SSE 回放」,首 token 延迟约等于整段生成时间
    (DeepSeek 默认走原生透传,真流式)。

免责

个人学习与研究用途;推理不经 Anthropic 服务端;对登录令牌格式的逆向与「越过登录」的实现
可能触及相关服务条款与版权法规(如美国 DMCA §1201),是否适用需专业法律判断,使用者自负风险;
本项目与 Anthropic 无任何从属、合作或背书关系;软件按「现状」提供、不提供任何担保。详见仓库 README。