The client tsdown presets found a package's own manifest by name: a glob of every packages/*/*/package.json, parsed until the name matched. tsdown's native config loader imports each package config without module cache, so the module-level cache never hit and all 82 configs repeated the glob (40-125 ms each) synchronously on tsdown's main thread, where it delayed every other package build. It was 34.5% of the client pass's main thread. - clientBundle, staticLinked and clientLibrary take the package directory (import.meta.dirname at every call site) and read <dir>/package.json once; the package name, loader id and externals come from that manifest. - A missing, unreadable or nameless manifest throws an actionable error. - The glob, the name search and the module-level caches are removed. tsdown client pass 12.78 s -> 8.73 s (median of 3 interleaved runs each, -31.7%); all 11,566 lib outputs byte-identical; all 82 configs resolve the same externals and banners. Refs #5852
description, kind
| description | kind |
|---|---|
| Browser approval UI that answers Host permission requests through the scoped interaction path. | package-reference |
@deepseek-ai/dsh-client-ui-approval
English | 中文
Summary
Browser approval presentation over the Agent-scoped Remote Event waterfall. The plugin publishes each pending request through ctx.uiSession, takes over the Conversation composer, optionally renders correlated Tool detail, and returns the user's decision to the waiting Host request. Use it when a browser must collect approval for a waiting Host operation.
Table of Contents
Focus the approval detail region to approve with Enter or reject with Escape. The mounted plugin reserves both keys against editable shortcuts. Enter on the focused Reject button retains its native reject action. Input controls and IME candidates keep their own keys. Keyboard and pointer actions share one pending-request lock; a withdrawn or replaced request cannot accept another answer, and an earlier failed answer cannot unlock its replacement.
Model Experience
None, as this package presents approval requests in the browser and registers nothing model-facing.
KV Cache effect
None; approval request and response rendering does not alter a model request.
Known Limitations and Deferred Work
- The panel exposes transient decisions only — it supports allow-once and reject; persistent permission policy remains owned by Host-side approval packages. Requester-supplied localized presentation copy follows the UI language without changing the audit reason or translating model-generated text.
Dev Note
Working context for maintainers — click to expand
None.