Repository navigation
Releases: guo641/doustudio
Releases · guo641/doustudio
Release list
DouStudio v0.3.16
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.16-<plat>.zip.sha256DouStudio v0.3.15
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.15-<plat>.zip.sha256DouStudio v0.3.11-rc2
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.11-rc2-<plat>.zip.sha256DouStudio v0.3.11-rc1
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.11-rc1-<plat>.zip.sha256DouStudio v0.3.10-rc1
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.10-rc1-<plat>.zip.sha256v0.3.9 — 半在线心跳 License Server + 客户端信任根固化
v0.3.9 重大更新
本版本完成半在线心跳 License Server 上线与客户端信任根加固,并补齐时钟与首次心跳的安全边界。
安全加固
Phase-1: License Server
- 生产服务运行于 Ubuntu 24.04,使用非 root systemd 服务与 Python venv。
- TLS 自签证书带 IP SAN,并以 SPKI pin 作为客户端身份信任依据。
- 服务端 Ed25519 签名私钥采用加密 PKCS8 存储。
Phase-2: 客户端信任根
- 嵌入真实 server Ed25519 公钥。
- 固定心跳端点
https://124.221.210.12:8443。 - 强制实时 SPKI pin 校验;pin 不匹配时拒绝续期。
- server 公钥缺失或签名无效时 fail-closed,仅保留 7 天离线 grace,不因单次网络故障退出程序。
Phase-3: P1 加固
- 校验
server_timestamp单调性,防止时钟回拨绕过。 - 修复
fresh_until <= 0首次心跳无限 grace 问题,并以签名issued_at作为首次 grace 锚点。 - 显式校验响应
client_pubkey与本机请求一致。 - 重新编译并打包 Cython verifier。
已关闭风险
- Fake license-server MitM 续期绕过。
- 接受任意自签证书的 SPKI pin 空实现。
- 空 server 公钥时跳过签名校验的 fail-open。
下载与校验
- Windows x86_64:
DouStudio-v0.3.9-windows-x86_64.zip - ZIP SHA-256:
7A38C63812555318179A19AC68AB8613FDAAAF968240AE049B181F30845AF1EC - 同名
.sha256文件已随 Release 上传。
Get-FileHash -Algorithm SHA256 .\DouStudio-v0.3.9-windows-x86_64.zip验证
- GitHub Actions 构建与上传成功。
- License 触达回归:67 passed,1 skipped。
- 版本、设置与更新路径:50 passed。
- Windows 真机:主界面启动成功,无重复激活弹窗。
- 打包程序健康检查:
version=0.3.9、activated=true、license_status=valid。 - 生产心跳握手成功,
fresh_until、last_server_sync与clock_offset_ms已真实落盘。
升级提示
- 启动时会连接
124.221.210.12:8443执行一次授权心跳。 - 临时网络故障不会立即阻止使用;有效授权按 7 天离线 grace 运行。
- 后台默认每 24 小时续期一次。
DouStudio v0.3.1.3
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.1.3-<plat>.zip.sha256DouStudio v0.3.1.2
自动构建产物。SHA256 见同名 .sha256 文件。
验证
sha256sum -c DouStudio-v0.3.1.2-<plat>.zip.sha256v0.2.37.3
v0.2.37.3
两个用户反馈合并到一起修:
修复 / 体验
-
隐藏账号列表里的 token 显示列 + 刷新 token 按钮 — 用户截图反馈 token 列里显示「cookie 里缺少关键字段:['web_id', 'ms_token']」之类的内部 hint 不该给普通用户看。token 状态本来就是后端内部用的,前端展示出来反而制造焦虑。
- 删 thead 里的
Token列、tbody 里的 token badge / age / hint 三件套、行末「🔄 刷新 token」按钮、配套的 refs / 函数 / onMounted 调用。 - 兜底链路保留:每行「🍪 重新导出 cookies」按钮仍在(v0.2.37.2 已加),cookie 在线但 cookies.json 损坏时一键修。
- 后端
/api/accounts/{id}/webmssdk-tokens端点保留供内部使用,只是前端不再展示数据。
- 删 thead 里的
-
画面描述上限 2000 → 5000 字 — 用户反馈 2000 字太短,复杂场景描述经常被截断导致生成结果跟预期不符。
- 前端
<DpTextarea>:maxlength="2000"提到 5000,底部计数提示同步。 - 后端
CreateVideoTaskBody.prompt加max_length=5000;prompts列表用field_validator给每个元素也按 5000 字封顶。 - 新增
test_create_video_task_body_rejects_prompt_over_5000_chars守住 Pydantic 边界。
- 前端
v0.2.37.2
v0.2.37.2
修复
- cookie 读取主源改成 cookies.json:登录流程已经存了一份明文 JSON cookies,直接读它,不再尝试解密 Chromium SQLite。
- 删 v0.2.37 的 DPAPI Playwright 兜底 + keepalive 90s + 18s 探测:用户反馈「只要 cookie 在线账号就没问题」,核心是读 cookies.json,这些补偿链路反而把流程搞复杂,验证后才删。
- refresh-tokens 端点简化:直接复用登录流程的 cookie 落盘逻辑(同一个 profile_dir 复用同一个 cookies.json)。
新增
重新导出 cookies按钮(行级,账号表格每行):当 cookie 在线但 cookies.json 丢/损坏时,用户点一下让 Playwright 重新打开浏览器(~8 秒窗口偏移到屏幕外)拉一份新 cookies.json 落盘。
影响
- 用户体验:cookie 在线但 token 失败的场景,从「等 90 秒超时报错」变为「点按钮 ~10 秒修好」。
- 兼容性:已有账号无需重登。