Repository navigation
AI Course Workbench v0.1.1 — macOS (Universal)
AI Course Workbench v0.1.1 — macOS
本地优先的课程创作工作台。项目数据保存在你自己磁盘上的开放 project.json。
下载
| 入口 | 链接 |
|---|---|
| 最新版本页面 | https://github.com/wyzh0117/workbench/releases/latest |
| 直接下载最新 DMG(固定链接) | https://github.com/wyzh0117/workbench/releases/latest/download/AI-Course-Workbench-macOS.dmg |
本页资产:AI-Course-Workbench-macOS.dmg 与 AI-Course-Workbench-macOS.dmg.sha256。
该文件名在所有版本中保持固定,因此上面的固定链接会长期指向最新版本。
本版变更(相对 v0.1.0)
v0.1.0 的安装包构建自较早的提交,不包含下面这些修复;v0.1.1 是按当前
main 重新构建的最新安装包。
修复真实使用阻断(P0)
- 项目选择:同一项目可以反复打开,换项目走真实文件夹选择,失败给出具体原因而不是静默无反应;
- 输入:输入、保存、状态栏更新与 toast 不再互相打断,中文输入法组字期间不重渲染;
- 弹窗:弹窗内点击 / 展开不再误关,打开即把光标放进该填的输入框;
- API Key:只有真正写入并能读回才显示「已配置密钥」,失败会说明是权限还是写入问题;
- Block:每个区块有拖拽把手,新建区块立刻选中并打开属性面板;
- Flow / Grid:放置、移出、缩放稳定,预览与真实网格一致,并列出还没上画布的正文;
- 课程地图:逐课说明缺什么,seed 只生成草稿,确认后才建正式结构;状态栏永远说明「现在改的是谁」。
Authoring 直觉问题(P1)
- 十项课程地图 / 单课编辑器 / 待补 / 素材的直觉性问题全部落地,均有回归测试保护。
交互重构(P2)
- Provider / Model 配置重构:Base URL → 读取模型 → 选择或手动输入 Model ID → 保存;新增真实模型枚举
(GET {base_url}/models,兼容多种 payload 形状),读取失败时手动填写仍是明确出口;不再依赖任何硬编码模型清单; - Block 自适应高度:短内容 Small → Medium、长内容 Medium → Large,到顶由 Block 外框自己滚动,
打字即时跟随、内容减少自动收缩; - Flow 成为唯一排序入口:Flow 每行 ↑↓ 直接写回 Canonical
order_index,结构视图不再提供排序,
不存在第二份顺序; - Grid 交互重设计:左键点击落位 / 进入移动状态、点击目标格直接移动、右键移出网格,尺寸动作稳定可用,
放不下时明确拒绝;网格只保存位置,不动内容本身。
本轮额外发现并修复
- 桌面壳缺少
course.seed.create/blueprint.build命令映射(点「把材料变成课程地图」直接失败); - 沙箱内写入被拒时显示成「项目被占用」这类误导性提示,改为如实说明写入权限问题;
- 新建 Block 后属性面板要等下一次无关渲染才切换;
- 所有弹窗打开时都不接管输入焦点,第一次输入直接丢失。
系统要求
最低系统版本:macOS 11.0(Big Sur)
架构:Universal —— Apple Silicon(arm64)与 Intel(x86_64)同一个安装包
安装
1. 下载 AI-Course-Workbench-macOS.dmg
2. 双击打开 DMG
3. 把 AI Course Workbench 拖到 Applications
4. 从 Applications 打开
校验下载完整性
shasum -a 256 ~/Downloads/AI-Course-Workbench-macOS.dmgSHA-256:801fb7ea27610a8799cc5017e5c960462c76894f4ef7274af299ec0384071857
字节数:10,468,230
首次打开说明(重要)
本版本尚未使用 Apple Developer ID 签名与公证,所以首次打开时 macOS 会拦截,提示
「无法验证开发者」或「Apple 无法检查其是否包含恶意软件」。这是预期行为,不是安装包损坏。
放行方式只需要做一次,但取决于你的 macOS 版本:macOS 15 (Sequoia) 及更新版本已经取消了
「右键 → 打开」这条捷径(Apple 官方说明:Control-click 不再能绕过 Gatekeeper,
必须到「系统设置 → 隐私与安全性」里确认)。
macOS 15 (Sequoia) / 26 及更新版本
1. 双击 AI Course Workbench,出现「无法打开,因为 Apple 无法检查其是否包含恶意软件」时点「完成」
2. 打开「系统设置」→「隐私与安全性」
3. 在「安全性」区域找到「已阻止使用 AI Course Workbench,因为来自身份不明的开发者」
4. 点「仍要打开」,输入密码或 Touch ID 确认
5. 在再次出现的确认框里再点一次「仍要打开」
macOS 11 (Big Sur) – 14 (Sonoma)
在「应用程序」中右键点击(或按住 Control 点击)AI Course Workbench
→ 选择「打开」
→ 在弹窗中再次点「打开」
两种方式都只需要做一次;放行之后双击即可正常打开。
本版不指导、也不建议关闭 Gatekeeper,或用 xattr 移除隔离属性。
分发状态(如实说明)
DISTRIBUTION STATE = PARTIAL
BLOCKER = 缺正式 macOS signing / notarization credentials
- 已完成:正式 Release 构建(非 Debug)、Universal(Apple Silicon + Intel)DMG、
固定资产文件名、SHA-256 校验资产、公开仓库、固定 latest 直链。 - 未完成:Developer ID Application 签名与 Apple 公证(notarization / stapling)。
发版机器上没有可用的 Apple Developer Program 分发凭据
(security find-identity -v -p codesigning返回 0 valid identities),
因此当前 DMG 为 ad-hoc 签名(走 Tauri 官方签名路径APPLE_SIGNING_IDENTITY="-"):
codesign --verify --deep --strict通过,但spctl --assess --type execute判定 rejected。 - 因此不宣称
PUBLIC RELEASE READY,也不宣称「普通用户无安全阻碍安装」。 - 拿到 Apple Developer 分发资格后只需补做签名、公证、重新上传 Release 与一次安装 smoke,
不需要重新开发 Workbench 本体。 - 实测:本 Release 的 DMG 经
hdiutil verify判定VALID,从 DMG 中取出的 App 用
spctl --assess --type execute判定rejected(无 Developer ID 与公证),
与上面「首次打开说明」描述的用户真实遭遇一致。 - 一处未实测项:放行之后的首次启动没有在自动化环境里实测过(无法自动投递右键菜单与
「系统设置」交互),只实测了放行之前的拦截状态。
本版包含
- 课程地图、单课编辑器(正文 / 结构 / 排版 / 预览)、Flow / Grid、素材库、待补总览、六维完成度;
- 只审阅式 AI 助手:课程 / 当前课次 / 当前区块三种上下文范围,调用前可预览将发送与不会发送的内容,
修改型请求产生 ChangeDraft 并逐条 Diff 审核后才 Apply;API Key 只写入 macOS 系统钥匙串,不回显、
不进入课程、备份、日志、导出或执行记录; - 发布与导出中心:Markdown(当前课 / 整门课程)、Semantic HTML、Static Web Package、PDF、
微信 / 富文本迁移版、Project JSON、素材包、完整项目包,导出前检查区分 BLOCKING 与 WARNING,导出严格只读; - 原子写入、自动保存与恢复、项目锁、外部修改检测、历史版本恢复、按项目分别保存的阅读位置;
- Universal 二进制,Apple Silicon 与 Intel 共用同一个安装包。
已知限制
- 尚未完成真实在线 AI Provider 调用验收:本版走通完整闭环使用的是离线「本地确定性连接器」,
真实 Provider 的请求组装、鉴权注入与错误码映射有自动化测试覆盖,但没有一次真实在线 smoke; - 未签名未公证(见上方「分发状态」);
- PNG / JPG 位图输出与复杂长图海报系统为明确的非目标;
- Windows / Linux 不在本版支持范围内。
验证记录
deno task check 通过
deno task test 266 passed / 0 failed
cargo test 55 passed / 0 failed
lipo -archs x86_64 arm64
codesign --verify --deep --strict 通过
codesign -dv Identifier=io.github.wyzh0117.ai-course-workbench
Signature=adhoc, TeamIdentifier=not set
Info.plist entries=16, Sealed Resources version=2
spctl --assess --type execute rejected(缺 Developer ID 与公证)
hdiutil verify VALID
启动 smoke 从 DMG 取出 App → 指定项目目录启动 → 存活 10s 无崩溃
→ SIGTERM graceful 退出;--project-dir 指向不存在目录时
按文档在开窗前退出并打印原因
本版未重做 v0.1.0 记录过的完整交互安装走查(拖入 Applications → 三栏工作台 → AI 助手 →
关闭 → 重启);上面记录的是本次实际执行的验证项,没有执行的不写成已通过。