mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
# Conflicts: # packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx # packages/client/ui-chat/src/client/chat/CompactionItem.tsx # packages/client/ui-conversation/src/client/locales.ts # packages/client/ui-renderer/src/client/app.tsx # packages/client/ui-renderer/src/client/index.ts # packages/client/ui-renderer/tests/ui-renderer.client.spec.tsx # packages/client/ui-tool/src/client/tool/models/tool-call-model.ts # packages/client/ui-trajectory/src/client/trajectory-record.ts # packages/client/ui-trajectory/src/client/trajectory-snapshot-builder.ts # packages/client/ui-trajectory/tests/views.client.spec.tsx # packages/client/ui-workspace/src/client/tree.ts
21 lines
1.6 KiB
Markdown
21 lines
1.6 KiB
Markdown
# @deepseek-ai/dsh-client-ui-renderer
|
|
|
|
English | [中文](README.zh.md)
|
|
|
|
The browser Cordis plugin that owns the React rendering layer. [`dsh-client-web`](../web/README.md) renders a framework-free boot page and loads the complete client plugin roster; after every entry activates, it calls `ctx.uiRenderer.mount(container)`. This package provides that service, installs the slot renderer, hydrates the existing boot DOM, switches to the assembled application before the next paint, and returns the React root's unmount disposer.
|
|
|
|
The client entry also owns the React implementation of slot outlets, session providers, and observable-to-uSES binding. Business plugins pass bare observable sources through typed slot `hooks`; the renderer binds them at the outlet. The renderer performs the sole context-level `renderSlot('root')` call; the registered root occupant owns product layout and document metadata. React, React DOM, Cordis, ui-slots, and ui-primitives retain one browser identity through the web shell's static module table; this package arrives as a dynamic client bundle.
|
|
|
|
## Model Experience
|
|
|
|
None, as the UI renderer only assembles browser UI and contributes no model-visible input.
|
|
|
|
#### KV Cache effect
|
|
|
|
None; this package neither assembles nor sends provider requests.
|
|
|
|
## Known Limitations and Deferred Work
|
|
|
|
- **The first application frame waits for every client entry** — the boot kernel hands over the mount point only after the loader roster settles. Per-region readiness remains deferred.
|
|
- **Slot rendering has no Suspense integration or per-entry lazy loading** — the complete plugin roster settles before the renderer mounts the root.
|