Commit Graph
43 Commits
Author SHA1 Message Date
t8y2 8897e12714 test: drop source-text assertion tests and merge locale checks 2026-09-23 22:10:06 +08:00
Jinpy aefecd3841 feat(plugins): add command and menu contributions with bottom dock 2026-09-23 19:52:11 +08:00
jearhe d5a05a9884 feat(plugin): expose a read-only schema metadata host API 2026-09-23 12:51:23 +08:00
zipg 1566bb8a9f feat(plugins): analyze plugin data in the built-in AI panel 2026-09-22 15:04:33 +08:00
Jinpy 4f0f69131b fix(plugins): carry plugin file handle ids as uuid strings 2026-09-22 14:15:13 +08:00
t8y2 865b9fba84 feat(plugins): add host.storage bridge and document sidecar data dir 2026-09-21 11:41:58 +08:00
t8y2 943d5ec7dd feat(plugins): serve plugin UI assets over the dbx-plugin scheme
The workbench sandbox inlines only the entry script, so code-split
chunks had no runtime address and dynamic imports 404'd. Serve each
installed plugin's ui.root through dbx-plugin://localhost/<id>/<path>
(WebView2 maps the scheme to http://dbx-plugin.localhost), inject the
platform-correct form as the sandbox document <base>, and allow it in
the resource CSP. Reads reuse the registry's ui-asset validation
(traversal confinement, 32 MiB cap, sha256 etag) and answer CORS with
ACAO:* for the opaque-origin iframe; responses are no-store so plugin
updates land immediately.

Existing plugins are unaffected. Builds that emit relative asset URLs
(vite base "./" / webpack publicPath "./") additionally regain lazy
loading and font loading; documented for plugin authors in both
languages.
2026-09-21 02:49:05 +08:00
Jinpy bc490772eb feat(desktop): fileTransfer bridge for plugin workbench webviews 2026-09-21 02:03:12 +08:00
Abeautifulsnow cab674299a fix(plugins): check and update installed plugins with provenance guards 2026-09-21 00:09:50 +08:00
zipg 4d150fc909 fix(updates): sync update center state after manual component changes 2026-09-20 18:43:02 +08:00
jearhe f909f85075 feat(plugins): expose read-only estimated plan host api 2026-09-20 17:15:52 +08:00
弈秋 832a4aa9ad fix(plugins): make batch-mode cancel exit batch mode 2026-09-20 11:05:13 +08:00
zipg 6babd1bf9b fix(updates): sync entry-point states after component updates 2026-09-20 11:03:31 +08:00
t8y2 faa8709266 feat(plugins): stream cancellable downloads to atomic local files
Refs: t8y2/dbx-plugin-s3#22
2026-09-20 04:09:15 +08:00
jearhe 4f3be8ccfb fix(plugin): resolve result-view by UI contribution 2026-09-20 01:32:23 +08:00
Jinpy b1b99eccfb feat(desktop): deliver font settings to plugin sandboxes 2026-09-19 19:13:30 +08:00
t8y2 3100a918cc feat(plugins): classify install beacons by kind and client id 2026-09-19 10:56:01 +08:00
Freedom 1321dc9b9d feat(plugins): improve connection lifecycle and session tabs 2026-09-18 22:10:37 +08:00
U1 6be8d5544e fix(plugins): refresh workbench tabs after install and rollback 2026-09-18 21:31:38 +08:00
U1 d2fd783592 feat(plugins): pin installed plugins at the top 2026-09-18 20:05:02 +08:00
t8y2 d1a2d51351 fix(plugins): block updates while connections are active 2026-09-17 22:32:47 +08:00
Abeautifulsnow c040f9c9c3 fix(plugins): allow reinstalling rolled-back marketplace versions 2026-09-17 21:07:13 +08:00
Jinpy e4bda693fb feat(plugins): add interactive prompts and richer connection forms 2026-09-17 19:29:28 +08:00
弈秋 84019b4271 feat(plugins): add batch install update and uninstall actions 2026-09-17 19:27:53 +08:00
t8y2 fb25a66d7a fix(plugins): trust official signing keys for offline installation 2026-09-17 18:03:47 +08:00
t8y2 048b9ed291 feat(plugins): add host.copy bridge for plugin clipboard writes
Plugin workbenches run in a sandbox="allow-scripts" iframe with an opaque
origin, so every scripted clipboard path (async Clipboard API, offscreen
textarea + execCommand) is denied there — plugins could not copy share
links to the system clipboard. The bridge now exposes host.copy: the
workbench host reuses copyToClipboard (Tauri clipboard-manager on desktop,
Web Clipboard with a legacy fallback on web hosts), and the sandbox iframe
additionally gets allow="clipboard-write" so engines that honor the
delegation can write directly.

The dev host matches production: its debug page answers host.copy in the
top-level document and its plugin iframes carry the same allow attribute.
No new plugin permission is required, so old hosts keep installing new
plugins and old plugins simply never call the method.
2026-09-16 14:29:47 +08:00
zipg 3c8ae159fb feat(ui): route Ctrl+F search by focused surface 2026-09-15 23:20:05 +08:00
zipg 4c80d16e26 feat(plugins): polish plugin marketplace listing display 2026-09-15 22:13:13 +08:00
t8y2 6a6f7712c1 feat(plugins): report install beacon after successful installs 2026-09-15 20:57:58 +08:00
t8y2 94bcbc1631 feat(plugins): install marketplace packages via dbx deep link 2026-09-15 17:55:04 +08:00
t8y2 08c163fe32 feat(plugins): count marketplace downloads and installs 2026-09-15 14:24:11 +08:00
t8y2 99738c160c feat(plugins): add certified badge and polish marketplace card layout 2026-09-15 13:39:25 +08:00
t8y2 c4952adb98 feat(plugins): add host.saveFile bridge for plugin downloads
Plugin iframes cannot trigger downloads: WKWebView cancels
shouldPerformDownload navigations when no host download handler is
registered, so blob-anchor downloads were silent no-ops on desktop.
The bridge now accepts a transferred ArrayBuffer (512 MiB cap, base64
fallback) and persists it through the native save dialog
(plugin-dialog + plugin-fs on Tauri, top-level anchor on web hosts),
resolving null when the user cancels.
2026-09-15 11:37:51 +08:00
t8y2 f852a57673 fix(plugins): remove static icons from marketplace action buttons 2026-09-15 11:15:43 +08:00
t8y2 1ea822b80e feat(plugins): add marketplace banner, docs link and card polish 2026-09-15 01:27:32 +08:00
t8y2 a81ae9f455 feat(plugins): add install-from-url for plugin packages 2026-09-15 01:16:04 +08:00
Jinpy 3d1b84831f fix(plugins): stabilize plugin integration 2026-09-14 21:03:47 +08:00
t8y2 f1cc68a4ba fix(plugin): prevent theme flash in embedded workbenches 2026-09-14 14:43:02 +08:00
t8y2 5ed03ca2b2 fix(plugin): close plugin tabs safely and hide load flash 2026-09-13 13:08:15 +08:00
t8y2 bcd1aafb33 feat(plugins): support custom plugin icons 2026-09-13 12:49:18 +08:00
t8y2 7b7d21f54f fix(plugin): defer restored tabs until manual refresh 2026-09-13 12:35:04 +08:00
t8y2 84e8bab622 fix(plugin): restore marketplace card grid 2026-09-13 10:51:18 +08:00
t8y2 b5072f1a3e feat(plugin): add plugin framework workflow 2026-09-13 10:39:17 +08:00