Repository navigation
DSCodex v0.5.1 — 修复 Windows 非 ASCII 用户目录自启动
Highlights
- 修复 Windows 非 ASCII 用户目录下的登录自启动 —
wscript.exe会按系统 ANSI 代码页读取.vbs;旧版把含中文等非 ASCII 用户名的完整日志路径以 UTF-8 字面量写入脚本,路径乱码后cmd无法打开server.log,路由器因而无法启动。0.5.1 将用户主目录下的日志路径改写为%USERPROFILE%\...,交给cmd在运行时展开;用户主目录之外的自定义日志路径保持原样。新增测试同时保证这类 VBS 输出不再包含非 ASCII 用户名。 - DeepSeek 图片输入由 GPT 视觉转译 — V4 Flash 保留图片模态声明,使粘贴图片和
view_image结果能够通过 Codex 桌面端的前置检查。路由器会把发往 DeepSeek 的input_image转成由chatgpt.comGPT 生成的文字描述,复用请求携带的 OAuth header,不需要额外 API Key;同一请求并发处理,并按图片 sha256 在路由器进程内缓存。默认视觉模型为gpt-5.6-sol,可用DSCODEX_VISION_MODEL覆盖。 - provider 间的推理档位与速度状态彻底隔离 — OpenAI 与 DeepSeek 分别保存 reasoning effort,只有 OpenAI 保存 service tier。跨窗口、fork、bridge 重启和恢复旧任务时均按 provider 恢复状态;
staleEffort阻止仅写入模型时把另一 provider 遗留的model_reasoning_effort带入新会话。每任务 provider 记忆持久化在model-selections.json,上限为最近 500 个任务。 - 减少 GPT 模型的伪断线 — 路由器 keep-alive timeout 现在长于 Codex 客户端约 90 秒的连接池空闲期,避免客户端复用已被 Node 默认 5 秒超时关闭的 loopback 连接,从而减少
stream disconnected before completion: error sending request。客户端断开时会中止上游请求,截断的上游流会写入server.log。 - 跨平台登录自启动 —
node src/cli.mjs autostart enable可注册 macOS launchd、Linux systemd user service 或 Windows Task Scheduler(配合隐藏窗口的 wscript shim)。崩溃会自动拉起,手动stop后保持停止;serve统一持有 pid 文件,uninstall会移除自启动项。生成的配置与脚本不会写入 DeepSeek API Key。
安装 / 升级
git pull --ff-only
node src/cli.mjs sync
node src/cli.mjs stop && node src/cli.mjs start
node src/cli.mjs doctor
node src/cli.mjs autostart enable # 可选;Windows 旧自启动用户需重新执行随后完全退出(⌘Q)并重新启动 ChatGPT 桌面端,再新建一个任务。
Notes
- 已启用自启动的 Windows 用户升级后必须重新运行
node src/cli.mjs autostart enable,以重生成使用%USERPROFILE%的autostart-run.vbs。成功标准是 Task Scheduler 的Last Result为0,并且node src/cli.mjs doctor五项均为ok。 - DeepSeek V4 Flash 本身仍是纯文本模型;图片不会原样发送给 DeepSeek。若请求没有
authorizationheader,路由器不会执行 GPT 视觉转译,而是保持请求体不变;视觉描述失败时会写入明确的占位文本,并在~/.codex/dscodex/server.log记录vision describe failed。 - GPT 视觉路径目前由 fake backend 单元测试覆盖;仍建议用真实截图执行一次
view_image,验证当前 ChatGPT 后端接受所选视觉模型。 - 图片描述缓存仅存在于当前路由器进程内;若 app-server 重新编码图片导致 data URL 改变,该图片会再次生成描述。
model-selections.json增加的每任务 provider 记忆与staleEffort仍沿用 version 1,旧状态文件可直接加载。