Skip to content

factorai v0.10.1

Choose a tag to compare

@github-actions github-actions released this 17 Aug 14:16
· 25 commits to main since this release
59bf510

A bug-fix release. Both of these blanked the entire window — losing every session on screen — and both turn out to have had the same shape: something benign, treated as fatal by a handler that had been there since the first commit.

Crashes

An unhandled promise rejection no longer destroys the app. main.tsx carried a scaffold from the very first commit that replaced the page with a red error block on any unhandled rejection. Replacing the page unmounts everything, so a single stray rejection took every running session with it.

What surfaced it was the new Graph tab. Monaco computes a diff in a background worker, and disposing the editor while that is in flight cancels the request — which it reports as a rejected promise. Clicking from one commit to the next did exactly that, every time. Monaco itself treats these as non-events and ignores them; factorai was treating one as grounds to tear the app down.

Failures are now sorted before anything reacts to them. A cancelled request is ignored. A real error, with the app running, gets a small dismissible card in the corner and leaves the app alone. Only a failure with nothing rendered at all — a genuine failure to start, where there is nothing to preserve and no other way to say so — still takes the window.

Clicking Claude Code's login link no longer breaks the app. Links in the terminal come in two kinds: ones factorai spots in the text by pattern, and ones the program explicitly marks up as links. Only the first was wired. The second fell through to xterm's built-in handling, which asks for confirmation through a browser dialog that does not exist in a desktop app — so it failed, and the handler above turned that failure into a blank window.

Both kinds now behave the same way: Cmd+click (Ctrl+click on Linux) opens them in your browser. A plain click still does nothing, deliberately — Claude Code is a full-screen terminal app, and a stray click landing on a link you did not mean to open would be worse than needing the modifier.

Under the hood

  • A development build now says so in its crash report instead of naming a version that was never released.
  • window.confirm and window.prompt are unusable in a Tauri app of this shape, so they are now rejected by the linter rather than waiting to be rediscovered.
  • The release workflow used to let its two platform builds race to create the release. Usually one won; this time both did, producing two half-complete releases for one version. It now creates the release once, up front.

Installing

macOS — the .dmg is unsigned, so Gatekeeper blocks it on first open. Clear the quarantine flag after copying the app across:

xattr -dr com.apple.quarantine /Applications/factorai.app

Linux — the .AppImage needs glibc 2.39 or newer (Ubuntu 24.04+, Debian 13+, Fedora 40+). chmod +x it and run it.

Already running factorai? It will offer this version itself — the update badge appears in the header.

Full Changelog: v0.10.0...v0.10.1