mirivlad
|
581e6b27d8
|
docs: document public alpha setup
|
2026-07-13 03:57:58 +08:00 |
mirivlad
|
bcf49ed32c
|
feat: persist passive browser activity batches
|
2026-07-12 17:29:07 +08:00 |
mirivlad
|
39052ffe39
|
feat: add canonical hostname normalization
|
2026-07-12 17:16:53 +08:00 |
mirivlad
|
e1a6b2af64
|
feat: publish workspace trash lifecycle
|
2026-07-12 17:11:00 +08:00 |
mirivlad
|
5280d245ee
|
feat: add durable workspace identities
|
2026-07-12 17:06:34 +08:00 |
mirivlad
|
477b372110
|
fix: persist browser captures atomically
|
2026-07-11 23:30:38 +08:00 |
mirivlad
|
8b1151e03a
|
feat: load declared plugin locale catalogs
|
2026-07-11 02:02:47 +08:00 |
mirivlad
|
15f1f413d0
|
feat: persist desktop language preference
|
2026-07-11 02:00:10 +08:00 |
mirivlad
|
e412cfc45a
|
feat: add workspace templates and tab visibility
|
2026-07-10 21:32:48 +08:00 |
mirivlad
|
8dafde4519
|
feat: scope overview browser captures by workspace
|
2026-07-10 20:27:58 +08:00 |
mirivlad
|
8445ea11db
|
feat: support permanent vault trash deletion
|
2026-07-10 08:31:20 +08:00 |
mirivlad
|
a323710a6f
|
fix: resolve plugin lifecycle dependencies deterministically
|
2026-07-10 04:03:08 +08:00 |
mirivlad
|
0f293640f9
|
feat: require paired browser receiver
|
2026-07-10 03:37:12 +08:00 |
mirivlad
|
89c261824f
|
fix: bound browser capture ingress
|
2026-07-10 03:29:51 +08:00 |
mirivlad
|
18da09e06b
|
fix: bind sync state to active vault
|
2026-07-10 03:13:04 +08:00 |
mirivlad
|
4bb9e84c35
|
feat: harden secret unlock and deletion
|
2026-06-29 21:42:10 +08:00 |
mirivlad
|
63c2c1314f
|
test: cover secret workbench resources
|
2026-06-29 20:45:03 +08:00 |
mirivlad
|
56c685212b
|
feat: expose scoped secret store API
|
2026-06-29 20:36:45 +08:00 |
mirivlad
|
7a7b3c7a3e
|
feat: add encrypted local secret store
|
2026-06-29 20:12:59 +08:00 |
mirivlad
|
fe91784a8e
|
feat: add bounded binary file writes
|
2026-06-29 10:12:26 +08:00 |
mirivlad
|
df4538532f
|
feat: accept browser file captures
|
2026-06-29 09:57:21 +08:00 |
mirivlad
|
2cbf542b13
|
feat: require token for paired browser receiver
|
2026-06-29 04:52:19 +08:00 |
mirivlad
|
9f3448c1ea
|
feat: retry transient sync requests
|
2026-06-29 03:30:10 +08:00 |
mirivlad
|
57677d1b1b
|
feat: add bounded file byte reads
|
2026-06-29 03:16:16 +08:00 |
mirivlad
|
1d521251a2
|
feat: watch vault file changes
|
2026-06-28 22:53:27 +08:00 |
mirivlad
|
cc0c050985
|
feat: restore files from trash
|
2026-06-28 22:18:44 +08:00 |
mirivlad
|
e5bdaec0aa
|
feat: expose file trash metadata
|
2026-06-28 17:03:12 +08:00 |
mirivlad
|
1f1001108b
|
feat: expose action contributions to plugins
|
2026-06-28 16:28:33 +08:00 |
mirivlad
|
9729b432d6
|
feat: host activity providers
|
2026-06-28 16:14:59 +08:00 |
mirivlad
|
93597a2c45
|
Tag browser captures with current workspace
|
2026-06-28 04:00:50 +08:00 |
mirivlad
|
a2791c494f
|
Add browser inbox receiver
|
2026-06-27 18:39:01 +08:00 |
mirivlad
|
fb68c54409
|
Route open providers by request mode
|
2026-06-27 13:49:09 +08:00 |
mirivlad
|
173cc93258
|
Add public external file open API
|
2026-06-27 13:30:31 +08:00 |
mirivlad
|
6cc37972d1
|
Add status bar contribution host
|
2026-06-27 13:21:22 +08:00 |
mirivlad
|
28a4e10e79
|
Remove core notes service
|
2026-06-27 12:44:02 +08:00 |
mirivlad
|
24444a8588
|
Refine v2 plugin API and sync flow
|
2026-06-27 12:36:31 +08:00 |
mirivlad
|
03175aa46d
|
feat: Notes core service + Notes API + router auto-detect notes context
- Add internal/core/notes/ service (Service, Layout, Normalize, tests)
- Register verstak/core/notes/v1 capability
- Inject NotesService into App, expose 8 Notes API endpoints
(CreateNote, RenameNote, ReadNote, SaveNote, EnsureOverview,
ListNotes, SearchNotes, NormalizeNoteTitle)
- Router: auto-detect Notes context via path (IsInsideNotes)
- PluginCard: show workspaceItems contribution count
- Regenerate Wails bindings (App.d.ts, App.js, models.ts with notes.NoteInfo)
- Fix .gitignore pattern for e2e-results/
|
2026-06-21 23:22:36 +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
|
4de5a74a55
|
fix: sanitize sync error messages, detect non-sync servers, add health check in TestAuth
|
2026-06-20 03:20:25 +08:00 |
mirivlad
|
ed69746332
|
feat: add sync backend methods
|
2026-06-20 02:25:25 +08:00 |
mirivlad
|
5c979174f1
|
fix: polish workspace files and editor shell
|
2026-06-19 23:37:10 +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
|
67345a194a
|
fix: vault/workspace lifecycle — CreateVault creates workspace, SetCurrentVault loads workspace, ReloadPlugins keeps workspace capability, recursive tree rendering
|
2026-06-17 14:26:49 +08:00 |
mirivlad
|
5c9ae7f93b
|
feat: add workspace/cases core capability
|
2026-06-17 12:22:52 +08:00 |
mirivlad
|
6eecf5d005
|
fix: OpenVault now looks for vault.json inside VerstakVault/ subdirectory
|
2026-06-17 10:10:39 +08:00 |
mirivlad
|
dd199f38ee
|
fix: remove legacy config migration — new Verstak starts clean
|
2026-06-17 08:56:17 +08:00 |
mirivlad
|
e9758ec1b5
|
feat: add legacy config migration + test
|
2026-06-17 08:23:25 +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 |