Logseq DB - Changelog

Changelog (2025-09-27 to 2025-10-25)


:glowing_star: Spotlight

This release brings three transformative improvements to Logseq’s developer ecosystem and database reliability:

  • ClojureScript Plugin SDK - Plugin developers can now build plugins using ClojureScript in addition to JavaScript, unlocking the full power of Logseq’s native language for extension development with seamless interop and better type safety.

  • Enhanced Plugin API for Database Graphs - Major refactoring of plugin APIs introduces new methods for working with database graphs, including get_all_tags, get_all_properties, get_tag_objects, comprehensive property management, and improved block manipulation capabilities. Plugin developers should begin testing the updated plugin APIs.

  • Database Validation & Integrity - A Comprehensive database validation system now runs before writes, catching invalid data early and improving graph reliability. Enhanced error reporting to Sentry helps the team identify and fix database issues faster.


New Features

  • ClojureScript Plugin SDK - Add full ClojureScript plugin development support, enabling developers to write plugins in the same language as Logseq’s core (d8809f0)

  • Database Graph APIs - Add get_all_tags, get_all_properties, and get_tag_objects APIs for comprehensive graph querying (4800ed2)

  • Import EDN Undo/Redo - Imported EDN data now supports undo and redo operations with proper UI refresh (fe619d3, 487cbb2)


Enhancements

PDF Experience

  • Save zoom level preferences between sessions and prevent unwanted zoom resets (584b980)

  • Add reset zoom button to PDF toolbar

  • Support zoom with Cmd/Ctrl + mouse wheel and trackpad pinch gestures

Real-Time Collaboration (RTC)

  • Improve conflict resolution and duplicate datom handling (5b9ea85, adfc0a1)

  • Prevent page recreation when properties or tags already exist (f0e80e7)

  • Fix synchronization issues with pages having both #Page and #Tag (cd04cca)

Database Operations

  • Run validation before database writes to catch errors early (b538fe2)

  • Prefer ldb/transact! over d/transact! for better transaction handling (7ed7fb4)

  • Improve database ident validation and error reporting (993381)

  • Collect invalid database errors to Sentry for better debugging (bbc415c)

Plugin System

  • Refactor plugin APIs into separate namespaces for better organization (15de4a8)

  • Enhance get_tag_objects to accept block UUID, db/ident, or title (3962f1f)

  • Add validation when setting block property values (dbd15f7)

  • Add comprehensive E2E tests for plugin APIs (bbb6d8a)

Import System

  • Make import data form operations undo/redoable (487cbb2)

  • Notify users when assets exceed maximum size limits (846f930)

  • Preserve HNSW embeddings during import operations (683b2c5)

UI/UX Improvements

  • Display total reference count when filters are applied (9b3071e)

  • Enhance text auto-spacing for better typography (3b499bc)

  • Keep buttons visible when adding icons or updating views (3f582ec)

Mobile

  • Reload web app if old database worker is still running when switching back (4e5237e)

  • Close Quick Add modal when clicking a block (52a7369)


Bug Fixes

Tags & Properties

  • Fix flashcard queries not showing child tag objects (4cdea72)

  • Fix tag query (tags ...) not returning child tag objects (f3f6c0c)

  • Fix invalid database state when deleting tag objects (aa2ad76)

  • Fix tag title ordering with extends inheritance (9f5b9c3)

  • Fix alias property creating unwanted tags (c03b55b)

  • Fix properties stable sorting and normalize block order (1747e3f)

  • Fix setting block properties with closed values (4249c9e)

PDF Functionality

  • Fix PDF highlighting not working (33354ad)

  • Make PDF title updates easier (2151fad)

Database & Sync

  • Fix invalid database errors when uploading plugins (c32a10e)

  • Skip validation when downloading remote graphs (30a1156)

  • Fix database worker blocking on invalid WebSocket messages (26879cd)

Assets & Import

  • Fix multiple asset upload support (ac14dfd)

  • Prevent out-of-memory errors during asset import by removing byte-array usage (971cec5)

  • Fix invalid asset data during creation (031f2bc)

  • Fix CLI import failures with “Maximum call stack size exceeded” error (2500fe8)

Plugin API

  • Fix get_page_linked_references for plugins (b4c83a7)

  • Fix get_all_pages API implementation (1736691)

  • Fix get_property for plugins (d8c84ae)

  • Fix insert_batch_block to support properties and page UUIDs (87fc95e, e001e12)

  • Fix insertBlock API with properties (caef419)

  • Fix prepend block functionality (3fa1c5c)

  • Fix nil API response causing errors (b4d3fb4)

  • Fix upsert_block_property to support schema (54b6ea9)

UI Issues

  • Fix sidebar not displaying page names under Recent section on Safari (da185db)

  • Fix display of properties with default values that aren’t set yet (bf2d9df)

  • Fix empty button text font size (5618d47)

Linux Installation

  • Fix broken Linux installation with --user option (6b68197)

  • Add uninstall command for Linux


Performance

  • Remove unnecessary d/datom calls for better performance (e1f7d85)

  • Optimize block reference calculation when pasting blocks (d2acb49)


Developer Experience

  • Bump Electron to version 38.4.0 (4dc6654)

  • Update dependencies and ClojureScript libraries (4fb291f)

  • Refactor API code organization and separate concerns (df48615)

  • Improve outliner linting rules (bbb8388)

  • Add comprehensive test coverage for properties and tags (a92f286)


Contributors

A huge thank you to everyone who contributed to this release:

@An-Li, @Gabriel-Horner, @Paulo-Bueno, @Tienson-Qin, @charlie, @dependabot, @rcmerci

7 Likes