Skip to content

Releases: perber/leafwiki

LeafWiki v0.11.4

Choose a tag to compare

@github-actions github-actions released this 08 Jul 12:16
9c73b54

📝 Changelog for v0.11.4

✨ Features

🐛 Bug Fixes

  • fix(editor): convert tables without cells during rich paste (#1286) (@perber)
  • fix(editor): reset editor store on unmount so rename isn't blocked after closing (#1283) (@perber)
  • fix: sidebar explorer/search shortcuts open a collapsed sidebar (#1267) (@mvanhorn )
  • fix(auth): stop login flash on logout, add external user-management link (#1268) (@perber)
  • fix(editor): update alt text on asset rename to fix stale Lightbox title (#1256) (@perber)
  • fix(ui): stop long asset filenames from overflowing the Asset Manager dialog (#1262) (@perber)
  • fix(ui): fix date-title button alignment in page dialogs (#1239) (@perber)

🧾 Documentation

🧰 Chores

LeafWiki v0.11.3

Choose a tag to compare

@github-actions github-actions released this 30 Jun 20:57
c010cf8

📝 Changelog for v0.11.3

✨ Features

🐛 Bug Fixes

  • fix(ui): fix editor 404 flash, data loss on resize, and add request cancellation (#1232) (@perber)
  • fix(ui): space mobile header logo (#1230) (@perber)
  • fix(preview): allow external images (#1229) (@perber)
  • fix(backup): resolve sync-divergence and harden remote re-init (#1226) (@perber)
  • fix(ui): eliminate double-blink when closing add-page dialog (#1224) (@perber)
  • fix(ui): improve syntax highlighting string color in light and dark mode (#1225) (@perber)
  • fix(auth): restore deep link after login (#1222) (@perber)
  • fix(ui): resync button margin (#1217) (@perber)
  • fix(ui): clarify shell highlighting (#1214) (@perber)
  • fix: address graceful shutdown lint (#1213) (@perber)
  • fix: add graceful shutdown (#1211) (@perber)
  • fix(editor): allow save without rewrite (#1208) (@perber)
  • fix(editor): preserve custom title property through UI edit cycle (#1189) (@perber)

🧰 Chores

  • chore: update vscode launch.json with enable-revison & enable-link-refactor (#1209) (@perber)

🔹 Other Changes

  • Add version info for --unix-socket option (#1207) (@perber)

LeafWiki v0.11.2

Choose a tag to compare

@github-actions github-actions released this 25 Jun 15:23
57baba7

📝 Changelog for v0.11.2

🐛 Bug Fixes

  • fix: ignore bash [[ ]] conditionals and disable single-dollar math (KaTeX) (#1203) (@perber)
  • fix: ignore wiki-link syntax inside code blocks (#1202) (@mvanhorn)

LeafWiki v0.11.1

Choose a tag to compare

@github-actions github-actions released this 22 Jun 22:29
de5d549

📝 Changelog for v0.11.1

✨ Features

  • feat(preview): register additional highlight.js languages (#1192) (@perber)

🐛 Bug Fixes

LeafWiki v0.11.0

Choose a tag to compare

@github-actions github-actions released this 20 Jun 16:12
c71a13b

🚀 Highlights

[[WikiLink]] Syntax

Pages can now be linked by title using [[Title]] syntax — no path needed. The editor offers autocomplete, the viewer renders them with live status, and ambiguous links open a disambiguation dialog. Links are automatically updated when pages are renamed or moved, and broken links are surfaced with inline tooltips.

With --enable-link-refactor, sub-pages with absolute Markdown links are automatically rewritten when a section is moved — keeping the wiki internally consistent without manual cleanup. [[WikiLink]] references are also updated when pages are renamed or moved.

Mobile Experience

A thorough overhaul of the mobile UI: streamlined editor toolbar, decluttered title bar, reduced topbar actions, a dedicated History Panel tab bar for revisions and details, and broad layout fixes across all major screens.

Auto-Save

Pages now save automatically while you type — no manual save required. A debounce window batches rapid keystrokes into a single write, and conflict detection prevents overwriting concurrent changes. A per-device toggle lets you disable auto-save on mobile.

With --enable-revision, auto-save becomes revision-aware: edits from the same session are grouped into a single revision, keeping history clean without losing any changes.

Keyboard Shortcuts Dialog

A new help dialog lists all available keyboard shortcuts, accessible from the toolbar (hidden for viewer-role users).

Nested YAML Frontmatter

Page properties now support dot-notation keys (e.g. author.name) that map directly to nested YAML structures.

Performance

Route components and the CodeMirror editor are now lazy-loaded and split into their own chunks, significantly reducing initial bundle size. The viewer and preview components load eagerly to eliminate render waterfalls on navigation. WikiLink lookups use O(1) index structures instead of tree-walks.

Further Improvements

  • Broken links section hidden for read-only users
  • Context-aware section texts for viewer-role users
  • Branding settings page localized
  • Global error boundary with navigation-aware auto-reset

📝 Changelog for v0.11.0

✨ Features

  • feat(importer): keep plain page wikilinks as native [[...]] syntax (#1163) (@perber)
  • feat(i18n): localize BrandingSettings page (#1176) (@perber)
  • feat(ui): add global ErrorBoundary with navigation-aware auto-reset (#1171) (@perber)
  • feat(ui): broken link tooltips + viewer role gating + toolbar fix (#1165) (@perber)
  • feat(properties): support nested YAML frontmatter via dot-notation keys (#1157) (@perber)
  • feat(perf): lazy-load route components and split CodeMirror into own chunk (#1156) (@perber)
  • feat(editor): add mobile auto-save toggle with i18n and cleanup fixes (#1152) (@perber)
  • feat(revisions): session coalescing for auto-save revisions (@perber)
  • feat(ui): add shortcuts help dialog (#1148) (@perber)
  • feat(search): i18n with Trans for result summary, remove dead loadingAvailableTags state (#1144) (@perber)
  • feat(links): hide broken links section for read-only users and i18n b… (#1140) (@perber)
  • feat(viewer): context-aware section texts for read-only users (#1139) (@perber)
  • feat(viewer): clear viewer state when navigating to edit mode (@perber)
  • feat(ui): History Panel mobile tab bar for Revisions/Details navigation (@perber)
  • feat(ui): declutter mobile editor titlebar (@perber)
  • feat(ui): reduce topbar action buttons to 2 visible on all screens (@perber)
  • feat(ui): mobile optimizations for editor toolbar, tree icons, and ToC button (@perber)
  • feat(ui): mobile optimizations for all major screens (@perber)
  • feat(wikilinks): ambiguous link backlinks, path-hint rewrite on move/rename (@perber)
  • feat(editor): add [[WikiLink]] autocomplete, i18n foundation for UI strings (#1127) (@perber)
  • feat(links): extract and resolve [[Title]] wiki-link syntax in link indexer (#1123) (@perber)
  • feat(ui): add [[Title]] wiki-link rendering and disambiguation dialog (#1120) (@perber)
  • feat(pages): add FindPagesByTitle and GET /api/pages/by-title endpoint (#1103) (@perber)
  • feat: add support info (#1115) (@perber)
  • feat: add git backup to remote repository (closes #996) (#1018) (@EduardSchwarzkopf)
  • feat(editor): add auto-save with debounce, conflict detection (#1089) (@perber)
  • feat(update): make update script more verbose (#1094) (@Hugo-Galley)

⚡ Performance

  • perf(ui): load PageViewer and MarkdownPreview eagerly to eliminate render waterfall (#1180) (@perber)
  • perf(wikilinks): replace tree-walk lookups with O(1) index structures (@perber)

🐛 Bug Fixes

  • fix(refactor): rewrite absolute links in sub-pages when moving a section (#1182) (@perber)
  • fix(editor): prevent Page404 flash when navigating to edit mode (#1181) (@perber)
  • fix(ui): prevent wide branding banner from pushing toolbar off screen on mobile (#1177) (@perber)
  • fix(ui): constrain branding logo to fit within header on mobile (#1175) (@perber)
  • fix(auth): use primary button + i18n for login form and toolbar (#1172) (@perber)
  • fix(toolbar): hide keyboard shortcuts dialog for viewer-role users (#1167) (@perber)
  • fix(toolbar): increase overflow dropdown width to prevent label wrapping (#1166) (@perber)
  • fix(links): prevent panic when page title equals path hint in RewriteWikiLinks (#1164) (@perber)
  • fix: set 0644 permissions on uploaded asset files (#1160) (@perber)
  • fix: strip WikiLinks from plain-text excerpts (@perber)
  • fix(revisions): multiple concurrency and stability fixes for session coalescing (@perber)
  • fix(wikilinks): ambiguous links use brand color instead of warning orange (#1143) (@perber)
  • fix(a11y): replace aria-hidden overlay div with semantic button (@perber)
  • fix(refactor): sync ambiguity guard between Preview and Apply (@perber)
  • fix(refactor): skip ambiguous sentinel refs in rename preview; UI polish (@perber)
  • fix(mermaid): rendering img tag in mermaid diagram (#1131) (#1134) (@perber)
  • fix(wikilinks): handle ambiguous links (#1128) (@perber)
  • fix(refactor): extend link refactoring to handle [[Title]] wiki-link syntax (#1126) (@perber)
  • fix(editor): stop unsaved dialog flicker (#1116) (@perber)
  • fix: sanitize search output (#1118) (@perber)
  • fix(ui): enable dialog close animation (#1102) (@perber)
  • fix(branding): validate file paths before deletion to prevent path traversal (#1090) (@perber)
  • fix(ui): replace dialog slide animation with subtle fade/scale (#1100) (@perber)
  • fix: help text to refresh-token-timeout (#1099) (@perber)
  • fix: add missing space before active class in toolbar toggle buttons (#1088) (@perber)
  • fix(auth): show --allow-insecure hint in HTTPS cookie errors (#1087) (@perber)
  • fix: escape site name in HTML template (#1085) (@imlonghao)

🧾 Documentation

  • docs: add operating modes section and sorting guide with screenshots (#1154) (@perber)
  • docs: update refresh token timeout to 168 hours (#1098) (@perber)
  • docs: add documentation for --disable-request-flag (#1082) (@perber)

🔧 Refactoring

  • refactor(backup): use time.Duration for backup interval end-to-end (#1150) (@perber)
  • refactor(wikilinks): always store [[Title]] links as sentinels (#1133) (@perber)

LeafWiki v0.10.2

Choose a tag to compare

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

📝 Changelog for v0.10.2

v0.10.2

This patch release contains a backported security fix for search result rendering. I also includes a dependency update.

🔒 Security

🧰 Chores

  • Bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1 @dependabot

LeafWiki v0.10.1

Choose a tag to compare

@github-actions github-actions released this 30 May 22:04
1f94222

📝 Changelog for v0.10.1

This patch release includes security fixes, minor bug fixes, and stability improvements. Please update to the latest version as soon as possible.

Security

  • fix(auth): harden user update authorization (#1081) (@perber)
  • fix(storage): harden asset and revision path handling (#1078) (@perber)

✨ Features

  • feat: add ui line wrap option to editor and position copy paste button in codeblocks (#1071) (@perber)
  • feat: update header spacing (#1070) (@perber)
  • feat: improve logging and allow disabling request logs (#1069) (@perber)
  • feat: fail on startup when --enable-http-remote-user is set without --trusted-proxy-ips (#1068) (@perber)
  • feat: add health endpoint at GET /api/health (#1065) (@perber)

🐛 Bug Fixes

  • fix(auth): harden user update authorization (#1079) (@perber)
  • fix: recover from corrupt SQLite database files on startup (#1077) (@perber)
  • fix(editor): keep preview heading sync stable (#1075) (@perber)
  • fix: GET /api/auth/me never returns 401 to avoid Basic Auth credential reset (#1067) (@perber)
  • fix: page scroll position on navigation (closes #1053) (#1059) (@perber)
  • fix: typo in readme (#1048) (@perber)

🧰 Chores

  • chore: bump the github-actions group with 10 updates (#1037) (@dependabot[bot])
  • chore: bump the npm-dependencies group in /ui/leafwiki-ui with 20 updates (#1038) (@dependabot[bot])

LeafWiki v0.10.0

Choose a tag to compare

@perber perber released this 25 May 18:25
9cc6ee6

📝 Changelog for HEAD

🌟 Highlights

  • New Tags and Properties support with Frontmatter integration for better structured content
  • Improved editor experience with better markdown insert tools, Search / Replace, and several keyboard and layout fixes
  • Better content navigation with Table of Contents, improved PageSelect, and Drag & Drop sorting
  • Stronger authentication flows with Proxy Auth, token refresh before expiry
  • Technical improvements including KaTeX support, dependency cleanup, and stronger supply chain security

✨ Features

🐛 Bug Fixes

  • fix(auth): refresh before token expiry (#1042) (@perber)
  • fix(ui): italic shortcut (#1039) (@perber)
  • fix(auth): await logout (#1029) (@perber)
  • fix(ui): reset metadata dirty state (#1027) (@perber)
  • fix(ui): improve editor and asset layouts (#1026) (@perber)
  • fix(ui): favicon is not displayed when changed in branding settings (#1023) (@perber)
  • fix(auth): resets basic auth credentials (#1017) (@perber)
  • fix(tags): keyboard regression after introducing Tags & Properties in page editor (#1016) (@perber)
  • fix(ui): improve tag suggestions & keyboard handling (#997) (@perber)
  • fix(ui): ToC hierarchy (#993) (@perber)
  • fix(ui): favicon initial html (#1025) (@perber)

🔧 Refactoring

  • refactor: remove tree dependency from TagsService and PropertiesService (#1022) (@perber)
  • refactor: search indexing via pagesave hook (#1019) (@perber)

🧪 Tests

🧰 Chores

  • chore: bump node from 95034e7 to 7c6af15 (#1033) (@dependabot[bot])
  • chore: bump alpine from 4d889c1 to 5b10f43 (#1034) (@dependabot[bot])
  • chore: bump golang from f44b851 to 91eda97 (#1036) (@dependabot[bot])
  • chore: bump golang.org/x/crypto in the go-dependencies group (#1035) (@dependabot[bot])
  • chore: bump github action to newer version (@perber)
  • chore: bump tailwindcss from 4.2.4 to 4.3.0 in /ui/leafwiki-ui (#1001) (@dependabot[bot])
  • chore: bump postcss from 8.5.12 to 8.5.15 in /ui/leafwiki-ui (#1005) (@dependabot[bot])
  • chore: bump @types/node from 25.7.0 to 25.9.1 in /e2e (#1006) (@dependabot[bot])
  • chore: bump eslint from 10.3.0 to 10.4.0 in /e2e (#1007) (@dependabot[bot])
  • chore: bump @tailwindcss/vite from 4.2.4 to 4.3.0 in /ui/leafwiki-ui (#1004) (@dependabot[bot])
  • chore: bump typescript-eslint from 8.59.3 to 8.59.4 in /e2e (#1008) (@dependabot[bot])
  • chore: bump @typescript-eslint/parser from 8.59.3 to 8.59.4 in /e2e (#1009) (@dependabot[bot])
  • chore: bump prettier from 3.8.1 to 3.8.3 in /ui/leafwiki-ui (#1002) (@dependabot[bot])
  • chore: bump @playwright/test from 1.59.1 to 1.60.0 in /e2e (#984) (@dependabot[bot])
  • chore: bump golang.org/x/crypto from 0.49.0 to 0.51.0 (#977) (@dependabot[bot])
  • chore: bump uuid from 11.1.0 to 14.0.0 in /ui/leafwiki-ui (#990) (@dependabot[bot])
  • chore: bump tailwind-merge from 3.5.0 to 3.6.0 in /ui/leafwiki-ui (#978) (@dependabot[bot])
  • chore: bump @types/node from 25.5.2 to 25.7.0 in /e2e (#985) (@dependabot[bot])
  • chore: bump mermaid from 11.14.0 to 11.15.0 in /ui/leafwiki-ui (#989) (@dependabot[bot])
  • chore: bump node from 25-alpine to 26-alpine (#982) (@dependabot[bot])
  • chore: bump globals from 17.4.0 to 17.6.0 in /ui/leafwiki-ui (#980) (@dependabot[bot])
  • chore: bump react-router-dom from 7.14.1 to 7.15.0 in /ui/leafwiki-ui (#976) (@dependabot[bot])
  • chore: bump @codemirror/autocomplete in /ui/leafwiki-ui (#981) (@dependabot[bot])
  • chore: bump typescript-eslint from 8.59.2 to 8.59.3 in /e2e (#983) (@dependabot[bot])
  • chore: bump modernc.org/sqlite from 1.50.0 to 1.50.1 (#975) (@dependabot[bot])
  • chore: bump @tailwindcss/vite from 4.2.3 to 4.2.4 in /ui/leafwiki-ui (#963) (@dependabot[bot])
  • chore: bump eslint from 10.2.1 to 10.3.0 in /e2e (#965) (@dependabot[bot])
  • chore: bump typescript-eslint from 8.59.1 to 8.59.2 in /e2e (#964) (@dependabot[bot])
  • chore: bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1 (#960) (@dependabot[bot])
  • chore: bump zustand from 5.0.11 to 5.0.13 in /ui/leafwiki-ui (#961) (@dependabot[bot])
  • chore: bump typescript from 6.0.2 to 6.0.3 in /ui/leafwiki-ui (#962) (@dependabot[bot])
  • chore: bump @typescript-eslint/parser from 8.59.1 to 8.59.2 in /e2e (#966) (@dependabot[bot])

🔹 Other Changes

  • security: harden supply chain across CI, Docker and dependencies (#1032) (@perber)
  • perf: eliminate redundant disk reads in pagesave effects (#1021) (@perber)

LeafWiki v0.9.2

Choose a tag to compare

@perber perber released this 05 May 13:03
428ce7b

📝 Changelog for v0.9.2

🐛 Bug Fixes

LeafWiki v0.9.1

Choose a tag to compare

@perber perber released this 04 May 19:23
216d212

📝 Changelog for v0.9.1

✨ Features

🐛 Bug Fixes

  • fix(revision): persist custom frontmatter (#956) (@perber)
  • fix(wiki): Treat UI content that looks like frontmatter as plain body text while keeping importer updates on the frontmatter-preserving path.(#943) (@perber)

🧰 Chores

  • chore: bump typescript-eslint from 8.59.0 to 8.59.1 in /e2e (#951) (@dependabot[bot])
  • chore: bump prettier from 3.8.1 to 3.8.3 in /e2e (#952) (@dependabot[bot])
  • chore: bump @tailwindcss/postcss from 4.2.3 to 4.2.4 in /ui/leafwiki-ui (#949) (@dependabot[bot])
  • chore: bump postcss from 8.5.8 to 8.5.12 in /ui/leafwiki-ui (#948) (@dependabot[bot])
  • chore: bump modernc.org/sqlite from 1.49.1 to 1.50.0 (#945) (@dependabot[bot])
  • chore: bump i18next from 26.0.7 to 26.0.8 in /ui/leafwiki-ui (#947) (@dependabot[bot])
  • chore: bump @typescript-eslint/eslint-plugin in /e2e (#953) (@dependabot[bot])