Skip to content

AI Course Workbench v0.1.1 — macOS (Universal)

Choose a tag to compare

@wyzh0117 wyzh0117 released this 24 Sep 17:19
· 106 commits to main since this release

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.dmg
SHA-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 助手 →
关闭 → 重启);上面记录的是本次实际执行的验证项,没有执行的不写成已通过。