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 |
|---|---|
| Observable browser state stores with explicit snapshots, subscriptions, and lifecycle ownership. | package-library |
@deepseek-ai/dsh-client-store
English | 中文
Summary
React-free observable and snapshot-store primitives shared by Client controllers and renderer adapters. The package owns synchronous and animation-frame publication, Immer-backed updates, shallow equality, and optional browser persistence; React hook construction remains in @deepseek-ai/dsh-client-ui-renderer. Use it when Client state must publish stable snapshots without depending on React.
Table of Contents
Model Experience
None, as this package provides browser-side state primitives and registers nothing model-facing.
KV Cache effect
None; the stores neither assemble nor send model requests.
Known Limitations and Deferred Work
- Persistence is browser-local — persisted stores use JSON in
localStorage; non-browser runtimes disable persistence, and the package provides no cross-device synchronization. - Web-shell build input — the static ESM retains third-party imports for Vite; independent consumers supply its development dependencies (dependency rules).
Dev Note
Working context for maintainers — click to expand
None.