Skip to content

LastChat 1.4.4

Latest

Choose a tag to compare

@Cocolalilal Cocolalilal released this 30 Jun 15:58
d00cc51

Make sure to back up before updating! This release changes the local workspace architecture, contains a database schema migration, and replaces sandbox file handlers, it's recommended that you backup your data before updating.

Visible changes:

  • The Chaquopy Python sandbox got fully replaced with Workspaces/PRoot-based Linux environments
  • Added support for OpenAI-compatible speech-to-text models
  • Added some new providers to the catalog
  • Lorebooks can now be toggled per-chat too
  • The activity timeline got redesigned to better match the rest of the UI
  • The activity pill in the webUI got refined to look more like the in-app counterpart
  • Provider and model icons in the webUI should now better match their in-app counterparts
  • Added a fullscreen mode to the message input field when there's a lot of text
  • The main settings screen got simplified
  • Other small refinements

Hidden changes:

  • Replaced standard Java I/O streams with platform-agnostic okio buffers, sources, and sinks across file compressor routines, database backups, media encoders, web uploads, and attachments
  • Removed Java concurrency utils (such as ConcurrentHashMap and thread locks) in favor of portable Kotlin Atomic references and Mutex locks for throttling, provider balances, and file storage mappings
  • Introduced PlatformHttpClient and platform JWT signers to facilitate portable network handling outside of Android-specific library contexts
  • Replaced java.time.Duration references with Kotlin's native Duration class for timeout parameters and scheduled task definitions
  • Extracted system logging (PlatformLog), haptics (PlatformHaptics), syntax highlighting labels, and media encoding logic to remove direct dependencies on the JVM
  • Added boundaries on database fetches and DAO actions to prevent freezes and memory exhaustion
  • Capped the number of assistant memory entities retrieved during RAG fetches (limited to 50 for empty/simple queries, and coerced at a maximum database limit of 100 to 200)
  • Swapped in-memory filtering with database-level constraints (getMemoryEntitiesOfAssistantLimited directly in Room) to avoid loading massive history payloads into JVM heap memory. This should prevent app stuttering and freezes during long conversations
  • Simplified the internal Android cache stores (PerKeyFileCacheStore and SingleFileCacheStore) by replacing heavy Java ReentrantLock structures with lightweight Kotlin/JVM monitor locks
  • Optimized prompt formatting to maximize caching

Other stuff I'd like to mention:

  • The APK size is less than half of what it was before because the Python sandbox isn't bundled with the app anymore

Found an issue after release:
The workspace feature and update banner aren't currently supported in tablet mode. I will release an update with these fixes as soon as possible!