Changelog (2026-04-27 to 2026-05-16)
Spotlight
This release ships Logseq’s first round-trip between DB graphs and on-disk markdown, expands the CLI with native query support, rebuilds the graph view, and hardens sync across reconnects, encrypted graphs, and large payloads. The closing days added a polish pass on Graph View V2, a new :asset property type, and a handful of quality-of-life features.
-
Markdown Mirror — read-only on-disk markdown projection of DB graphs that updates as you edit, with per-graph opt-in, path-collision handling, and rename-aware cleanup (PR #12589, PR #12594, PR #12596, PR #12607). Two-way sync is in development on a feature branch.
- How to enable Logseq Mirror
- How to enable Logseq Mirror
-
Generated mirrored markdown
-
…/graphs/cliworker/mirror ❯ tree . └── markdown ├── journals │ ├── 2026_05_02.md │ ├── 2026_05_07.md │ ├── 2026_05_14.md │ └── 2026_05_16.md └── pages ├── Logseq Markdown Syntax.md ├── Project.md ├── Test Project.md └── Testing Plugin.md
-
-
CLI matures —
qmd queryfor multi-part queries,asset downloadfor sync, a unified backup path shared with the desktop app, and a fully bundled CLI in desktop releases (PR #12340, PR #12548, 635d4b7a73, 08a479f2c8, 3f5b52cc07). -
Graph View V2 — rebuilt for faster rendering on large graphs, with a follow-up task zoom-in view and interaction polish (PR #12604, d12beff383, 9318205c32).
-
Sync reliability — caps oversized snapshot payloads, scopes RSA key pair caches per server URL, recovers stale websocket sessions, and clears a long list of checksum, reconnect, and asset upload edge cases (PR #12586, 293309801f, 70042a46df, 009d93dc92).
-
Quality-of-life polish —
$autopair for inline math, AVIF/CR2 image support, “Always on Top” window option, marketplace plugin search across descriptions, plugin thumbnails, and a wide pass of editor, import, and graph view fixes (PR #12618, PR #11997, be34b7904a, PR #12470, 5726ecaa21). -
:assetproperty type — first-class asset property with inline thumbnail picker, so file/image references live in a typed property slot (PR #12506).
Currently Available
Features, enhancements, and bug fixes merged to master .
New Feature
Sync and storage
-
Markdown Mirror writes DB graph blocks to disk as plain markdown, updates as you edit, embeds block ids in comments, and handles renames and path collisions (PR #12589, PR #12594, PR #12596, 4bde9e0111, 9288c1de7e).
-
Logseq-markdown export shares content in Logseq’s own dialect outside the app (PR #12598).
Developer tools
-
Full-featured Logseq CLI bundled into desktop releases drives Logseq without opening the desktop app (PR #12340, PR #12548).
-
qmd queryruns multi-part Logseq queries from the terminal (635d4b7a73, 5ec5b258c9, b06eaa48a9, a3e4d8a902). -
sync asset downloadpulls missing assets from sync (08a479f2c8).
Plugin system
- Custom block renderer hook lets plugins render their own block UI inside the editor (PR #12533).
File handling
- “Open folder” action jumps to a graph’s files from the repository context menu (7306cc8916).
Settings and configuration
-
Configurable Publish server URL points self-hosted setups at their own publish backend (PR #12520).
-
prettify-url?option on QuickCapture auto-formats captured URLs on save (PR #12409).
Media
- Native AVIF and CR2 image support renders RAW photos and AVIF assets inline (PR #11997).
Window management
- “Always on Top” pins the Logseq window above other apps (be34b7904a).
Properties
- New
:assetproperty type opens a 4-column thumbnail grid picker, renders an inline preview, and offers View/Swap actions that open the image lightbox or PDF viewer (PR #12506).
Enhancement
Block editing
-
Markdown formatting and rendering improved for quotes, code blocks, and headings (66b1140fc9).
-
Breadcrumbs read more clearly when navigating deeply nested blocks (PR #12595).
-
Notice surfaces when block content conflicts arise, flagging sync collisions (d1ac0836be).
-
$autopair pairs inline math delimiters like brackets and quotes, with$$block-math handling (PR #12618). -
Deprecate the legacy
((block-ref))syntax: imported titles convert block-refs to page-refs, the i18n key drops, and new content should use page-refs (PR #12627).
Graph visualization
-
Task zoom-in view drills into a single task’s neighborhood (d12beff383).
-
Graph view interactions polished; node picker dedupes raw nodes and property choices (9318205c32, cf24914e6c, c8d00f5a7b).
Developer tools
-
CLI gains
show --page-hierarchy,show --page library, block/link rendering inshow, and moreexportoptions (319d07a2e5, 9aa73a1976, 7a731c6044, 7b68c57056). -
CLI ergonomics:
--enable-syncongraph create, longersync uploadtimeouts, three-linelistoutput, outdated-skill warning, unified build-version reporting (f5b122ddd5, ca08579d47, 94c942bf7c, 314c68cd9a, 137dd7fefd). -
db-worker-node restarts automatically on version mismatch and skips direct-pass calls in thread-api routing (2f0a4f37e5, 17ae997013, ca7647f808).
-
CLI agent skills refined; new logseq-review-workflow, logseq-task-on-lambda, and logseq-answer-machine skills added; lambda PRs record URL, link issues, and follow a clearer status flow (14b85b96d6, 55123a65b6 and related).
-
Desktop and CLI backup paths unified (3f5b52cc07).
Plugin system
-
Plugin libs surface refined; plugins pass plain JS objects across the Electron IPC boundary (PR #12588, dfc689d607).
-
Plugin manager uninstalls unused plugins (PR #12603).
-
Legacy plugin storage APIs keep working alongside the refreshed surface (PR #12605).
-
Plugin cards render their own thumbnail icons (5726ecaa21).
-
Marketplace search matches plugin descriptions (not just titles) once the query reaches 3+ characters (PR #12470).
Bug Fix
Sync and storage
-
Snapshot upload payloads now cap; oversized tldraw payloads drop, preventing a single large snapshot from stalling sync uploads (293309801f, 99d2e30066, bba25ea579).
-
Stale sync sessions recover: websocket restarts, in-flight uploads clear on reconnect, downloads resume from correct paths (70042a46df, 6bfb7963d5, 20c7930727).
-
Encrypted sync: RSA key pair cache scopes by server URL, wrong e2ee passwords surface on download, deleted property pairs stop replaying to the server (PR #12586, c19eca0fd6, 05e8d0c435).
-
Checksum and local-tx handling stay aligned between client and server; guard prevents zeroing local-tx; client-ops db is ready when creating remote graphs on web (009d93dc92, 13779a4047, b71228a7b0).
-
Title sync conflicts keep the latest write; downloads restore sync metadata; asset remote-metadata stops being retracted (7c339462d0, 4ce4aedee8, f7ff5301fa).
-
RTC asset sync status reports pending assets clearly (0980e63711).
-
Android graph download regression fixed; local-tx initializes correctly on new graphs (8857be2baf, 2a1ec47b03).
-
Asset upload failures recover; retries no longer silently drop assets (6f5b000217).
-
Stale large-title objects drop from the sync flow (af5683f7c9).
-
External and local asset URLs (including external-url paths and plugin binary writes) resolve correctly (658e672551, PR #12656).
-
Filesystem boundary calls stop throwing on
mkdir/stat; IPC error handling stabilized (49dd71d658, 72822bc720).
Search and queries
-
No-unlinked-references behavior restored on pages without references (643979123056).
-
Search returns matched pages again; debounced results stop flashing intermediate state (62eac11fe3, 5bc8fafb1b).
-
SQLite FTS quote parsing fixed; more invalid-FTS cases handled, so quoted or unusually punctuated queries no longer fail (e9ea5ef34c, fe153af811).
Database operations
-
SQLite format validates on import; unhelpful header check removed; flat client-ops layouts import correctly (db84d6bd96, c647326d86, 843dfc78d4, e8de3cc104).
-
GC stops running on client-ops db (no Datascript schema at addr 0) (d619745d30).
-
Desktop SQLite backup path restored; browser DB export unblocked; desktop SQLite binary export now opens in standard tools (627cb619e1, c6ac84cd28, 18c69fe1a8).
-
:block/namestops updating when a custom date formatter changes; deprecated properties handled cleanly when validation fails (69c4d36a61, 9712b1ed7b). -
Legacy properties drop; db-worker ui-request response args align (e470dfd5f0, ac102e70fe).
-
:ref/default-open-blocks-level 0works in DB graphs again (PR #12501). -
Datoms format corrected when repairing invalid data; invalid data from older graphs loads without crashing (c32428702f, 3ae4d92adc).
UI/UX
-
Fullwidth
[IME auto-completion restored for CJK page-ref input (PR #12606). -
Table view duplicate fields, large-title rehydrate flicker, and pending-new-block tab re-queue all fixed (d8fd169899, c5775df851, 46227b05eb).
-
Focused-root indent/outdent and move ops guarded so blocks can’t be outdented past the zoom root (PR #12583, a544e7f407).
-
Flashcards: dialog stays open after finishing a card; collapsed children load on reveal (1bcd855542, 0d5986eb90).
-
Outliner remaps pasted property value UUIDs; general paste regressions fixed (cea40a2cd6, 540e410320).
-
mhchem reaction arrows render correctly in math blocks (a772e6582b).
-
Calculator CodeMirror expands without scrollbars (PR #12600).
-
Scoped choice actions refined for tag property configs (46ab697178).
-
Shortcuts preview availability fixed; header and NativeTopBarPlugin icon sizes adjusted (PR #12556, cff7f58d46).
-
Keyboard navigation works for installed themes in settings (7018f62bf7).
-
“Sync” paid-feature label capitalized consistently (cecabbf157).
-
Block selection no longer breaks while scrolling long lists (1b9a1999ac).
-
cmdk sidebar shortcut stays scoped to its panel (58098303e0).
-
Heading bullets, heading icons, and dark right-sidebar header align with their content (1c061cc871, 96bf1f074b, 755840c474).
-
Right sidebar accepts asset drops (b2fc00b31b).
-
Order-list sibling-block reactions fire correctly when checking off items (PR #12617).
-
Stale title state clears when converting a block to a code block (4c98cc6b51).
-
Markdown headings render inside quote blocks (PR #12611).
-
FSRS cloze macro renders with superscript and subscript markup (e097ec8cd8).
-
Icon and bullet alignment regression fixed; breadcrumb icon layout preserved on long paths (aef715a525, c10a3b0fca).
-
Breadcrumb labels resolve UUID refs to titles; breadcrumb label class tidied for consistent styling (PR #12636, ee9a667392).
-
Left sidebar favorites truncate cleanly (35aaaba83f).
-
PDF viewer toolbar background no longer blends into chrome (fef89c1c4e).
-
Keyboard shortcut creates missing journal pages (302f798052).
-
Notification payloads carry i18n keys for localized strings (9dbb2ca522).
-
Resized network image width persists on reopen (a20939292f).
-
Spaces between refs in headings preserved (c84e7de0fb).
-
Code block language preserved on round-trip (7838becdf0).
-
Firefox paste lands content correctly (c37386e393).
-
Class hierarchy hides where irrelevant; class label maps resolve correctly (PR #12640).
-
Tag aliases hide from tag completion; the convert-to-alias action hides where it shouldn’t appear; markdown tag link aliases and block refs in merged hashtag links preserved (03adb8c7f8, 2de6597811, 4fe42af3ed, 37789780cd).
Properties
-
Partial property value writes prevented; block property value deletion commits cleanly (fc51c77765, 4e6b9a2225).
-
Scoped node property values run faster in dense graphs; follow-up regression fix keeps scoped values intact (PR #12651, PR #12659).
-
Property config regression fixed; closed values reparent when converting a property type (a034f80f37, 5afaf32378).
Recurring tasks
-
Scheduler honors the three documented repeater cookies (
.+,++,+) instead of applying a single++-like rule to all (PR #12523). -
Task choices record reproducibly so repeats don’t drift (5638050cbb).
Graph visualization
- Deleted recycled nodes clean up rather than leaving stale entries (562e56e4c5).
Developer tools
-
CLI sync status gives an actionable message when no e2ee password is set; sync subcommand hints and config.edn read/write repaired (3943f0b1ec, 49382463cd, 90891fdab7).
-
export-ednregression on deprecated properties fixed; CLI block-ref rendering corrected (6945771612, 1d027cba3a). -
CLI content options coerce to string (35e335178e).
-
CLI queries reject
:db/iddatom clauses with a clear error; invalid-query message trimmed;showhides empty property ids;sync upload --helpclarified (2a0bf68fa0, e1c5025dd3, PR #12666, PR #12667). -
Packaged db-worker runtime path resolves; CLI stays usable when the db-worker-node server is unreachable; CLI skills bundle into desktop releases (9e4b8c8246, 7488b92407, c14248c0a9, d6af5d8836).
-
Failed sync downloads on new graphs recover; re-upload works after deleting the remote (12b4c3399d, 07f3006a5d).
-
db-worker starts with template config when its own config is missing; server-list writes protected; repo-name comparison handles db-version-prefix mismatch (4bbb53cdf3, c6d21e2006, 5301d39f07).
Mobile
-
iOS TestFlight fonts repaired; invalid web fonts removed from iOS builds (PR #12608, f1fa9f3f5d, 63acfae310).
-
iOS deployment target corrected; Android compile fixed; Capacitor v8 migration complete (faf6317bb7, 74c2cc9393, df38c26dbf).
-
Android native top bar layout and icon sizes align with the rest of the app (62e66f30b9).
File handling
-
Electron custom URI scheme links open the right graph and page (PR #12549).
-
Marketplace markdown image tags render plugin previews reliably (8b510ea034).
-
Windows file URL block links open correctly (PR #12646).
Import and export
-
Imports preserve emails in quote blocks; property values referencing custom-format journal pages import correctly (8a7ba2f665, 47407a3d8d).
-
Exports ignore legacy-property entries; copy/paste export property data normalized (a610925bca, 9cfbaf80dc).
-
Imports preserve task statuses, repeated schedules, and namespaced inline tags (f42da95204, 44d6bd49c4, ee6b38b9d6).
-
Auto heading pre-blocks import correctly; mixed quote blocks survive DB export (PR #12612, PR #12610).
-
SQLite DB exports write as binary; client-ops DB export on web unblocked (e03e019a19, 0b26f16422).
Publishing
-
Hidden properties, protected pages, and protected tag listings hide from the published site; public
/pageslisting endpoint removed (b953a5c92c, e44bd79526, 0b6ec5916c, 0a077d1144). -
App status icon styles match in publish; legacy short/page URL routes preserved; DO stubs acquired in a sync
letto avoid RpcPromise clone failures (c2c5dbee0c, 3a63f09bef, PR #12521). -
Mixed RTL/LTR pages set
dir="auto"for correct layout (f6e2ab9026). -
Published task bullets clear of the status icon on mobile (127356d753).
Plugin system
- Electron IPC accepts plain JS objects; i18n interpolate function reference inside plugin code fixed (17a092d438, 5907b09824).
Performance
Search and queries
- Worker search, large-graph search, and result rendering all sped up (e47539398b, a973c4fb85, 5bc8fafb1b).
Refactoring
Graph visualization
- Graph view rebuilt (V2) for better navigation and rendering on large graphs (PR #12604).
Sync and storage
-
create-remote-graphmoves to the db-worker; unused node persist-db implementation removed (72252e5b58, e750c79e34). -
DB no longer reloads from disk after a remote create; data writes directly into the active DB (40d8442180).
Chore
Developer tools
-
Legacy
ENABLE_RTC_SYNC_PRODUCTIONandENABLE-FILE-SYNC-PRODUCTIONflags retired (1e47b446de, e0076fcffc). -
End-to-end and editor async test isolation stabilized; flaky tests fixed; asset upload regression coverage added (cb0c961998, 7e7d9dd81f, 98baff725b, 7c3986bcbe).
-
Server usage stats script and supporting skills added; AGENTS.md and JS hints updated (PR #12557, a7672eb69c, 56494fdb05).
-
Outdated ADRs moved to
archive/; logseq-cli docs updated and consolidated (1ed14885cd, 5dd041b83e, 559ee28a32). -
logseq-i18n-lint binaries updated (PR #12602).
-
Legacy developer command cycle removed (PR #12591).
-
lint-and-testand CLI tests run in parallel; CLI e2e cache key fixed; basic e2e suite stabilized; instaparse clj-kondo config added (00964157b1, 250993c328, c9acb4df39, PR #12616, 89b11ff45c). -
db-worker-node build no longer copies
publicdir(1d16c9b47e).
Upcoming
On feature branches, not yet shipped.
New Feature
Sync and storage
- Two-way sync between markdown files and the DB graph — additive sync of edits back to DB, ADR 0017, mirror-id sparsification, mirror-property syntax, Logseq Sync compatibility test suite (cd31a39fef, 6cb495ad65).
Enhancement
Developer tools
- Build pipeline migrating to Vite: replaces gulp, moves UI + plugin SDK builds, switches electron scripts to node, rewrites shadow externals namespace imports (8bf4624a34, 97a30f61d3).
Plugin system
- Storage path handling and async calls improved in plugin libs storage APIs (7d029ab4aa) .
Bug Fix
UI/UX
- Property UX: route-root hidden toggle, gated date edit icon, tightened bottom property edit popup (3d96bf9fe3, 2e07fe1b8a).
Contributors
- A. S., Charlie, Cory Donnelly, Gabriel Horner, Grandroot, hoellen, IderAghbal, ivan-danilov, Kidy Lee, Mega Yu, PlunderStruck, rcmerci, TechnoHouse, Tienson Qin, Victor239, VictorVow, Will Wu, yshalsager



