Changelog (2025-10-26 to 2025-11-15)
Spotlight
This release delivers significant improvements across three key areas that enhance Logseq’s stability, performance, and user experience:
-
Database Migration & Validation - Comprehensive fixes for old database graphs, ensuring data integrity during migrations and preventing invalid data states. Multiple safeguards added to protect built-in properties and handle edge cases in legacy graphs.
-
Performance Optimizations - Major speed improvements for large graphs, with Pages view performance increasing from 1000+ms to 200-300ms for graphs with 40,000 pages. Initial page load times reduced through optimized datom loading and smarter rendering strategies.
-
Mobile Experience Enhancements - Native bottom tabs introduced for iOS, improved touch interactions, and better authentication UI with multilingual support. Mobile-specific fixes for quick capture, search results, and iPad display issues.
New Feature
Plugin System & APIs
-
Add MCP (Model Context Protocol) server support (15a5f29b4)
-
Add plugin class support with ident format
plugin.class.id/class-name(0a54e807b) -
Add comprehensive tag management API functions: create, add, remove, and property management (51fbc705d, 7f4d8ad22)
-
Add development entry support for plugins (501230b0d)
CLI Tools
- Add import-edn command for both current and local graphs (0bc0892b8)
Authentication
-
Complete authentication UI overhaul with multilingual support (a0a19a91f)
-
New sign-in, sign-up, and password reset flows
-
Password policy validation and tips in multiple languages
-
Countdown timer for code resend functionality
-
Improved mobile login modal styling
-
Mobile
- Native bottom tabs on iOS for improved navigation (9ebe370ec)
Enhancement
Performance
-
Massive Pages view optimization: 5x faster for large graphs (1000+ms → 200-300ms for 40k pages) (7b6d6c467, fb271b1d4)
-
Reduce initial datoms that need to be loaded for faster startup (a626cec34)
-
Optimize get-recent-updated-pages query (82a7ec13e)
UI/UX Improvements
-
Add fade-in and delay effects to page reference elements (71a25e612)
-
Display tag hierarchy with parent/child notation (
#parent/child) (48fb2b817) -
Unified node icon rendering for references and embeds (a7c8212df)
-
Show node icons in search results (4c6c3322f)
-
Use dot icon for block nodes (5942c1b98)
-
Display property pairs vertically on mobile for better readability (1662497aa)
-
Set background color for full block instead of just title (b4c4b673e)
-
Render blocks together with parent page for list view (e8fef0d81)
-
Disable breadcrumb redirect in cmd+k results (1bae7b46f)
-
Show settings icon when configuring tags (04dd7a56d)
-
Store image width/height to prevent scroll jank (1fca2a9ff)
-
Keep today queries to avoid scroll junk (4462634f0)
-
Render fewer journals by default for faster initial load (88d9b6e78)
-
Smaller text for card breadcrumbs (409c2c327)
Block Editing
- Compute diff for block refs instead of resetting all refs when editing (3bc65300b)
Plugin APIs
-
Support custom UUID when creating pages and tags (28bc28ecd, bd4b022a0)
-
set-block-properties!defaults to not reset:manyvalues (94a2d9c28) -
Export
prepend_block_in_pagefunction (025e2e70d)
Real-Time Collaboration
- Update error handling for race-failure cases (68c5ab1bc)
Logging
-
Upgrade logging library and add timestamps to logs (6ffa6ab5d)
-
Catch and handle errors when thread-api throws (11e6eaf22, 18464effc)
Internationalization
- Normalize language codes and improve locale handling (a0a19a91f)
Bug Fix
Database & Data Integrity
-
Fix multiple invalid data cases for old database graphs (da5f9b3c6, 7c9cfadad, 07d8d6c71, 965ff3059)
-
Fix invalid icon data for old graphs (4ba05f69a)
-
Fix wrongly retracting entity when validating database (1444f2ae1)
-
Prevent validate graph from removing empty-placeholder values (cb0bda3c5)
-
Fix invalid database when creating nested page in Library (97e8140d7)
-
Ensure built-in data types are preserved (b57e10dd1)
Built-in Pages & Tags Protection
-
Prevent built-in pages from being converted to tags (3bf78ac5e)
-
Prevent properties from being converted to classes (820b2f075)
-
Disallow updates to protected properties for built-in nodes (e4e838858)
-
Fix more built-in attributes that would cause major bugs if changed (71be8ec3e)
-
Fix some built-in tags shouldn’t be recognized as inline tags (a4ec889a5)
-
Prevent built-in tags like journal from being extended (d8b1feb39)
-
Fix disallowed tags (7619e3ab9)
Block Editing & References
-
Fix refs not rebuilt when applying RTC remote operations (f9cd1acbf)
-
Fix set heading removes refs (fec4f5165)
-
Fix block refs that are hyperlinks unable to be navigated to (de94684d5)
-
Fix can’t deref query result (5e924880b)
-
Remove :block/path-refs entity (12f65c315)
-
Remove :block/level in old graphs (c8c2d780a)
-
Fix block.temp/original-page-name handling (4ebe410e2)
Query System
-
Fix block/order showing up in all block queries (b847cfbcd)
-
Fix timestamps in advanced query not showing (518076d83)
-
Fix query result not showing when :db/id is not specified (7d39b510d)
-
Fix tag and page names collision in query DSL (6f8d2a39f)
-
Don’t show query component when block doesn’t have a query (5e0d52a43)
-
Use UUID instead of name for page ref queries to avoid collisions (d809af8ce)
Mobile Fixes
-
Fix quick capture website on mobile (0ece59542)
-
Fix no bottom tabs and editor bar on iPad (833f59120)
-
Fix failed to open “Import existing notes” on mobile (9ad3da9c6)
-
Fix can’t open block from search result on mobile (5dae9845a)
-
Hide bottom tabs when sheet has been opened (9ebe370ec)
File Import/Export
-
Don’t create new card page when importing file graph (ace82d715)
-
Ensure UI database is full when importing file graph (263c499e5)
-
Fix import of code block inside quote block (c91661f02)
-
Fix wrong rendering of colored quote blocks in markdown graph (9104bebac)
Paste Operations
-
Fix can’t paste asset (2140029c6)
-
Fix can’t undo pasting at empty block (079c8944b)
-
Fix paste query block should create new block (fb9e73593)
-
Fix Cmd+V does not insert images into property value (c5adaddce)
Tag System
-
Fix adding tag property using API produces empty tag (70cf508ec)
-
Fix can’t add node link on tag page with dropdown menu (29cc19203)
-
Fix cmd+k shows configure tag but creates new page (f85546c15)
-
Don’t show parents for children tags in hierarchy (699d3eaf4)
-
Don’t show page’s tags in node references (68548ea2f)
-
Don’t show page’s tags in property values (dcb448d6b)
-
Fix tag dialog issues (3b99f1344)
-
Fix tags rendering (5b35a9ee4)
-
Add PDF annotation to private tags (4046dae5c)
Search
-
Fix search prioritizes creating page over existing library item (3afb112b8)
-
Fix built-in tag/property excluded from semantic search (33ae3f9a0)
UI & Keyboard
-
Fix left arrow does not work properly in property name field (e99f2b6b8)
-
Fix active breadcrumbs in node property dropdown menu (2122d3d27)
-
Use alt+shift+i for go/search-themes on Windows/Linux (085f9093c)
-
Fix virtualized list shouldn’t be nested (f34d58acc)
-
Ensure all elements inline for favorites and recents (84bfd7715)
Plugin & API
-
Fix page refs display UUIDs instead of text for getPage (1ebfd30b5)
-
Fix edit block operation shouldn’t require page ID (dc76a94e0)
-
Fix update :block :add op supported args (e3ce613a7)
-
Convert opts to JS object in insert_block (025e2e70d)
-
Sanitize user property names (0a54e807b)
PDF & Assets
- Fix can’t delete annotated PDF (76d854660)
Other Fixes
-
Fix YouTube embed (65627d819)
-
Fix + New button error (323674a51)
-
Fix get-fs shouldn’t return nil (2a67e7e45)
-
Fix incorrect descriptions for database graphs (87ad39839)
-
Allow editing block’s other properties if there’s invalid URL (79f670f79)
-
Fix
(())doesn’t work for blocks in file graph (0fe171580) -
Fix database worker doesn’t need to wait for plugin initialization (5173a73c1)
-
Allow moving non-page blocks to library on UI (46c4f66ae)
-
Don’t run
remove-inline-page-classesif save-block doesn’t specify tags (fa86b7955) -
Export URLs for debug transit (9d2912d1a)
Chore
Dependencies & Build
-
Bump CLI to 0.3.0 for release (a138a0e97)
-
Bump Electron to 38.4.0 (4b32be678)
-
Bump Playwright from 1.51.0 to 1.55.1 (cdb919fb8)
-
Bump js-yaml from 4.1.0 to 4.1.1 in /packages/tldraw (ced15e605)
-
Add deps/cli to separate linter (b59164fa2)
-
No need to check IndexedDB support anymore (875e1b68c)
Testing & CI
-
Add E2E test for nested pages in Library (6844292de)
-
Add RTC E2E tests for page references (5d8c9a4f8)
-
Fix E2E tests (561f422c0)
-
Fix test website CI (1949a8a2f)
-
Fix clj-e2e CI configuration (d25cd4c1e)
-
Prevent deploy when E2E failed (d77ce0593)
-
Disable failing E2E check that prevents deploy (d9cad1260)
-
Re-enable repeatable install (b9318281f)
-
Fix frozen-lockfile install (7bf273874)
-
Fix test from recent tag made private (a3b2ac98f)
-
Fix test’s global change to ldb/transact! (2c6f8101d)
-
Fix pluralization of import/export messages (d7f7dbea1)
Code Quality
-
Fix lint issues (955baafd7, ba8442e26, a83107f2f, eff2703fa, 1204d1d24, 0b2ef2dd8, 41164c60e, 326d6dbd5, 4a1975a8a)
-
Add kondo ignore for specific cases (3293a7334)
-
Clear Amplify-related codes (a0a19a91f)
Version Management
Contributors
Thank you to all contributors who made this release possible: