Files
deepseek-harness/packages/client/ui-session/README.md
T
imccyu 09899f3a0f feat(remote-access): 插件注册跟随访问状态(whenAccess),index 按 Peer 注入访问快照
- remote-access 新增 whenAccess / whenResourceAccess,ui-session、ui-workspace 各自提供 whenAccess
- schedule、plugin-manager、settings-general、settings-account、directory-picker-native 的入口包进 global whenAccess;消息反馈按钮按会话 useAccess 渲染
- webserver/index-inject 带 Peer,renderIndex / collectIndexInjections 需要 Peer,remote-access 注入 snapshotFor(peer.principal)
- client-test-runtime 新增 StaticRemoteAccess、staticAccessPlugin 与 TestClientOptions.access
- implemented Agent Note 2026-10-21-when-access 与升级指南 webserver-index-peer

Refs #2940
2026-10-21 17:57:51 +08:00

2.6 KiB

description, kind
description kind
React and Slot adapters for Session Controller lists, interaction state, and per-session context. package-reference

@deepseek-ai/dsh-client-ui-session

English | 中文

Summary

Use this package to expose Session catalog, retain information, and unified UI status through standard Slot hooks. It materializes per-SessionBinding hooks and props, while SessionProvider can inherit an outer binding or bind an explicit SessionReference. It owns process-local pending-interaction and completion-reminder policy without owning Controller transport, history, or references.

Running status comes from Host list baselines or status events. Subagent catalog rows and retained subagent fallback rows do not establish running status; main view references still acknowledge completions.

Table of Contents


Access Hooks

The package injects the Client remoteAccess service and publishes Session access Hooks over its source(): the root useSessionAccess(sessionId, action) answers on one Session resource, and the Session-scope useAccess(action) answers on the bound Session's resource; the global resource's answer is a different Hook, useRemoteAccess(action), so neither shadows the other. ctx.uiSession.whenAccess(sessionId, action, callback) is the JS counterpart of useSessionAccess: it keeps the callback's effects installed while the current Peer may call action on that Session, with the semantics of ctx.remoteAccess.whenAccess. The SessionMaybe-scope useAccess(action) returns undefined while no Session is bound, which callers treat as not allowed; a decision on the global resource reads useRemoteAccess instead. Snapshot semantics belong to dsh-api-remote-access.

Model Experience

None, as this package adapts browser-side Session state and registers nothing model-facing.

KV Cache effect

None; Session selectors and Slot scopes do not assemble model requests.

Known Limitations and Deferred Work

  • Pending interactions are process-local projections — the owning Remote waterfall must replay an outstanding request after a browser reconnect.

Dev Note

Working context for maintainers — click to expand

None.