Automated desktop build artifacts for commit 786a3d1c507051d15f131b3dbe6d145684ae6bd3.
Workflow run: https://github.com/LettuceAI/app/actions/runs/26217234057
Changes since previous Desktop build desktop-dev-178-1-af4de66
Compare: desktop-dev-178-1-af4de66...786a3d1
786a3d1feat(sync): unify local model requirements prompts40c9183fix(sync,onboarding): surface embedding prompt after sync completion7f0bc39fix(sync,onboarding): reapply handshake and post-sync completion fixes649337efix(ci): support macOS sha256 generationa1dcec7docs(changelog): add 1.8.1 / 1.5.1 release entryebb7cbcrefactor(chat-settings): fetch character by id on reopenb731a6bfix(llama.cpp): avoid startup toast for reused modelse436b81feat(downloads): show ETA in queue cardsde281bdfix(memory): fail stalled embedding migrations cleanly25fef58fix(android): support chat imports from document URIsa7cf096fix(model-browser): suppress GPU-optimal warning for RAM KV cache4dd201cfix(ci): publish checksums for release artifacts9282a8bfix(chat): broadcast updates after toggling message pinbffe76afix: remove unused onboarding model prop27625f4chore: remove dead code warnings9330b0ffeat(onboarding): polish desktop flow contrast, defaults, and step switching6c17b93docs(changelog): add 1.8.0 and 1.5.0 entry0f67403fix(chat-appearance): persist overrides and honor background styling0cba8a3Repair character schema on startup88a2ac1chore(android): drop forced JNI debug symbols from debug APKab12daffeat(onboarding): add "Sync from another device" flow with embedding checka154c17feat(sync): add Ready handshake and harden passenger apply failurese22fd48fix(hf-browser): honor manual KV cache placement in runnability4104724perf(ui): adopt NumberInput in EditModelPagecf53a07fix(settings): preserve advanced settings in sync and backupsb1451c4feat(ui): add NumberInput primitive and convert clamp-on-keystroke inputs5736c8afeat(settings): add prompt overrides for reply helper5cdbc92perf(library): persist list cache to localStorage and defer card gradientse6de003perf(library): lazy-load avatar images571c3defeat(dynamic-memory): support custom summary/memory-manager prompts and refresh shared settings UI0e73020feat(whats-new): add post-update what's-new draweraf7e545fix(import): preserve banner crop in character transfersdd197b7fix(storage): skip invalid characters during list loading57eb1a1fix(migrations): repair missing character banner crop columns31f6578feat(tts): add Fish cloud and local audio providersbd75cfbfeat(settings): redesign system prompts toolbar with multi-select type filter43a336dfeat(settings): reorganize prompt entry editor into sections with collapsible conditions68769a4feat(settings): redesign system prompt entry card with metadata pillsef96fa4refactor(settings): remove unused quick-insert sidebar from prompt template editorc67ace1fix(memories): allow companion memory categories in session edits77bc657feat(settings): move chat appearance preview to right column38a797cfeat(settings): two-pane desktop layout for color customizationd315a9drefactor(settings): extract field primitives for provider editor6f62576feat(settings): improve providers page desktop layout52c3d65feat(providers): add Cerebras AI provider36fe024fix(sync,backup): persist memory_embeddings as source-of-truth dataf2f1ddaperf(chats): speed up chats and library page loadb886e2efeat(onboarding): redesign welcome page and unify with onboarding flow37f38d5feat: make lorebook trigger preview matches open on clickfe4c1e5feat(companion): add shared memory across sessions432db89feat(companion): initialize time awareness from character defaultsfeec88arefactor(soul-editor): slim generate action and make slider percents editableb762147refactor(switch): replace hidden checkbox with button role3884231feat(companion): scheduled notes editor in soul tab and chat settingsb1ae90afeat(companion): inject scheduled notes into prompts and add lorebook conditionec5355dfeat(companion): add scheduled notes storage, commands, and backup338e8eerefactor(chat-io): replace chatpkg zip format with sillytavern jsonl84ffcc9fear(provider): add Pollinations AIb35ec38refactor(banner-picker): enlarge preview, reposition action chip, and surface remove control598b69cfix(navigation): exit character editor to home instead of looping into settings590368efeat(characters): add banner card type with image picker and cropperbfd3e59refactor(sync): redesign sync UI with neutral palette and progress panelf2025fbfix(sync): clear stale host approval state on disconnecte2235effix(sync): stabilize progress reporting and asset transfer lifecycleb55339achore(deps): pin tanstack virtual versionf25a914feat(ci): add Linux package publishing workflowsa96bf23fix(groq): use OpenAI-compatible models endpoint3254364fix(ui): add Groq provider logo8969418fix(api): strip visible chat metadata from all provider messagesf9000e9fix(api): prevent internal request metadata leaking to providersf16901dfix(android): revert reqwest to rustls-tls roots bundle60b7fe5fix(android): allow text tool-call parsing on mobile22d7f48chore: hoist dynamic imports already imported statically2dc84cffeat(image-gen): attribute usage to source session and character2b449b8feat(usage): redesign analytics pages with dense table layoute304ee0chore: rustfmt nitsf3f7ee5fix(sync): preserve schema fields in backup and syncef3a986fix(memory): gate v4 upgrade toast on dynamic memory v3f442b90feat(models): add Ollama mode to model browser and redesign installed models32fe540chore: fix tailwind and cargo warnings4992703feat(settings): persistent collapsible sidebar with merged Lorebooks and Companions hubs66551cffeat(companion): add per-session time awareness for memory recall and stampinga0da527refactor(chat): align system-send confirm with bottom menu design languagefe8e88dfeat(settings): redesign settings with persistent sidebar and refreshed pages7d82c60feat(tls): support trusted certs and self-hosted TLS exceptions021febbperf(color-picker): reduce rerenders during gradient editing5f7fa1bfix(avatar-gradient): add source selection and refresh palette state50af1fdfix(avatar): persist cropped base/round avatars and refresh gradient caches9e97372fix(avatar-gradient): add gradient regeneration and remove brightness liftd5d1b3dfix(creation): use proper uuid fallback for character/persona idsd3d73c6refactor(smart-creator): rebuild as agentic tool-calling flow with inline pills, image gallery, and save-and-chat2650699refactor(smart-creator): remove lorebook flow and make agent controls explicitaa8b072feat(readme): update keywordsf657e59feat(llama): add DRY sampler controls and runtime wiringe1e9628feat(lorebook): add agentic lorebook generator with planner, writer, refine, coherence stagesced7522feat(personas): support attaching lorebooks to personas5e0070bfeat(debug): show request body per chat attempt and use provider-declared extra-body keysf077c3dfix(i18n): resolve raw model download progress keys63825a7fix(companion): make soul settings page scrollablee568237fix(android): gate unused tooling JSON parsers behind non-mobile cfg4db937echore: update llama-cpp-rs to 0.1.14613e8135fix(i18n): add models download progress labele2f2d73fix(models): hide non-llm providers from selector15314c4fix(session): persist full advanced model overridesb63770dfix(embedding): activate downloaded model version on upgrade75f965ffix(request-builder): isolate provider-specific extra body fields