Skip to content

Latest commit

 

History

History
58 lines (37 loc) · 3.61 KB

File metadata and controls

58 lines (37 loc) · 3.61 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Changed

  • Potentially breaking: LogSeq(...) now defaults verify_ssl=True (was False), so the safe path is the default. The bundled server is unaffected (it always sets verify_ssl explicitly from the protocol), but external code constructing the client directly against a self-signed HTTPS Logseq endpoint must now pass verify_ssl=False explicitly (#89)

Internal

  • Tech-debt cleanup: migrate off the deprecated LanceDB table_names(), commit uv.lock for reproducible installs, remove dead code (_get_page_properties, the remove_block alias), and unify the duplicated list-parser logic (#89)

[1.8.0] - 2026-06-19

Added

  • HTTP/SSE transport — run the server as a networked service with --transport http, secured by bearer-token auth (MCP_HTTP_AUTH_TOKEN). A sandboxed or remote client can now reach Logseq over the network with no filesystem mount or direct Logseq-API access, turning the namespace/tag access control into a real server-side security boundary (#69)
  • Per-profile multi-instance serving — run one process per profile (a shared data config file + a per-process env block of namespace/tag/token + its own port). Adds --read-only to disable all write tools, and tag-on-write guards so writes can't land on a tag-excluded page (#69)
  • Native TLS--tls-cert/--tls-key serve HTTPS directly (uvicorn ssl_certfile/ssl_keyfile), plus a bind guardrail that refuses non-loopback plain-HTTP binds unless you pass --insecure (#71)
  • New deployment guide at docs/SERVING.md — security model, the per-profile pattern, the separate logseq-sync writer, and TLS / reverse-proxy setup

Changed

  • sync_vector_db is now inert — the vector DB is owned by a single external logseq-sync writer process; the tool points operators at it instead of spawning a sync (#69)

Fixed

  • Block-level results from search (DB mode) and query (tag-only profiles) are now resolved to their owning page and filtered by the namespace/tag ACL, closing cases where restricted block content could surface in block-level results (#69)
  • The page-exclusion set now fails closed when ACL rules are active — if it can't be built, search returns an error instead of unfiltered results (#69)

[1.7.0] - 2026-06-14

Added

  • Namespace-based access control — restrict MCP tool access to specific Logseq namespaces via LOGSEQ_INCLUDE_NAMESPACES and LOGSEQ_EXCLUDE_NAMESPACES environment variables (#65)
  • JSON output format for query and search tools — pass format=json to get raw result objects including block UUIDs and page identifiers for deep linking (#56)
  • Configurable API timeout — set LOGSEQ_API_TIMEOUT environment variable to override the default 30-second timeout for Logseq API calls (#47) — thanks @thisdotrob

Fixed

  • create_page now fails on existing pages instead of silently creating numbered duplicates (e.g. Page (1)); retries are safe (#59)
  • update_page property handling is now graph-type aware, correctly serializing properties for both file-mode and DB-mode graphs (#62)
  • Inline key:: value properties are now correctly attached to their parent list item instead of being treated as top-level blocks (#61) — thanks @sehgalmayank001

[1.6.3] - 2025-04-12

See GitHub releases for earlier history.