mirivlad
7f0cc308c2
feat: add Russian desktop localization
2026-07-11 12:50:00 +08:00
mirivlad
5b4c792de5
Polish desktop workbench UI
2026-07-02 00:49:29 +08:00
mirivlad
167d593245
Revert "fix: P1 shell tooltip fixes + Today routing + workspaces API"
...
This reverts commit 9d06b164d3 .
2026-07-01 07:44:28 +08:00
mirivlad
9d06b164d3
fix: P1 shell tooltip fixes + Today routing + workspaces API
...
Shell:
- WorkspaceHost: change tooltip from pluginId to human-readable title
- StatusBar: replace pluginId tooltips with label or id (3 occurrences)
- App: startup routing to Today view, sidebar Today nav item
- Sidebar: add Today button in Overview section
- TodaySurface: separate global vs workspace data (no fallthrough)
Plugin API:
- Add workspaces.list() method wrapping App.ListWorkspaces()
(needed by browser-inbox workspace picker)
2026-07-01 04:15:35 +08:00
mirivlad
80e53ff252
Improve workspace search and responsive shell
2026-07-01 02:46:40 +08:00
mirivlad
268e79d2f0
Improve workspace UX flows
2026-06-30 17:38:18 +08:00
mirivlad
46f754cc2d
feat: workspace routing, GlobalSearch, and shell refinements
...
- Add workspace-aware startup routing (openDefaultWorkspaceRoute)
- Add GlobalSearch component and workspace-empty state
- Refactor Sidebar, StatusBar, WorkspaceTree, VaultSelection
- Update PluginCard/PluginManager UI
- Extend e2e coverage (ux-p0, ux-followup, helpers)
- Add ListWorkspaces/SetCurrentWorkspace backend bindings
2026-06-30 12:32:04 +08:00
mirivlad
6cc37972d1
Add status bar contribution host
2026-06-27 13:21:22 +08:00
mirivlad
7630a31286
Add command palette host
2026-06-27 13:13:15 +08:00
mirivlad
24444a8588
Refine v2 plugin API and sync flow
2026-06-27 12:36:31 +08:00
mirivlad
0b6b0d0926
fix: workbench 'back' blocked, workspace breadcrumb-up only when btn active
...
- onNavigateBack/Forward now skip entirely when currentView === 'workbench'
(user relies on close button, not mouse back)
- onNavigateBack inside workspace checks upBtn.disabled before clicking —
in root folder (no currentPath) button exists but disabled, so navigateBack
falls through to navigationStack for cross-view navigation
- mouseHistoryDirection and keyHistoryDirection also block 'workbench' to
prevent bypass via pointerdown/mousedown listeners
2026-06-21 16:25:45 +08:00
mirivlad
b4e66c9779
fix: mouse navigation — redirect workspace back/forward to Files buttons, remove xinput monitor
...
- onNavigateBack/Forward now check for currentView === 'workspace' first
and delegate to Files plugin's up/forward buttons (breadcrumb/Fwd nav)
- Fall back to navigationStack for cross-view navigation
- Removed mouse_monitor.go (xinput test-xi2) — causes phantom X windows,
superseded by GTK-level vendor patch
- Removed startMouseMonitor call from App.Startup
2026-06-21 16:18:45 +08:00
mirivlad
d644c5bb79
feat: mouse back/forward navigation + history stack
...
- C patch (vendor/.../window.c): intercept GDK button 8/9 → dispatch
CustomEvent('verstak:navigate-back'/'verstak:navigate-forward')
- App.svelte: navigation stack (snapshot-based history), alt+arrows,
mouse button back/forward handlers, onNavigateBack/Forward
- WorkbenchHost: close via navigate-back event
- WorkspaceHost: workspace tab bar + tool panels
- wails-mock: full navigation, sidebar, vau...
2026-06-21 16:01:21 +08:00
mirivlad
0ac473d720
core: Milestone 7b — Files explorer and Default Editor improvements
...
- Files plugin: richer explorer with breadcrumbs, selection, toolbar actions,
rename/trash, filter, sorting, hidden/reserved entries filtered
- Default Editor: line numbers, Ctrl+S, markdown toolbar, Edit/Preview/Split,
markdown preview, Reload/Revert
- E2E tests: 39 passed for files + editor
- Workspace model: correction, naming alignment, compatibility wrappers
- Updated docs: NOTES_FILES_PLUGIN_PLAN.md, PLUGIN_RUNTIME.md
2026-06-20 19:20:13 +08:00
mirivlad
a6412fa070
feat: milestones 6b-fix through 6e — default-editor, files plugin, workspace host, workspaceItems contribution
...
- Fix PluginCard openProviders display
- Add default-editor plugin (text/markdown/notes-context)
- Add files plugin with workspaceItems placement
- Add workspaceItems contribution point (Go + API + mock + SDK)
- Add WorkspaceHost component for workspace area
- WorkspaceTree dispatches selection event
- Fix default-editor layout to fill container
- Fix PluginCard unsafe .length access
- Add E2E tests: 34/34 pass
- Add bundle execution check to official-plugins check.sh
- Update docs: PLUGIN_RUNTIME, DEV_PLUGINS, MILESTONE_6B/6C/6D plans
2026-06-19 16:42:01 +08:00
mirivlad
6ed6df311a
Implement milestone 6b workbench routing skeleton
2026-06-19 07:51:57 +08:00
mirivlad
86eeadd2a9
feat: milestone 5a — frontend plugin host, contribution lifecycle, UI shell
...
- Contribution Registry: ListByPoint, idempotent Register (Unregister-before-add)
- Flat ContributionSummary types for frontend (no nested .item.)
- Sidebar.svelte: items from ContributionRegistry, sort by position, error boundary
- ViewContainer.svelte: declarative placeholder host with error boundary
- PluginManager.svelte: settings panels from registry, knoppka only with settingsPanel
- PluginCard.svelte: settingsPanels prop, disabled state for Settings button
- Error boundary: ViewContainer + PluginManager catch errors, shell stays stable
- ReloadPlugins: Unregister before Register contributions (no duplicates)
- Smoke: -test-contributions flag, enable/disable/reload lifecycle verification
- Build: global_update() — pull all repos, build official plugins, install to desktop
2026-06-17 17:07:52 +08:00
mirivlad
7530e21dfd
feat: ui completion — VaultSelection, Sidebar navigation, layout fixes
2026-06-17 07:28:00 +08:00
mirivlad
a6f9e85f13
feat(m4b): add vault selection UI, enable/disable toggle, missing-installed UI
...
- Add VaultSelection.svelte: first-run vault create/open/recent UI
- Update App.svelte: vault check on startup, show VaultSelection when needed
- Update PluginCard.svelte: enable/disable buttons, vault state awareness
- Update PluginManager.svelte: enable/disable handlers, missing-installed section
- Add SetCurrentVault Wails API binding
- Add RecordDesiredPlugin Wails API binding
- Record desired plugins on discovery (only when vault open)
- Fix addRecent: remove duplicate sort, clean up unused import
- Update smoke-platform.sh: enable/disable lifecycle test
- Add runEnableDisableTest: vault create/open, disable/enable, plugins.json verify
2026-06-17 04:19:13 +08:00
mirivlad
ca7eb79a40
feat: add plugin UI host (sidebar, view container, settings panel) + storage API
...
- internal/core/storage/api.go — plugin namespace JSON storage (settings/data/cache)
- internal/core/storage/api_test.go — 8 tests (write/read, path traversal, atomic)
- internal/api/app.go — Wails bindings for storage (Read/WritePluginSettings, Read/WritePluginDataJSON)
- main.go — initialize storage service, pass to NewApp
- Sidebar.svelte — plugin sidebar items from contributions (filtered by ui.register)
- ViewContainer.svelte — plugin view host with degraded status
- PluginCard.svelte — Settings button + permission warnings
- PluginManager.svelte — settings panel modal with test form
- App.svelte — integrated sidebar + view container layout
2026-06-17 03:01:37 +08:00
mirivlad
cf0a962b46
feat: plugin discovery, capability/contribution/permission registries, Plugin Manager UI
2026-06-16 12:00:43 +08:00