Commit graph

22 commits

Author SHA1 Message Date
igor
175cf98038 add backup delete action and explicit compression modes 2026-05-20 23:13:18 +12:00
igor
d722a36895 hide view for non-previewable resources
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-05-20 14:56:00 +12:00
igor
1418cd426a show pg version in admin db compression section; hide toast compression UI on pg < 14 2026-05-20 13:12:26 +12:00
igor
2dd5e1c7bd option DB compression to lz4 2026-05-20 12:03:11 +12:00
igor
4fe91bbbf4 improve resource viewer: inline text, per-type preview, pinch-zoom on iOS
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-05-19 21:51:53 +12:00
igor
7dfe368194 recovery-rlimit 2026-05-19 13:52:13 +12:00
igor
5e0482da01 rate-limit login 2026-05-19 12:57:19 +12:00
igor
d96ea802e9 fix note creation on proxied dev server 2026-05-18 21:50:14 +12:00
igor
1ca6f619a9 Add backup compression presets 2026-05-18 19:59:28 +12:00
igor
a36949aab5 Add recovery backups and fix theme/title edge cases 2026-05-18 19:34:06 +12:00
igor
a70efdd296 Fix rendered-mode image uploads and save state
Some checks failed
Build and push Joplock image / build-and-push (push) Has been cancelled
2026-05-15 15:27:02 +12:00
igor
0698bbd78e Unify note title sanitization
Use the shared title sanitizer for both SSR and client-side title editing
so note titles are cleaned by one function. Also sanitize note titles on
create in the fragments route and add a regression test for formatted
titles.
2026-05-01 19:38:25 +12:00
igor
3aff615878 Add vault/notebook encryption: client-side AES-256-GCM E2EE with SVG lock icons, mobile vault support, startup resume gate, and re-entry guard
Some checks failed
Build and push Joplock image / build-and-push (push) Has been cancelled
2026-04-28 22:25:46 +12:00
igor
65b0c9c463 improve auto logoff 2026-04-27 22:51:54 +12:00
igor
22a40f5393 fix trash
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-04-27 20:35:02 +12:00
igor
b735224377 Refactor route rendering and harden editor session handling
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
2026-04-27 00:24:23 +12:00
igor
909484b1ae Fix All Notes showing empty: normalize __all_notes__ to __all__ in folder-notes endpoint 2026-04-26 17:04:10 +12:00
igor
8e83712353 Revert resource caching to no-store for maximum security 2026-04-26 16:47:40 +12:00
igor
8adc4f2ab9 Cache resources with immutable header to eliminate repeated image fetches from DB 2026-04-26 16:43:02 +12:00
igor
01eccb973a implement phase 6: search pagination + pg_trgm trigram index
- ensureIndexes: CREATE EXTENSION pg_trgm + GIN index on extracted title+body
- searchNotes: add limit/offset params (default 50/0)
- /fragments/search: read offset param, detect hasMore, paginate
- /fragments/mobile/search: same, target #mobile-search-results
- searchResultsFragment: Load more button when hasMore (hx-swap=beforeend)
- mobileSearchFragment: Load more button when hasMore
- Tests: 137/137 passing (8 new search pagination tests)
2026-04-26 12:38:09 +12:00
igor
fd468fe3e3 implement lazy folder expansion and paginated note loading for large databases
- Add DB index on (owner_id, jop_type, jop_parent_id, jop_updated_time DESC)
- New folderNoteCountsByUserId query: GROUP BY folder, no row data fetched
- New noteHeadersByFolder query: paginated per folder (LIMIT 100)
- navData() now fetches only folders + counts (no note rows on page load)
- navigationFragment: lazy mode renders empty note lists, lazy-loaded on expand
- toggleNavFolder / initNavPanel: htmx fetch on first expand, data-loaded guard
- Add /fragments/folder-notes endpoint for lazy per-folder note pages
- Add folderNotesPageFragment with Load more button for pagination
- Mobile: folders use counts Map, notes use paginated noteHeadersByFolder
- Tests: 129/129 passing
2026-04-26 12:22:05 +12:00
igor
d606ecf60f fix mobile resume startup and editor targeting 2026-04-25 20:51:37 +12:00