v0.7.2 — Provider Presets, Island System & Bug Fixes
Features
- Island system — extracted
IslandandIslandFollowUpContentViewinto the shared@craft-agent/uipackage as reusable primitives for annotation follow-ups and inline content expansion (7c4ba6af, 2432b421, 4397b284) - Minimax provider preset — added Minimax as a built-in LLM connection preset with pre-configured base URL and model list (36cf45d5)
- Kimi (Coding) provider preset — added Moonshot's Kimi Coding as a built-in LLM connection preset (c59d9d8d)
- OpenAI regional presets — added OpenAI EU (
api.openai.eu) and US (api.openai.us) regional API endpoint presets (bfc2be3c) - App-level default thinking level — thinking level (off / think / max) can now be set as an app-wide default that persists across sessions and app restarts; workspace-level overrides take precedence (f5593fb1, 7c0f2659)
- Local dev build mode — new
CRAFT_DEV_RUNTIMEbuild flag resolves SDK and interceptor from the monorepo during development, with platform-aware bun fallback; addselectron:dist:dev:{mac,win,linux}scripts (506f2b02)
Improvements
- Deferred SDK checks — Anthropic SDK and runtime validation is now deferred from app startup to session creation (
strict: falseat boot,strict: trueat session start), allowing the app to open windows even when SDK/interceptor/Bun are not yet available (cc70ce76) - Staged typecheck flow — pre-commit hook now runs targeted typecheck only on packages touched by staged files instead of a full monorepo typecheck (538b12f4)
- Toast theming — Sonner toast description text and close button now respect the active theme tokens instead of using hardcoded colors (59cfeab4, caea757f)
- Branch creation hardening — strict SDK-fork semantics for new branches; non-whitespace preflight prompt prevents Anthropic
invalid_requesterrors on branched sessions (9a2f5ed2)
Bug Fixes
- Google OAuth error misclassification —
access_deniedfrom a user clicking Cancel was incorrectly shown as "app is blocked by administrator"; fixed the boolean logic (||→&&) so the special message only appears when Google's error description mentions verification. Fixes #300 (partially) - Status icon overrides ignored — local status icon filenames were not being discovered due to a missing directory scan; also added
.webpsupport to the icon filename pattern. Fixes #358 (f40d2e41, 0ffee7f6, c11819ef) - Pi provider routing — custom endpoints now correctly resolve the
piAuthProviderfield instead of requiring a preset selection. Fixes #363 (f40d2e41) - Shared session still accessible after delete — session delete now revokes the viewer share link via a DELETE request with a 5-second timeout, preventing deleted sessions from remaining publicly accessible. Fixes #328 (15e4830e, c11819ef)
- @mention autocomplete breaks after space — file matching now uses subsequence search instead of prefix matching, so
app compcorrectly matchesapp/components/.... Fixes #298 (c939d930) - CI bun.lock drift — refreshed
bun.lockand pinned bun version in CI to prevent--frozen-lockfilefailures. Fixes #359 (9e9cebd2, 15e4830e) - Transport banner overlaps TopBar — the reconnection banner's Retry button was hidden behind the TopBar's help button; fixed by lifting the 48px TopBar offset to the shared parent container (71abeda4)
- Pi session directory on Windows — session files were created in the wrong directory on Windows due to a path separator issue (d3e83985)
- Copilot OAuth subpath — fixed incorrect OAuth callback path for Pi-based copilot authentication flows (430c6f3d)
- Connection error diagnostics — client-only mode is now logged on startup; connection error messages include the server URL for easier debugging (ff7cf0b8)
Special thanks to @dragonguy888, @chouch0u, @DocplannerLech, @thomaszdxsn, and @ImLukeF for their PR contributions, and to @jonzhan, @Novtopro, @lloydwu, @alexzadeh, @galaxyboyleo, and @minak-collab for reporting the issues addressed in this release.