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
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
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
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
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
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
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