Releases: gamosoft/NoteDiscovery
Release list
v0.30.1
What's Changed
- Feature/interactive checkboxes (78b120a): Now you can just click a task (when shown as checkbox) to automatically toggle it done/undone.
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.30.1Full Changelog: v0.30.0...v0.30.1
v0.30.0
What's Changed
- Browser libraries (Tailwind, marked, Mermaid, MathJax, highlight.js and the rest) are now served by NoteDiscovery itself instead of public CDNs, so the app makes no third-party requests and works on isolated or locked-down networks. Shared note pages and print preview use the local copies too; downloadable HTML exports still reference CDNs so they keep working outside your server.
- No more Ctrl+F5 after an update: scripts are stamped with the release version and pages revalidate, so a normal reload always picks up the new version.
- Responses are gzip compressed, and unchanged pages now return a small 304 instead of the full document.
- Fixed Mermaid diagrams intermittently failing to render on first load.
- Fixed the PikaPods button in Settings loading its image from an external host.
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.30.0Full Changelog: v0.29.1...v0.30.0
v0.29.1
What's Changed
Fixes
- Share links now always use the scheme you're browsing with, instead of falling back to http:// behind a reverse proxy [#274]
- Raised rate limits on autosave and the PWA manifest/service worker, which could be hit during normal editing on shared deployments
Docs
- Documented FORWARDED_ALLOW_IPS for reverse-proxy setups, so the backend can see the real scheme and client IP
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.29.1Full Changelog: v0.29.0...v0.29.1
v0.29.0
What's Changed
- Smart scroll sync: opt-in toggle in Settings (off by default) that aligns headings, images, tables, code fences, horizontal rules and block math between the editor and preview panes, instead of scrolling both by percentage.
- Drag & drop Markdown files: dropping a .md file from your file system saves it next to the current note and inserts an inline link at the drop point. Size capped by the new UPLOAD_MAX_NOTE_MB (default 10 MB).
- Drop target highlighting: visual indicator while dragging files in from the file system.
- APP_NAME environment variable: override the app name shown in the UI, login page, browser title, PWA manifest. Thanks to @nopoz (#268).
- GHCR pull-count badge: README badge fed by a new daily workflow that publishes the count to a stats branch.
- Fixed localization to have the allowed formats as a constant (no need to translate them)
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.29.0Full Changelog: v0.28.4...v0.29.0
v0.28.4
What's Changed
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.4Full Changelog: v0.28.3...v0.28.4
v0.28.3
What's Changed
- #252 Added shortcuts to switch/cycle between pane visibility
- #255 Added support for specifying custom image sizes (like Obsidian).
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.3Full Changelog: v0.28.2...v0.28.3
v0.28.2
What's Changed
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.2Full Changelog: v0.28.1...v0.28.2
v0.28.1
What's Changed
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.28.1Full Changelog: v0.28.0...v0.28.1
v0.28.0 - The big-vault release!!!
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/graphfrom 4s+ to under 200ms;/api/statsfrom 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/notesrequest 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/notestakes 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 toJegyzetek betΓΆltΓ©seafter @Adv3n10 feedback. π
Internals
-
Unified logging: Every startup and runtime message now goes through Python's
loggingat the right level. Output is uniform with uvicorn's ownINFO:/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 indocumentation/API.md. -
run.pybanner: 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 ownINFO: 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_DIRandPLUGINS_DIRnow overrideconfig.yaml, matching the precedence pattern already used byPORT,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_statsplugin rewrite: Dropped unusedstats_history,format_stats,get_stats,get_total_stats. Per-save output is now a single line through the unified logger instead of multi-lineprint()with emojis:INFO: note_stats 20260630.md | 456 words | 29 sentences | ~2m read | 36 lines | 10 listsNo API change for the plugin itself.
-
Media uploads and moves invalidate the scan cache: Brings them in line with note mutations so
/api/notesand/api/statsreflect 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-networkforce-directed layout is the dominant cost regardless of how fast/api/graphreturns. 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.0Full Changelog: v0.27.3...v0.28.0
v0.27.3
What's Changed
- Callouts β Added GitHub/Obsidian-style callouts (
> [!NOTE],> [!TIP],> [!IMPORTANT],> [!WARNING],> [!CAUTION]). Rendered in the preview, HTML exports, and shared notes.
- 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.3Full Changelog: v0.27.2...v0.27.3