Skip to content

AI Course Workbench 0.2.5

Choose a tag to compare

@github-actions github-actions released this 03 Oct 05:42
· 66 commits to main since this release

AI Course Workbench 0.2.5

What's new

  • The start page is a project list. Workbench remembers every course project you have opened, most recent first, and one click resumes the course you were last working in. A row whose folder was moved or deleted says so and offers "relocate" — allowed only when the project.id matches — or removing just that row; both only touch the list, never the course files on disk.
  • Opening a folder no longer misidentifies a project. A usable project.json opens directly; a manifest from an older schema is repaired first with its project.id preserved; a corrupt, too-new or non-course manifest states the actual problem; and a folder without any manifest goes straight to the import scan. A parent folder that holds one project per child is not mistaken for any of them.
  • Nine text and document formats import as real lesson content. .txt .text .md .markdown .tex .latex .docx .epub .pdf arrive with their structure — heading levels, paragraphs, bold / italic / strikethrough, blockquotes, lists, code, tables, links and embedded images — instead of collapsing into one plain-text block.
  • You approve the documents one by one. After the mapping plan is confirmed, a "select documents to import as lesson content" step lists every candidate with select all / select none / per-row checkboxes. Images and videos need no checking — they go to the media library automatically.
  • Scrolling a large media library is stable. The flicker, UI thrash and stuck cards that appeared when scrolling back up through many assets are fixed: a finished preview repaints only its own card, live cards are no longer evicted from the thumbnail cache, and a card that fails to load shows a retry button instead of looping. A 120-card automated case pins the behaviour frame by frame.

Notes

  • Importing is reference-safe: your source files are never moved, renamed, deleted or overwritten, and an import only appends course content. The project list is a rebuildable index (project id, path, title, last opened) stored outside the project — it never holds course bodies or credentials, and deleting it only loses the recent list.
  • Format boundaries are explicit: scanned PDFs have no text layer and are kept as reference files only (no OCR in this round); PDF import reads the text layer only, without embedded images, forms or annotations; LaTeX math is preserved as code blocks with a degradation notice; .txt deliberately guesses no headings; EPUB CSS is not parsed; DOCX Word styling is dropped.
  • The media-scroll fix was verified in the shipped frontend with automation, but real-trackpad scrolling and the in-window pointer walkthrough still need a human pass. So do the two channels inherited from 0.2.4: native window pointer / panel gestures and live provider calls — this environment still cannot script clicks into the macOS window and cannot reach api.openai.com (outbound requests time out).
  • The 0.2.5 Universal macOS package is ad-hoc signed, has no TeamIdentifier, and has not been notarized. On the built package, spctl --assess --type execute returns rejected; macOS may require approval in Privacy & Security on first launch.
  • Undoing an import restores the project exactly but leaves the imported files in assets/ — Workbench never deletes files it did not create in a scratch area. Nothing else is destructive: v0.2.4 projects open directly, migration keeps project.id byte-identical, and API keys still live only in the macOS Keychain.

Release verification

  • Source tag v0.2.5 points to commit d16b622c082720c3c386613df187deec3b7ec469; the release workflow 37100286505 completed with success on the tag push.
  • The latest release page publishes the Universal DMG (14,293,951 bytes) and SHA-256 sidecar. Both were downloaded anonymously: the DMG hashes to a84884466b084cd674a4d0d32a52b3284863a9adb9706c11283009fb14b7f9fd, the sidecar contains exactly that digest, and it matches the checksum GitHub reports for the asset. hdiutil verify reported the DMG checksum VALID.
  • The mounted app bundle reports version 0.2.5 and carries both x86_64 and arm64 slices. Its signature is ad-hoc with TeamIdentifier not set; spctl --assess --type execute returned rejected, and the package is not notarized.
  • releases/latest now resolves to v0.2.5, and the fixed direct link releases/latest/download/AI-Course-Workbench-macOS.dmg resolves to this release. The v0.2.4 tag, its Release, its DMG and its SHA-256 sidecar were not modified by this release.
  • Automated gates at the tagged source state: deno task check clean, 584 Deno tests passed / 0 failed, cargo fmt --check clean, 216 Rust tests passed / 0 failed, cargo build clean. The Universal cargo tauri build runs in the release workflow and succeeded there. No human native-window pass, no live provider call and no real-trackpad scroll check are asserted by this release — see Notes above for what those channels still need.

System

  • macOS 11.0 (Big Sur) 或更高版本
  • Architecture: Universal(Apple Silicon arm64 + Intel x86_64,同一个安装包)

Install

  1. 下载 AI-Course-Workbench-macOS.dmg
  2. 双击打开 DMG
  3. 将 AI Course Workbench 拖到 Applications
  4. 从 Applications 打开
  • 首次打开需要手动放行一次,方式取决于 macOS 版本:
    • macOS 15 (Sequoia) / 26 及更新版本:Control-click 已无法绕过 Gatekeeper。
      双击后点「完成」→ 打开「系统设置 → 隐私与安全性」→ 在「安全性」区域点「仍要打开」→ 输入密码或 Touch ID 确认。
    • macOS 11 (Big Sur) – 14 (Sonoma):在「应用程序」中右键点击(或按住 Control 点击)
      AI Course Workbench → 选择「打开」→ 在弹窗中再次点「打开」。
    • 放行一次之后,双击即可正常打开。
  • 不建议关闭 Gatekeeper,也不建议用 xattr 移除隔离属性。

Distribution status

  • NOT signed with an Apple Developer ID and NOT notarized.

Verify

a84884466b084cd674a4d0d32a52b3284863a9adb9706c11283009fb14b7f9fd  AI-Course-Workbench-macOS.dmg
shasum -a 256 ~/Downloads/AI-Course-Workbench-macOS.dmg

Links