39 Commits
Author SHA1 Message Date
Jinpy 884ef6ba17 fix(plugin): preserve reconnected sidecar sessions
Preserve plugin sidecar registrations across reconnects by serializing connection lifecycle calls and isolating unconfirmed disconnects.
2026-10-19 21:56:22 +08:00
Jinpy 8c45af6bdd fix(plugins): release dock terminal plugin connections on close 2026-10-17 17:44:25 +08:00
Jinpy 53cd0c516e fix(plugins): self-heal restored plugin pages silently 2026-10-04 09:49:34 +08:00
Jinpy 397bff26c8 fix(app): retry connection list loading at startup 2026-10-04 09:47:39 +08:00
Jinpy a685056855 feat(plugins): extend AI text generation for plugins 2026-10-02 18:01:29 +08:00
Jinpy 2fa5b9298a fix(web): confine docs notes paths to allowlisted roots 2026-10-01 01:01:37 +08:00
Jinpy 0212231421 feat(plugins): open workbench in tabs from dock surfaces 2026-09-30 21:22:25 +08:00
Jinpy be82fdc989 fix(plugins): stream dropped files and folders into plugin workbenches 2026-09-30 15:08:17 +08:00
Jinpy 6f05afc0e6 fix(export): neutralize formula injection in CSV/TSV exports 2026-09-30 15:05:27 +08:00
Jinpy 21102f4810 feat(plugins): run declared commands from plugin workbench UI 2026-09-30 01:21:11 +08:00
Jinpy de70545c70 docs(plugins): document the options_action launch-options contract 2026-09-30 00:57:40 +08:00
Jinpy 3db93307d0 fix(security): anchor plugin file access on rust-side consent 2026-09-29 17:39:31 +08:00
Jinpy d55b4c966a fix(web): bind change-password to live sessions and cap auth bodies 2026-09-29 16:24:43 +08:00
Jinpy 1b760f9bdf fix(web): require explicit opt-in for unsigned plugin installs 2026-09-29 16:21:20 +08:00
Jinpy 1b6b00398b fix(mcp): enforce read-only policy and session scope on plugin tools 2026-09-29 16:09:48 +08:00
Jinpy 9540f51dce fix(web): make the listener bind address configurable via DBX_BIND_ADDR 2026-09-29 14:08:54 +08:00
Jinpy 6f5511a732 fix(mcp): let the tool allowlist express plugin tools with wildcards 2026-09-29 14:00:58 +08:00
Jinpy 9b364bbbc7 fix(docs): move blocking html export and annotation save off async runtime 2026-09-29 13:21:50 +08:00
Jinpy ba5c04c750 chore(deps): move shadcn-vue to devDependencies and pin patched floors 2026-09-29 12:33:02 +08:00
Jinpy 64c76bd45d fix(web): require same-origin on redis pubsub websocket upgrade 2026-09-29 10:58:59 +08:00
Jinpy f61f64f727 feat(mcp): opt-in plugin tools on external server and built-in AI 2026-09-28 21:34:17 +08:00
Jinpy d2c471306c feat(plugins): localize options_action and rework dock plus picker 2026-09-28 00:37:36 +08:00
Jinpy c5e1cc35d2 fix(plugins): transfer standalone ArrayBuffer in fileTransfer.write 2026-09-26 21:46:36 +08:00
Jinpy dcd16e0d0a fix(mcp-bridge): bind call-plugin-tool to the connection's own plugin 2026-09-26 14:22:29 +08:00
Jinpy 7a7edfb2b8 fix(mcp-bridge): read full request bodies and refuse browser calls 2026-09-26 13:51:15 +08:00
Jinpy d1d02547fd fix(plugins): list command and menu contributions in manifest schema 2026-09-26 13:49:16 +08:00
Jinpy 2851da891e fix(plugin-installer): keep atomic writes and rollbacks lossless 2026-09-26 13:47:17 +08:00
Jinpy ec697a438c fix(plugins): keep dock plus picker inside window and open downward 2026-09-25 09:42:22 +08:00
Jinpy ccfb108aa1 perf(plugins): dock open latency and tab strip UX fixes 2026-09-24 22:43:24 +08:00
Jinpy 92f92f6cdb feat(plugins): bridge clipboard reads with consent gate 2026-09-24 16:16:49 +08:00
Jinpy aefecd3841 feat(plugins): add command and menu contributions with bottom dock 2026-09-23 19:52:11 +08:00
Jinpy 4f0f69131b fix(plugins): carry plugin file handle ids as uuid strings 2026-09-22 14:15:13 +08:00
Jinpy bc490772eb feat(desktop): fileTransfer bridge for plugin workbench webviews 2026-09-21 02:03:12 +08:00
Jinpy b1b99eccfb feat(desktop): deliver font settings to plugin sandboxes 2026-09-19 19:13:30 +08:00
Jinpyandjinpy.he 1f3beb11dc fix(macos): let held keys repeat instead of opening the accent picker (#9572)
WKWebView shows the macOS accented-character popover when a key is held
down, which suppresses key repeat entirely: holding a key in plugin
terminal workbenches (e.g. the SSH plugin) registers nothing, and keys
typed while the popover is up are swallowed, so fast typists lose
characters. Terminals want key repeat, not diacritics entry.

Setting ApplePressAndHoldEnabled to false in the bundle Info.plist
restores normal key repeat inside the webview (same approach as iTerm2
and other terminal apps). macOS-only key; other platforms unaffected.

Co-authored-by: jinpy.he <jinpy.he@kuehne-nagel.com>
2026-09-19 13:31:50 +08:00
Jinpyandjinpy.he 58fd050a28 fix(desktop): keep timeout inherit flags when saving plugin connections (#9579)
* fix(desktop): keep timeout inherit flags when saving plugin connections

* fix(desktop): hide dead query timeout scope from plugin connections

query_timeout_secs only feeds the database query pipeline (dataGrid,
queryStore); plugin connections such as SSH never consume it, so the
generic Advanced-tab radio only suggested a budget the provider cannot
honor. Hide the row for plugin connections while keeping hydration and
submit untouched, and pin the round-trip contract (explicit inherit
flag, preserved scalar) plus the deliberate keep of the connect timeout
radio in the regression spec.

---------

Co-authored-by: jinpy.he <jinpy.he@kuehne-nagel.com>
2026-09-19 13:31:36 +08:00
Jinpy 2b15327de3 feat(plugins): hand SOCKS5 transport proxy routes to connections 2026-09-19 09:47:15 +08:00
Jinpy e4bda693fb feat(plugins): add interactive prompts and richer connection forms 2026-09-17 19:29:28 +08:00
Jinpy 3d1b84831f fix(plugins): stabilize plugin integration 2026-09-14 21:03:47 +08:00