Commit Graph
100 Commits
Author SHA1 Message Date
mirivlad 7687f410c4 feat: schedule Todo native reminders 2026-07-14 02:47:05 +08:00
mirivlad 7e34a73835 build: publish portable plugin releases 2026-07-14 01:58:30 +08:00
mirivlad 47c1db9979 build: add portable plugin archives 2026-07-13 22:29:46 +08:00
mirivlad 22c842d5e3 build: add Windows plugin packages 2026-07-13 21:46:40 +08:00
mirivlad 1a15d57033 build: publish plugin releases to GitHub 2026-07-13 05:01:42 +08:00
mirivlad 483b6ba46e build: ignore generated plugin releases 2026-07-12 21:34:57 +08:00
mirivlad 226464f082 docs: prepare official plugins alpha release 2026-07-12 21:22:24 +08:00
mirivlad e93584c37c feat: stabilize activity sessions for journal review 2026-07-12 20:49:13 +08:00
mirivlad 50c4fc5e68 feat: open browser links and resolve filename collisions 2026-07-12 20:39:09 +08:00
mirivlad b45a56b09d feat: add browser inbox archive flow 2026-07-12 17:43:17 +08:00
mirivlad 0db9f896ce feat: read activity from append-only storage 2026-07-12 17:29:13 +08:00
mirivlad 69a1938ff3 fix: make browser inbox mutations durable 2026-07-11 23:30:43 +08:00
mirivlad fe97c5ddcc fix: fully localize platform diagnostics 2026-07-11 12:56:40 +08:00
mirivlad 1bc5ecfd16 fix: keep plugin localization live and complete 2026-07-11 12:48:15 +08:00
mirivlad 3dd0ec9f1f feat: localize official plugins in Russian 2026-07-11 12:42:37 +08:00
mirivlad 077de94e61 docs: document todo plugin behavior 2026-07-10 21:08:50 +08:00
mirivlad 16e1407440 feat: convert completed todos into journal entries 2026-07-10 20:49:15 +08:00
mirivlad 31c93bdf5b feat: add global and workspace todo plugin 2026-07-10 20:43:57 +08:00
mirivlad 92f596647f docs: clarify browser inbox domain bindings 2026-07-10 20:27:24 +08:00
mirivlad eb19cce2a4 feat: make browser inbox globally assignable 2026-07-10 20:19:08 +08:00
mirivlad c31ee7e0ce feat: add global trash plugin 2026-07-10 08:43:22 +08:00
mirivlad a76500418e feat: add deterministic work session candidates 2026-07-10 08:03:46 +08:00
mirivlad 396b77cf26 feat: add browser receiver pairing settings 2026-07-10 03:44:42 +08:00
mirivlad d6b8ab17f1 Polish official plugin workbench UI 2026-07-02 00:49:29 +08:00
mirivlad 0e079e8290 Give Files actions distinct icons 2026-07-01 19:20:41 +08:00
mirivlad 6a9d685d48 Add Files no-match clear action 2026-07-01 19:07:00 +08:00
mirivlad ddc8ffc711 Improve Files rename conflict message 2026-07-01 18:58:26 +08:00
mirivlad 45aac0d3b5 Add Files empty folder actions 2026-07-01 18:49:45 +08:00
mirivlad 32f2c1d6ab Expose Files icon categories 2026-07-01 18:34:47 +08:00
mirivlad 06ffbf9a6e Show Files create validation inline 2026-07-01 18:24:50 +08:00
mirivlad e333be9b9c Show Files rename validation inline 2026-07-01 07:59:27 +08:00
mirivlad dc74472f75 Revert "fix: P1 plugin contributions cleanup + P0 inbox workspace picker"
This reverts commit ba9386d535.
2026-07-01 07:44:22 +08:00
mirivlad ba9386d535 fix: P1 plugin contributions cleanup + P0 inbox workspace picker
Plugin contributions:
- Remove sidebarItems from Activity, Journal (only workspace tabs)
- Remove workspaceItems from Browser Inbox (only sidebar/global)
- Remove workspaceItems from Search (only Ctrl+K command)
- Remove sidebarItems from Platform Test (developer tool, not in sidebar)

Browser Inbox:
- Add workspace picker for captures without workspaceRootPath
- Add assignToWorkspace() with proper storage key migration
- Add loadWorkspacesList() via plugin API
- Add picker CSS styles
- Selections now get same workspace assignment + conversion flow

Fixes P0 issues: captures and selections without workspace assignment
now have clear path to conversion (assign → convert)
2026-07-01 04:15:28 +08:00
mirivlad f34b8a77fc Add Files escape selection clearing 2026-07-01 03:18:23 +08:00
mirivlad 9a59cd29e4 Keep search input focused while typing 2026-06-30 22:42:42 +08:00
mirivlad 9aa837e14d fix: style secrets scope select 2026-06-29 21:46:29 +08:00
mirivlad 962a345ddc feat: improve secrets management UI 2026-06-29 21:42:38 +08:00
mirivlad d32c2ceec6 feat: open secret links from editor 2026-06-29 20:48:57 +08:00
mirivlad 81c09a2df0 feat: add secrets plugin 2026-06-29 20:42:25 +08:00
mirivlad 607535358c feat: add journal worklog plugin 2026-06-29 04:46:25 +08:00
mirivlad 018dacc805 feat: suggest worklogs from activity 2026-06-29 04:40:29 +08:00
mirivlad 5011ddf89c feat: persist search index and run providers 2026-06-29 04:31:21 +08:00
mirivlad 60909d3e46 feat: mount sync status bar component 2026-06-29 04:24:24 +08:00
mirivlad efaeed7bcb feat: show sync conflict details 2026-06-29 03:38:03 +08:00
mirivlad a4d4e5ed0e feat: show persisted sync errors 2026-06-29 03:23:45 +08:00
mirivlad f0c7b31c9e feat: render inline image previews 2026-06-29 03:16:16 +08:00
mirivlad 7b249fcf48 feat: refresh files and notes on file events 2026-06-28 22:57:09 +08:00
mirivlad 914c8a7204 feat: restore files from trash view 2026-06-28 22:19:41 +08:00
mirivlad 4e6188e7cf fix: style notes sort dropdown 2026-06-28 22:09:08 +08:00
mirivlad 67ac99c24d feat: show files trash metadata 2026-06-28 17:03:50 +08:00
mirivlad 10bc28cef7 fix: improve notes rename conflicts 2026-06-28 16:49:08 +08:00
mirivlad f2e837a776 feat: add notes list filtering 2026-06-28 16:45:43 +08:00
mirivlad 7a0964892b feat: record workspace lifecycle activity 2026-06-28 16:34:35 +08:00
mirivlad 48fe942028 feat: host file and note actions 2026-06-28 16:29:04 +08:00
mirivlad 3b7258ed3e fix: make activity view passive 2026-06-28 16:14:59 +08:00
mirivlad 8010d6c601 Show tagged global records in workspace views 2026-06-28 04:00:50 +08:00
mirivlad 4a1550acf6 Read legacy inbox and activity storage 2026-06-28 03:47:58 +08:00
mirivlad b4ef3b38b0 Scope inbox and activity by workspace 2026-06-28 03:35:35 +08:00
mirivlad 2c19dd2132 Expose inbox and activity as global views 2026-06-28 03:23:19 +08:00
mirivlad 47ae318094 Add baseline activity plugin 2026-06-28 03:04:00 +08:00
mirivlad 59e48d7ea4 Enhance vault search behavior 2026-06-28 02:50:19 +08:00
mirivlad e465658be7 Add official search plugin 2026-06-28 01:04:21 +08:00
mirivlad 20d1059edb Clean plugin dist before packaging 2026-06-28 00:06:40 +08:00
mirivlad a7aa176e67 Remove redundant Markdown preview provider 2026-06-27 23:58:30 +08:00
mirivlad ff805c28ad Add File preview plugin 2026-06-27 23:49:53 +08:00
mirivlad 950a7f3d8c Add Markdown preview plugin 2026-06-27 23:45:22 +08:00
mirivlad 9928094b77 Add browser inbox plugin 2026-06-27 19:07:37 +08:00
mirivlad 18b9dc0bca Add sync key reset action 2026-06-27 18:46:05 +08:00
mirivlad 5349973f04 Add Notes trash action 2026-06-27 13:37:11 +08:00
mirivlad 084580d3fd Use external open API in Files plugin 2026-06-27 13:34:16 +08:00
mirivlad bf21df14f1 Clarify notes plugin manifest 2026-06-27 12:56:27 +08:00
mirivlad 5f48c003db Add files external open fallback 2026-06-27 12:55:43 +08:00
mirivlad 92ac1f730b Avoid overview defaults in plugin demos 2026-06-27 12:46:18 +08:00
mirivlad fca7716e75 Keep files plugin note-neutral 2026-06-27 12:39:51 +08:00
mirivlad 39d8df339b Align official plugins with v2 runtime 2026-06-27 12:36:31 +08:00
mirivlad 321c8e58d1 feat: Notes plugin + Files improvements + Default editor wiki links
plugins/files:
- SVG icons for toolbar actions (iconButton helper)
- Multi-select cut/copy/paste (Ctrl+X/C/V)
- Mouse back/forward button navigation (history stack)
- Navigation history persisted per workspace (window.__filesHistoryByWorkspace)
- Context menu: icons, notes integration (Create Note, Open Overview)
- Drag-and-drop folder target fix

plugins/default-editor:
- Wiki links [[Title]] in notes context (renderInline with isNotesContext)
- Save/Read via Notes API when editorMode === 'notes-markdown'
- Internal link click handler (open note via api.request.open)

plugins/platform-test:
- Mouse Event Inspector card for debugging back/forward buttons

plugins/notes (new):
- Basic notes plugin scaffold (plugin.json + frontend entry)
- Contributes workspace item 'Notes'
2026-06-21 23:23:07 +08:00
mirivlad d3079be007 fix: Cut/copy/paste path consistency and folder cut support
- pasteEntry: source path now scoped for readText, relative for trash
- cutEntry: removed folder guard — folder cut via api.files.move
- copyEntry: hidden from context menu for folders (not supported)
- Clipboard object now carries isFolder flag
2026-06-20 20:23:02 +08:00
mirivlad 8f8f431d4d plugins(files): Feature 11 — Rename validation
- Invalid chars: \ / : * ? " < > | and control chars (0x00-0x1f)
- Invalid names: '.', '..', leading/trailing spaces, trailing dot
- Collision check via api.files.metadata before rename
- Special case for case-only difference
- Errors shown in renameInput.placeholder
2026-06-20 20:02:32 +08:00
mirivlad c3a14411ab plugins(files): Feature 10 — Navigation history
- History stack with Back/Forward (goBack/goForward)
- historyIndex + navigatingHistory flag for correct stack management
- Toolbar buttons: ← (back) and → (forward) before Up button
- Alt+Left / Alt+Right and Ctrl+[ / Ctrl+] keyboard shortcuts
- Future path trimmed on new navigation (forward state discarded)
- Duplicate paths not pushed to stack
- Refresh and direct loadEntries don't pollute history
2026-06-20 20:01:20 +08:00
mirivlad 4a0656cd09 plugins(files): Feature 9 — Rich file type icons
- Added FILE_ICONS lookup with SVG paths for 15 categories
- Added EXT_MAP with 70+ extension-to-category mappings
- Images, video, audio, archives, PDFs get distinct icons
- Documents, spreadsheets, presentations get office-style icons
- Code files (JS/Python/Go/Rust/C/etc.) get a dedicated code icon
- Database, font, config files also get proper icons
- Existing behavior preserved: folder, markdown, json->{ }, generic
- fileIcon simplified to use lookup tables
2026-06-20 19:59:12 +08:00
mirivlad 194b68890b plugins(files): Feature 8 — Keyboard navigation
- ArrowUp/Down: move selection by one item
- Shift+ArrowUp/Down: extend selection range
- Ctrl+ArrowUp/Down: scroll viewport without changing selection
- Home/End: jump to first/last item (Shift to extend)
- PageUp/PageDown: jump by one viewport height
- All navigation keys get preventDefault()
- Existing Enter/Delete/F2/Ctrl+A preserved
2026-06-20 19:56:40 +08:00
mirivlad e5c63576d0 plugins(files): Feature 7 — Drag-and-Drop
- Items are draggable (draggable='true')
- Multi-file drag from selection (selectedPaths)
- Drop on folder moves files via api.files.move()
- Visual feedback: .files-dragging (opacity) + .files-drag-over (dashed outline)
- No-op when source === target folder
2026-06-20 19:55:20 +08:00
mirivlad e74499a329 plugins(files): Feature 6 — Multi-select
- Ctrl+click: toggle single file selection
- Shift+click: range select from last clicked to current
- Ctrl+A: select all visible entries
- Click on empty space: deselect all
- Bulk trash: delete all selected files via Promise.allSettled
- Open/Rename disabled when multiple selected; Trash enabled for bulk
- Refactored: selectedPath (string) → selectedPaths (hash map)
2026-06-20 19:51:13 +08:00
mirivlad 281614e1b4 plugins(files): Feature 5 — Cut/Copy/Paste
- pasteEntry: reads clipboard, copies file with collision resolution,
  handles 'cut' action (trashe source + clear clipboard)
- Paste toolbar button: disabled when clipboard empty, enabled after cut/copy
- Paste in context menu: shown on empty-space right-click when clipboard
  has content
- Folder guard: cut/copy for folders logs not-supported and skips
- updateButtons() toggles paste button state on cut/copy
2026-06-20 19:48:53 +08:00
mirivlad b5d6694afa plugins(files): fix document event listener leak in context menu cleanup 2026-06-20 19:47:09 +08:00
mirivlad 2ff75c4dca plugins(files): context menu, confirm modal, duplicate with collision handling
- Feature 1: Right-click context menu with actions (Open, Rename, Duplicate,
  Cut, Copy, Trash) and empty-space shortcut for new files
- Feature 3: Custom confirmModal instead of window.confirm(), styled overlay
  + modal with danger mode for trash operations
- Feature 4: Duplicate with smart collision resolution — finds first free
  name (copy), (copy 2)... up to 100 attempts using api.files.metadata()
2026-06-20 19:43:58 +08:00
mirivlad 7567e38c4f plugins: files explorer and default editor improvements
- Files plugin: richer file list, breadcrumbs, toolbar, sorting,
  filter, rename/trash, row actions
- Default Editor: line numbers, markdown toolbar, Edit/Preview/Split,
  reload/revert
- Files plugin.json: update manifest
2026-06-20 19:21:24 +08:00
mirivlad 695c1c83d0 fix: rewrite sync settings UI with dark theme inputs, add auto-sync and interval settings 2026-06-20 03:39:04 +08:00
mirivlad 95aa600704 fix: sanitize sync error messages in frontend, limit displayed length 2026-06-20 03:20:26 +08:00
mirivlad ef2c8c76c4 fix: use api.backend.call() instead of broken wailsCall, fix styling
- Replace direct window['go']['main']['App'] access with api.backend.call()
- Use hardcoded colors matching PluginManager modal theme (#16213e, #0f3460, etc.)
- Labels above inputs, full-width inputs, proper form layout
- Add explicit btn/modal styles instead of relying on CSS variables
2026-06-20 03:02:34 +08:00
mirivlad bb0811a60c test: add sync plugin E2E tests 2026-06-20 02:39:36 +08:00
mirivlad 589f98011d feat: build sync plugin frontend 2026-06-20 02:37:32 +08:00
mirivlad 9dd93f3685 feat: implement SyncStatusBar component 2026-06-20 02:35:18 +08:00
mirivlad 931bc6bf29 feat: implement SyncSettings component 2026-06-20 02:32:23 +08:00
mirivlad 6fb16442cb feat: create sync plugin structure 2026-06-20 02:28:15 +08:00
mirivlad 12d491a786 fix: scope files plugin to workspace folders 2026-06-19 23:37:10 +08:00
mirivlad 1d2190fc6c Add platform-test diagnostic open provider 2026-06-19 07:52:04 +08:00
mirivlad 0cc4552506 fix(platform-test): replace emoji icons with SVG icon key
- plugin.json: all emoji icons replaced with "flask" (matches Icon.svelte name)
- statusBar label: "🧪 All Tests Pass" → "[OK] All Tests Pass"
- frontend/src/index.js: emoji in header replaced with '◉' circle
2026-06-17 19:02:58 +08:00
mirivlad 3751f52055 fix(platform-test): badge div call syntax
- badgeRow was created with 3rd arg to div(className, children) which was ignored
- Fix: div('', [badge]) wraps badge properly so Frontend Bundle Loaded text renders
2026-06-17 18:51:20 +08:00
mirivlad 7a1926e295 feat: platform-test frontend bundle with VerstakPluginRegister contract
- DiagnosticsPanel + PlatformTestSettings components
- VerstakPluginRegister contract (mount/unmount, VerstakPluginAPI)
- Shared dark-theme stylesheet (style.css)
2026-06-17 17:40:01 +08:00