mirivlad
|
6ed6df311a
|
Implement milestone 6b workbench routing skeleton
|
2026-06-19 07:51:57 +08:00 |
mirivlad
|
05ef1449bc
|
feat: milestone 5b — frontend bundle host + VerstakPluginAPI stub
- Bundle contract: window.VerstakPluginRegister(id, {components: {...}})
- PluginBundleHost.svelte: loads bundle via GetPluginAssetContent, mounts components
- VerstakPluginAPI.js: restricted API (capabilities, events, settings, commands — all stub)
- ViewContainer: PluginBundleHost replaces placeholder when frontend bundle exists
- PluginManager: settings panel via PluginBundleHost (removed hardcoded form)
- Backend: GetPluginFrontendInfo, GetPluginAssetContent with path security
- Security: reject absolute paths, path traversal, escape from plugin root
- Error boundary: bundle load/execute/mount errors show fallback, not crash
- Tests: 11 backend tests (asset API), frontend bundle checks in smoke
- Docs: bundle contract, VerstakPluginAPI, security constraints
|
2026-06-17 17:39:50 +08:00 |
mirivlad
|
a96ffb5801
|
chore: split build.sh and update-and-build-all.sh
- build.sh: deterministic local-only build, fail-fast, no git pull
- update-and-build-all.sh: dev helper, pulls all repos, builds official plugins, then builds desktop
- Docs: added Build Scripts section explaining the difference
|
2026-06-17 17:13:14 +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
|
5fa2c0ddf9
|
docs: add workspace capability documentation
|
2026-06-17 12:24:12 +08:00 |
mirivlad
|
ca089a82e9
|
docs: deduplicate sections, add UI layout and milestone 4b
|
2026-06-17 07:33:36 +08:00 |
mirivlad
|
6202157cbf
|
docs: update PLUGIN_RUNTIME.md with app settings, vault plugin state, first run flow
|
2026-06-17 04:22:16 +08:00 |
mirivlad
|
c8d2560bb2
|
docs: update plugin runtime doc with app settings + vault plugin state
|
2026-06-17 03:40:05 +08:00 |
mirivlad
|
fa52a0bfc3
|
docs: update plugin runtime for vault capability
|
2026-06-16 20:43:55 +08:00 |
mirivlad
|
b9e08f7c9d
|
docs: add plugin runtime documentation
|
2026-06-16 17:43:59 +08:00 |