Changelog (2025-09-27 to 2025-10-25)
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, andget_tag_objectsAPIs 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!overd/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_objectsto 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
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_referencesfor plugins (b4c83a7) -
Fix
get_all_pagesAPI implementation (1736691) -
Fix
get_propertyfor plugins (d8c84ae) -
Fix
insert_batch_blockto support properties and page UUIDs (87fc95e, e001e12) -
Fix
insertBlockAPI with properties (caef419) -
Fix prepend block functionality (3fa1c5c)
-
Fix nil API response causing errors (b4d3fb4)
-
Fix
upsert_block_propertyto 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/datomcalls 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