Skip to content

ClaudeForge 2026.3.708

Choose a tag to compare

@github-actions github-actions released this 08 Jul 13:52

Downloads

Platform Architecture File
Windows x64 ClaudeForge-win-x64.zip
Windows ARM64 ClaudeForge-win-arm64.zip
Linux x64 ClaudeForge-linux-x64.tar.gz
Linux ARM64 ClaudeForge-linux-arm64.tar.gz
macOS (Intel) x64 ClaudeForge-osx-x64.tar.gz
macOS (Apple Silicon) ARM64 ClaudeForge-osx-arm64.tar.gz

The version (2026.3.708) is encoded in the release tag rather than in
the archive filenames — publish.ps1 produces unversioned artefact names
so local dev builds and CI builds share one filename pattern.

Linux: Extract, then run the bundled linux-setup.sh to install a per-user .desktop entry so Wayland compositors render the window icon correctly:

tar -xzf ClaudeForge-linux-x64.tar.gz -C ~/ClaudeForge
cd ~/ClaudeForge
./linux-setup.sh
./ClaudeForge

macOS: The binary is unsigned. Use the bundled allow-app-to-run.sh to strip the Gatekeeper quarantine xattr from every file in the extracted directory:

tar -xzf ClaudeForge-osx-arm64.tar.gz -C ~/ClaudeForge
cd ~/ClaudeForge
./allow-app-to-run.sh
./ClaudeForge

What's Changed

ClaudeForge — changes (2026‑07‑07 → 07‑08)

Hooks — schema descriptions, SDK‑first

  • Surfaced hook event, command‑type, and field descriptions from the schema through the SDK (IHooksAccessor), so headless callers and the editor share one source. New Core types HookEventInfo / HookEventCatalog / HookCommandVariantInfo; SchemaRegistry gained GetHookEvents / GetHookCommandVariants; killed the hardcoded CommandTypeInfos mirror.
  • Bug fixed: event descriptions never rendered in the app — the GUI builds its client via FromExistingWorkspace (no OpenAsync), so SchemaHookEvents() read an empty _cachedSchemaNodes. Added a bundled‑schema fallback + regression tests.

Hooks — new "Flow" tab

  • Added a Flow tab between Properties and Effective, hosting your hooks-lifecycle.svg, via the IGroupTabCustomizer mechanism (now threads a SelectTab deep‑link callback).
  • Added Svg.Controls.Skia.Avalonia 12.0.0.13 (+ Svg.Skia → 5.1.1) for a native <svg:Svg> control; new HooksFlowView with zoom (Ctrl+wheel cursor‑anchored, ±, Fit‑width, Reset), scroll, natural‑size render, and a floating overlay toolbar (so the diagram scrolls under the pane, not under a band).
  • New localized strings (HeaderTabFlow, LinkHookFlowDiagram, zoom labels) across all 8 locales.

Hooks — Properties polish

  • Event header → 2‑line (name + Add hook on row 1, full wrapped description below); Add‑hook now sits right after the event name.
  • "View flow diagram" link moved up to the "Hooks" property‑name header via a new generic HeaderAction slot on the base PropertyEditorViewModel (compiled‑bound, reusable by any editor).

Model catalog / effort levels

  • Refreshed schema narrowed the settings‑file effortLevel to [low, medium, high, xhigh] (max/ultracode are session‑only); fixed the parity test.
  • Added ultracode as a session‑only, non‑persisted tier to mirror Claude Desktop's slider, on models with the full xhigh+max range (Fable 5, Opus 4.8, Sonnet 5, Opus 4.7).

Bundled schema

  • Refreshed claude-code-settings.json from schemastore.org to current (+~1,200 lines)

Test infra

  • Fixed the order‑dependent flake DeleteFootprintAsync_NoDialogService_DeletesImmediately: the AsyncLocal test‑home override didn't propagate from the sync [TestInitialize] into the async test's Task.Run (which reads ClaudeHome on a pool thread), so it deleted from the wrong home. Re‑asserted the override in NewFakeClient(); kept AsyncLocal (Sdk.Tests runs parallel and needs it). Backed out an AsyncLocal→static attempt that caused ~48 races/run in Sdk.Tests.

Full Changelog: v2026.3.701...v2026.3.708