Skip to content

AI Course Workbench 0.2.4

Choose a tag to compare

@github-actions github-actions released this 01 Oct 18:28
· 70 commits to main since this release

AI Course Workbench 0.2.4

What's new

  • Opening a folder now reads it before answering. A usable project.json opens directly; a manifest that is corrupt, from an older or newer schema, or not a course file states the actual problem instead of reporting "no project.json found". A folder without any project goes straight into the import scan, and re-importing over an unusable manifest keeps the previous file as a backup rather than discarding it.
  • Importing a folder now also brings in the images and videos that live in its subfolders. Only visual media is collected, documents are not silently swept in, duplicates are detected by checksum while same-name-different-content files stay separate, and your source tree is never modified. The mapping preview still lists one level so the plan stays readable.
  • Add Assets accepts a multi-selection or a whole folder drop as one batch. One unreadable file no longer cancels the rest, the result is reported per file (imported / duplicate / failed / skipped), and the batch undoes as a single step.
  • Renaming an asset in the media library now renames the managed file on disk and updates every reference to it. The asset id, checksum and usages stay stable, Undo puts the old file name back, Redo re-applies the new one, and the project record always agrees with what is actually on disk.
  • The lesson editor is distraction-free. The bold/italic/strike buttons and the "view Markdown source" switch are gone: typing **bold**, # heading, > quote, - list or `code` compiles into real formatting with the markers removed, the caret stays where you were typing, each conversion costs exactly one Undo, and input-method composition is no longer interrupted.
  • Block toolbars are hidden by default. Hovering, selecting a block, or moving the keyboard focus inside it reveals the controls as an overlay that never pushes the content down; block properties use the same overlay and the ⋯ menu.
  • Grid layout is back on left and right click. Left-click an unplaced block to drop it in the first free cell, left-click a placed block to start a move and click the highlighted cell to commit it, right-click to take it off the grid (undoable), and press Escape or click empty canvas to cancel. Selecting text inside a block is no longer read as a move command.
  • The paginated canvas has two clear states: with pagination off there is no output-section editor, and the page tabs and page controls only appear once pagination is on. Leaving pagination editing changes no page, placement, or order data, and a page now renders exactly one visible title.
  • Media library cards are rebuilt around the picture: a 4:3 poster area on a neutral background with the name, "type · size · usage" and one action row below. PNG/JPG/WebP now show a real thumbnail (PNG was blank), GIF and video show their first frame, and the enlarged preview closes with Escape as well as × and the backdrop — stopping playback on the way out so nothing keeps running behind a closed window.
  • AI connections are configured provider-by-provider: your own provider id, display name, Base URL, one of three protocols (OpenAI Chat Completions, OpenAI Responses, Anthropic Messages), a write-only API key, then fetch that provider's real model list and pick from it — or type a model id when the list is unavailable. No preset provider templates ship any more. A refused save keeps everything you typed and names the field at fault, and a Base URL that is incomplete or carries embedded credentials is rejected before any request is sent.
  • The ChatGPT subscription sign-in reports each stage separately: signed in but plan usage not authorised, model list unavailable, no models on the account, token refresh due versus refresh failed, and model selected but inference failed all get their own message instead of one generic "AI setup failed".

Notes

  • Live provider calls are still not verified by this release. Automated tests cover request assembly, auth injection and error mapping against local protocol substitutes, and the environment used to close this round could not reach api.openai.com (outbound requests timed out after 60 seconds). Nothing here claims a real subscription sign-in, a real token refresh, or a real inference was observed — authorise your own connection and treat the first live call as the check.
  • Native macOS window interaction could not be automated in this environment (no Accessibility grant for scripted clicks, no Screen Recording permission for capture). Every behavioural change above was verified in the shipped frontend — the same JavaScript that is bundled in this package — plus automated tests against real files. The native open-panel multi-selection, folder-versus-project opening in the system dialog, in-window pointer gestures, animated-GIF playback in WKWebView, and real input-method editing still need a human pass; please report anything that behaves differently in the actual window.
  • Right after opening an older project the save badge can briefly read "unsaved". That is intentional and honest: loading repairs legacy structure, so memory genuinely differs from disk until the first autosave completes.
  • Undoing a batch import restores the project exactly but leaves the imported files in assets/ — Workbench never deletes files it did not create in a scratch area. Orphans stay visible in the files view.
  • The Deno/service PDF output still omits inline images and emits a pdf_inline_images_omitted warning; native PDF output was verified with images. PPTX still simplifies complex Markdown tables and nested lists and warns when it does. Exact 1024-pixel layout, system text scaling and mid-drag pointer cancellation remain unverified.
  • The 0.2.4 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. Apple Developer ID signing and notarization were unavailable for this build.

Release verification

  • Source tag v0.2.4 points to commit 4db396bf7c1953a62f72d3887d6ae07b03fcaa76; the release workflow 36906333256 completed with success on the tag push.
  • The latest release page publishes the Universal DMG (12,107,473 bytes) and SHA-256 sidecar. Both were downloaded anonymously: the DMG hashes to 82fdba5957f57d9650f74922197e9593e981be418515e6c7e34519164cef4dab, 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.4 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.4. The v0.2.3 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, 522 Deno tests passed / 0 failed, cargo fmt --check clean, 104 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 and no live provider call are asserted by this release — see Notes above for what those two 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

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

Links