Skip to content

Releases: gamosoft/NoteDiscovery

v0.28.2

Choose a tag to compare

@github-actions github-actions released this 10 Jul 09:13

What's Changed

  • fix(callouts): render nested code blocks inside GFM/GLFM alerts (#251) Thanks @pablon !

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.2

Full Changelog: v0.28.1...v0.28.2

v0.28.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 07:59

What's Changed

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.1

Full Changelog: v0.28.0...v0.28.1

v0.28.0 - The big-vault release!!!

Choose a tag to compare

@github-actions github-actions released this 30 Jun 15:57

TL;DR

This release focuses on making NoteDiscovery faster on large vaults: switching notes, searching, and mutations are all dramatically faster, even past 10,000 notes (why would you want so many in a single vault though? 😋 but I guess there are tons of use cases out there). There's also a handful of polish around logging, startup, and configurable storage paths. It's not perfect, but I think it's WAY better than before so as always, please open an issue if you hit anything unexpected, bug reports and feedback are hugely appreciated.

Faster

  • In-memory note index: A unified, thread-safe index keeps every note's links, backlinks, tags, and search tokens hot in process memory. Endpoints that used to scan the filesystem on every request (/api/backlinks, /api/graph, /api/tags, /api/search, /api/stats) now read straight from the index. On a 15k-note vault: switching a note went from ~4s to under 100ms; /api/graph from 4s+ to under 200ms; /api/stats from a slow walk to under 50ms. The index updates incrementally on every save/delete/move/rename, so there's no staleness while you work.

  • Background warmup on startup: A daemon thread pre-builds the index as soon as the server boots, so the first /api/notes request usually hits a warm index. Every (re)build is logged with timing and size, so if an external file change forces a rebuild later you see it too:

    INFO:     Vault index rebuilt in 1.07s (5234 notes)
    
  • Optimistic UI for every mutation: Create, delete, rename, and move (notes, folders, media, drawings) update the sidebar tree locally instead of triggering a full vault refetch. Previously each mutation could freeze the UI for 2-4s on big vaults. If the server call fails, the tree resyncs quietly in the background.

UX

  • Skeleton sidebar while loading: No more misleading "Add your first note" empty state during a cold load. You get an animated shimmer skeleton until the tree is ready.

  • Delayed loading overlay: If /api/notes takes longer than 800ms, a soft overlay covers the tree and editor. Settings, theme, and search stay clickable underneath. Most loads finish under the threshold and the overlay never shows.

  • Loading your notes… in all 11 locales. Hungarian was refined to Jegyzetek betöltése after @Adv3n10 feedback. 😋

Internals

  • Unified logging: Every startup and runtime message now goes through Python's logging at the right level. Output is uniform with uvicorn's own INFO: / WARNING: / ERROR: / CRITICAL: prefix and filterable from the shell:

    python run.py 2>&1 | findstr "WARNING ERROR CRITICAL"
  • /api/index/stats: New observability endpoint. Returns counts of indexed notes / folders / links / tags, search index status, and last build duration. Documented in documentation/API.md.

  • run.py banner: Slimmed to a single line so the script no longer claims the server is "running" before uvicorn has actually bound to the port. The framework's own INFO: Application startup complete. is now the source of truth for readiness:

    📝 NoteDiscovery → http://localhost:8000  (Ctrl+C to stop)
    
  • Configurable storage paths via env vars: NOTES_DIR and PLUGINS_DIR now override config.yaml, matching the precedence pattern already used by PORT, HOST, and authentication settings (env var > config.yaml > default). The resolved paths and their source are logged at startup, so it's obvious where the server is reading from:

    INFO:     Notes directory: /vault (from NOTES_DIR env var)
    INFO:     Plugins directory: ./plugins (from config.yaml)
    

    Full reference in documentation/ENVIRONMENT_VARIABLES.md.

  • note_stats plugin rewrite: Dropped unused stats_history, format_stats, get_stats, get_total_stats. Per-save output is now a single line through the unified logger instead of multi-line print() with emojis:

    INFO:     note_stats 20260630.md | 456 words | 29 sentences | ~2m read | 36 lines | 10 lists
    

    No API change for the plugin itself.

  • Media uploads and moves invalidate the scan cache: Brings them in line with note mutations so /api/notes and /api/stats reflect new or moved media on the very next request instead of waiting up to 1s for the cache TTL to expire.

Known limits

  • Graph view scales with what your browser can render. Below ~1500 notes it's snappy. From there up, the in-browser vis-network force-directed layout is the dominant cost regardless of how fast /api/graph returns. If this becomes an issue I could consider using a different engine but let's be serious, a graph of 10k notes is just way too much IMHO... 🤪

No breaking API changes. /api/notes, /api/search, /api/tags, /api/backlinks, /api/graph return the same shape as before, just much faster.

I hope you guys like this one! 🙏🙏🙏

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.0

Full Changelog: v0.27.3...v0.28.0

v0.27.3

Choose a tag to compare

@github-actions github-actions released this 29 Jun 11:14

What's Changed

  • Callouts — Added GitHub/Obsidian-style callouts (> [!NOTE], > [!TIP], > [!IMPORTANT], > [!WARNING], > [!CAUTION]). Rendered in the preview, HTML exports, and shared notes.
image
  • Format buttons no longer produce broken markdown — Bold / Italic / Strikethrough / Code now correctly handle selections with trailing whitespace (common from browser double-click). Previously **word ** rendered as literal asterisks because the space inside the delimiters made it invalid per CommonMark; now it produces **word** and renders properly across the preview, exports, shared notes, and print.

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.27.3

Full Changelog: v0.27.2...v0.27.3

v0.27.2

Choose a tag to compare

@github-actions github-actions released this 16 Jun 16:14

What's Changed

Fixed issue #238 to remove unused variables

Wire version to VERSION file (was hardcoded "1.0.0")

  • importlib.metadata when pip-installed, file fallback for source/Docker
  • SERVER_INFO sent to clients now matches actual NoteDiscovery release

client.get_note() skips backlinks computation (perf)

  • GET /api/notes/{path}?include_backlinks=false
  • Backlinks default scan_was_vault-wide and unused by the get_note tool
  • get_backlinks tool unaffected (still uses ?include_backlinks=true)

New get_config MCP tool

  • Exposes /api/config (name, version, enabled features, autosave delay)
  • Helps the LLM understand server capabilities without trial-and-error

Pagination naming: max_results -> limit (BREAKING for tool args)

  • Aligns 3 tools with the 4th (get_recent_notes already used limit)
  • Aligns MCP schema names with the wire protocol (client/backend)
  • LLMs pick up the new name on next tools/list call; no migration code

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.27.2

Full Changelog: v0.27.1...v0.27.2

v0.27.1

Choose a tag to compare

@github-actions github-actions released this 10 Jun 16:25

What's Changed

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.27.1

Full Changelog: v0.27.0...v0.27.1

v0.27.0

Choose a tag to compare

@github-actions github-actions released this 08 Jun 09:07

What's Changed

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.27.0

Full Changelog: v0.26.0...v0.27.0

v0.26.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 12:53

What's changed in v0.26.0

New

  • Configurable + button — In Settings, choose what the + and New buttons do by default: open the type chooser (current behaviour), or jump straight to a new note, folder, template, or drawing. Hold Shift while clicking always brings up the full chooser.
  • Auto-fill new-note titles with a timestamp — Optional toggle in Settings that pre-fills the name field with yyyymmddHHMMSS (Zettelkasten-style). Press Enter to accept, or type to replace. Applies to both plain notes and "Create from Template".
  • "Create from Template" remembers your last choice — The most recently used template is pre-selected the next time the modal opens, and the name field is focused & selected. Paired with the auto-fill setting above, a single Enter is enough to create the note.

UX

  • Enter confirms in the Delete / confirm dialog — Mirrors the existing Escape = cancel. Works for every confirmation modal.
  • Settings toggles no longer overflow with long labels — Long localized strings (e.g. the Hungarian Tab inserts tab description) now wrap cleanly inside the panel and the toggle stays pinned to the right.
  • Tighter settings copy across all 11 locales — less crowded panel.

Fixes

  • "Create Note" button background no longer disappears when the template form becomes submittable (Alpine :style was replacing the static style attribute instead of merging with it).
  • Delete confirm no longer re-opens after pressing Enter — the browser was re-clicking the focused delete button by default after the modal closed; now suppressed while the modal is open.

Full changelog: v0.25.1...v0.26.0

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.26.0

Full Changelog: v0.25.1...v0.26.0

v0.25.1

Choose a tag to compare

@github-actions github-actions released this 01 Jun 14:32

What's Changed

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.25.1

Full Changelog: v0.25.0...v0.25.1

v0.25.0

Choose a tag to compare

@github-actions github-actions released this 29 May 10:35

What's Changed

  • Added collapsible sidebar (98a1c18)

Docker Images

This release is available as a Docker image:

docker pull ghcr.io/gamosoft/NoteDiscovery:0.25.0

Full Changelog: v0.24.3...v0.25.0