SuperJJ007/papermachine--packages-client-store ↗★ 59

@deepseek-ai/dsh-client-store

React-free observable and snapshot-store contracts with the shared Zustand/Immer engine 适合需在不依赖 React 的情况下发布稳定快照的客户端状态管理场景。

パッケージ
@deepseek-ai/dsh-client-store
互換性
未検証
Cordis ピア範囲
workspace:^
バージョン
0.1.5-rc.2
ライセンス
MIT
最終更新
2026/09/12

同名パッケージの別リポジトリ

インストール

検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗

ドキュメント

README 全文を読む ↗

description: "Observable browser state stores with explicit snapshots, subscriptions, and lifecycle ownership." kind: "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.

Runtime invariant: No companion is published. The package exports a library engine and creates no process-global state; each store instance is covered by its owning tests.

Persistence merges saved object fields over init() so newly introduced fields keep defaults. Declared transient keys are omitted from serialization and restored from init(), even when older payloads contain them. Owners that persist a projection provide persistence.save(state) and persistence.restore(saved, initial) instead of this default merge and filtering; restore validates the parsed JSON and returns the complete initial state with accepted preferences. Callback failures follow the non-fatal storage-error behavior.