Automated desktop build artifacts for commit cff58b9f6eb705145a0593ee1cb40a2326f43eb9.
Workflow run: https://github.com/LettuceAI/app/actions/runs/28061239597
Changes since previous Desktop build desktop-dev-181-1-07a286a
Compare: desktop-dev-181-1-07a286a...cff58b9
cff58b9feat(characters): restructure creation description step layoutfc17014feat(characters): pair default model with voice and lorebooks with memory in settings grid3a8a0cbrefactor(characters): remove per-character fallback model feature8e82af8feat(characters): group prompt overrides into a 2x2 grid with distinct icons and a standalone companion promptbbc3fefchore: fix tailwind and typescript warnings5bba9dachore: fix cargo warnings3832e4bfeat(ui): toast feedback when opening external links via shared helperb829e3efeat(logs): add smart search options with jump-to-match and fix page height overflow41ec781fix(logs): confirm before deleting individual log file4acdecefix(onboarding): smooth Get Started button press animationc4aa599feat(providers): add LiteRouter provider supportba1b530feat(companion): add soul consolidation pass67ad983feat(companion): add very-slow soul tier with overlay-rendered corec0a77d6i18n(companion): translate soul growth and fears strings59fcf2afix(companion): confirm soul growth deletion and avoid full page reload849fe43feat(companion): supersede conflicting soul growth7b9af45style(companion): fill relationship timeline width on desktop with ordinal markersc153f02chore(dev): add full companion fixture generator447de8dfeat(companion): make soul writer aware of the fears fielda579a85feat(companion): add soul growth viewer with clear and per-entry delete423f0d0feat(companion): add growthcycle engine that evolves soul from new memories16aba51feat(companion): add fears soul category with mutability-tiered growth modelfb079dfi18n(chats): add dice roll menu strings9cf1928feat(chats): add dice roll to plus menu with editable notation0a5f3e4fix(chats): center image viewer when there is no image promptc013c47i18n(scenes): add scene image insert strings6238a5bfeat(scenes): add image/GIF insert to scene editorsf323275feat(scenes): render inline scene images in chat8e1e364feat(scenes): strip inline image tokens from API requests19c368di18n(memory): add dynamic memory run mode and approval stringsdd48368feat(memory): add ask-first approval menu and run-mode setting UI204aa4bfeat(memory): add dynamic memory run mode with ask-first and manual gating0bbc8e8i18n: translate audio upload and audio library strings across all localesa62b53ffeat(library): add audio card actions menu (open in chat, download, delete) and fix jump-to-message scroll09a2e7cfeat(library): add Audio tab listing TTS and chat-uploaded audio with player cards737e84afeat(chat): add audio input upload, playback, and token usage tracking5ff500efix(llama): account for sidecar memory in planning9d1adbbfix(hf-browser): cap recommended KV cache at Q84ce2eeafeat(chat-appearance): resizable drawer and compact clear-overrides control97cb99bfeat(chat-appearance): collapsible sections with animated expand/collapse380e05cfeat(chat): add custom chat input color with adaptive contrast5f97b3dfix(models): respect image-only output scopes in image generation requests8273b80refactor(i18n): move locale completion badge next to the selection circlee9a6aa4chore(i18n): sync all locales and add translation tools3a50bbbfeat(i18n): route frontend user-facing strings through the locale systemb12b1e4fix(settings): persist forceSendThinkingState in model settings sanitizer (#62)943c564fix(characters): preserve chat appearance and widget data when editing a character9cd4b97refactor(settings): rename Accessibility page to Customization405e89ffix(companion): show decreased soul slider values in danger colorc52a646fix(prompts): refresh unedited protected prompts4d01544feat(llama): add per-model Full SWA Cache (swa-full) togglef51f549feat(companion): add traits, backstory, appearance, goals, and likes soul blocks10d1245feat(onboarding): make mobile guided carousel a horizontal scroll stripbd096c3ci(desktop): install SPIRV-Headers for Windows Vulkan and force Ninja for Windows CUDAe0d3bcbci(desktop): fix Windows long-path and Linux Vulkan SPIRV-Headers build breaks49e0653feat(voices): move Kokoro model setup to Voice providers with guided download menu3af9a3dfix(about): show dev label instead of release version in dev buildsaca9c61feat(settings): warn before deleting a prompt or model that is in use3b02b1ffeat(settings): configurable LLM and image model folders with atomic migration3654a23feat(settings): add Go to Models button and Image Generation topnav title2146582fix(onboarding): improve legibility of guided steps over bright backgroundfbf2950feat(onboarding): bottom-anchored mobile welcome, migrate styles to tailwind, lighter overlaysaabcbdefeat(onboarding): collapse welcome secondary links into an Other options bottom menu88e49a0fix(settings): refresh sidebar provider/model counts on in-app settings changes6e58a1bfix(onboarding): give memory finish step the shared header and centered layoutc5f7575feat(onboarding): add guided embedding-memory finish step with auto download and tour handoffef559c7feat(onboarding): guided BYOK setup with car-metaphor explainer, free/paid choice, and screenshot-driven Gemini/OpenRouter flowscdb34e0feat(onboarding): warn harder on skip and gate creation when no model existsa762273feat(chats): show in-bubble indicator while scene image prompt streams3f482e5feat(llama): stop mtp drafting early below confidence threshold699451bfeat(llama): support gemma 4 shared-assistant mtp draftersb277889fix(llama): forward mtp fields through provider extra-body allowlist and group chats57137e0fix(ui): offset fullscreen overlays below custom titlebar6b05d68fix(models): persist mtp settings and move them to runtime tab with library pickerebfdc58fix(downloads): group linked installs into one card and drop create on sidecar files9fae040feat(llama.cpp): mtp speculative decoding with bundled and external draft models9b8241cfix(hf-browser): account for mtp nextn layers and qat quants in runnability scoring5c7d9acbuild(deps): switch llama-cpp-rs to MegalithOfficial fork with b9611 and mtp supporte36317afeat(discovery): inline desktop search, skeleton parity, tag search, pure mode blur, infinite scroll5bdbdb8feat(desktop): edge resize handles for frameless window177f7a4fix(desktop): offset overlays below titlebar and guard corner toggle across decoration changesac84b1dfeat(desktop): rounded window corners with webkitgtk repaint workaroundsb97ca25feat(desktop): custom title bar with selectable designs, position, and size99b4dc3fix(group-chats): stop continue from impersonating persona and drop duplicated user turnf1de3b3refactor(group-chats): unify settings pages and header avatars with option row designe2b1a17build(macos): use ad-hoc signing identity for bundles1ea9f37docs(readme): add macos gatekeeper instructions for downloaded builds6ac30e8refactor(group-chats): redesign create page with two-column steps and footer cta698fe0cfeat(group-chats): add action style to director mode with cue as default545fc90fix(hf-browser): persist image mode across back navigationa9e73f8feat(models): image mode with all filter in installed models and list-only scrolling00d0574refactor(image-gen): remove local generation section from image settings465916brefactor(models): match runtime defaults page to advanced settings design123f2b6feat(models): local runtime defaults page with engine setup and custom binary pathe1a16defeat(models): configurable runtime defaults for runnability and sd generationaa2ad9efeat(image-gen): lora selector for characters and personas with avatar injectionb925e51feat(image-gen): lora library with character and persona lora fields6fed6fafeat(image-gen): extra prompt and writer instruction fields with template placeholderb9824c3feat(image-gen): measured memory profiles with oom retry for offload decisionse9ce900feat(image-gen): smart memory offload with per-model override controlb97089dfeat(image-gen): llamacpp style path inputs for local model setup field9e64054feat(image-gen): library and path inputs for diffusion file roles in configuration tab16f45c4feat(image-gen): local diffusion platform in model editor with configuration tab55d274dfeat(hf-browser): direct repo id lookup bypasses pipeline filter in image mode0e1da12refactor(image-gen): open family labels with llm encoder role in frontendc243a54refactor(image-gen): derive generation from component files instead of family enum5d30083fix(image-gen): locate sd-cli binary and use init-img flag for img2img26790e0feat(image-gen): creation helper credential support for local diffusion165a450feat(hf-browser): image mode UI with sd scores and model registrationa1b285bfeat(hf-browser): stable diffusion mode with sd runnability scoring05fa400feat(image-gen): local generation settings section32a6a55feat(image-gen): frontend local diffusion service and provider wiringdd44a69feat(image-gen): one-shot CLI generation runner with progress and cancel516cc2efeat(image-gen): sd.cpp engine install with dynamic release resolutionff2b08bfeat(image-gen): local diffusion module skeleton with model registry and statusce966c3revert(image-gen): remove local stable-diffusion.cpp sidecar09f05acrevert(image-gen): remove local diffusion settings section28bf648build: Add Nix flake (#59)b5a821afeat(image-gen): local diffusion settings section with runtime download, model selection, and provider enablee1fc096feat(image-gen): local stable-diffusion.cpp sidecar with managed binary, lifecycle, and reference-image adapteraf3ccebfeat(group-chat): participants bar avatar shape options and bar background (solid/fading/transparent)62aef9dfix(group-chat): enable widget column resize handles in custom width while appearance drawer is open36c35a3feat(group-chat): configurable director hint position (top/bottom/hidden) aligned with the avatar row4665bcffeat(group-chat): wiggle the avatar bar when sending with no director selection and keep the last pick stickyc7d7344feat(group-chat): director selection drives the send button, drop confirm/cancel buttonsc915483fix(group-chat): move director hint under avatars, gradient scrim, and pad chat column for the floating bar2c54cfcfix(group-chat): pin director confirm buttons to the bar edge and float the bar transparently over messagesf3a8d13feat(group-chat): director confirm/cancel buttons (configurable side), transparent avatars, no auto-trigger4b19badfeat(group-chat): director mode avatar selection state, hint, and selection animationb872e9efeat(group-chat): add Director speaker mode (tap an avatar to choose who responds)6cf9160fix(build): pin CUDA host compiler to GCC ≤ 15 on Linux (#57)519e83ffix(group-chat): honor move-header/footer toggles inside the widget column6e7a2e6feat(group-chat): feed real group data to widgets and add per-widget character pickerc78422dfeat(group-chat): render and edit the chat widget area on desktop0ddbed4feat(group-chat): add per-session author note with inline editor and prompt injection3f5fbe9feat(group-chat): capture and display dynamic memory references per message3f60b5efeat(group-chat): load older messages from DB when jumping to a search result674609bfeat(group-chat): open session settings as a desktop side drawer1d31863fix(group-chat): don't reload the whole chat when saving appearance settingscc36f4afix(group-chat): connect every group session to a source group and backfill orphans82386f2fix(group-chat): stop null chatAppearance from failing group parse and hiding the appearance buttonfc06f35feat(group-chat): add message search page with header button and jump-to-message5ae454afeat(group-chat): per-group chat appearance editor with desktop drawer and mobile pagec4bcde7feat(group-chat): add group-level chat appearance override storage and commanda2e36e8fix(group-chat): label scene messages correctly in the actions sheetb533411feat(group-chat): add participants bar with mention toggle, mute, and appearance controls7150a4afix(companion): never let a turn save clobber concurrently-changed time preferences22e5683fix(companion): preserve time override across companion state round-tripsb512508feat(dev): move deep-clone character to developer page with a character selector9fe58b9feat(dev): add deep-clone character button to the characters list23d7751feat(dev): deep-clone a character with all sessions, messages, variants, embeddings, and memory013c2a9feat(companion): lower fresh relationship defaults so warmth is earnedf1765e6feat(companion): render closeness/trust/affection as center-origin bipolar meters96f7f1bfeat(companion): allow negative relationship baselines in soul writera9747f8feat(companion): add leaky asymmetric saturating bipolar relationship update with worded prompt bands0034681feat(companion): widen closeness/trust/affection to bipolar range in schema8eeeb86feat(companion): let users set or clear a memory's date with the in-app pickered228cdfeat(companion): stamp transcript messages with effective-frame timestamps and strip echoed stampsbcc2fa3feat(companion): instruct memory and summary extraction to store absolute dates08155ddfeat(companion): render live relative time on memories0637ceffeat(datetime-picker): raise max year to the JS Date ceiling (275759)db130dafeat(datetime-picker): typeable hour/minute, clickable month/year selector, and wrapping time steppers4abd667feat(companion): replace native datetime input with custom in-app date/time pickerc02fb34fix(companion): keep time override field synced to live clock to stop empty field and ticking jump-backba3cd53feat(companion): add time override controls to chat settings and draweraa56b97feat(chat-widgets): add time widget to display and override the companion clock4c6b61dfeat(companion): add effective-now time override to prompt time, temporal queries, and memory stamps58452b4fix(memory): only apply companion temporal filter when time awareness is enabled080f183fix(backup): surface the real export/import error instead of a generic message1ade61ffix(backup): write Android backups to Downloads via MediaStore and index them for list/delete8d71e82docs(changelog): add llama.cpp mixed-offload context sizing and VRAM headroom fixesb57cee6fix(chat): keep configured bubble width when header-above or message-info row is shown11760d0fix(llama): account for GPU-offloaded weights when sizing context for mixed offloadb49e338refactor(llama-cpp): derive compute-buffer VRAM reserve from model dims and batch97d552ffix(llama-cpp): retry smaller context on OOM even when an explicit KV type is set1f23950fix(llama-cpp): reserve compute-buffer VRAM by context and stop offload from exceeding the safe layer estimate1086fb9docs(changelog): clarify per-message info shows the generating model72029bdfix(chat-appearance): persist per-message model id so info shows the generating model, not the current oneba538dbfix(chat-appearance): only show per-message info on assistant and scene messages