yth1120/dsh-web-workbench--packages-client-ui-workbench ↗★ 0
@deepseek-ai/dsh-client-ui-workbench
Right-side workbench for the dsh web GUI: header toggle plus status, background-job, activity-log, and changed-file review tabs 适合在网页端需要集中查看任务状态与文件变更的用户。
同名パッケージの別リポジトリ
インストール
検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗
ドキュメント
README 全文を読む ↗@deepseek-ai/dsh-client-ui-workbench
English | 中文
Right-side workbench for the dsh web GUI, contributing a frame-wide top-right toggle (floating over every surface, including the new-session page; it stays visible while the workbench is open and closes it on a second click) and four tabs into ui-conversation's conversation.details.tab workbench ring, where ui-trajectory adds the Trajectory tab:
| Tab | Data source | Behavior |
|---|---|---|
| Background jobs | jobsBySession mirror | full job rows with live elapsed durations and settled de-emphasis |
| Review | workspace.changes / workspace.diff | sorted change list, per-file bounded unified diff, refresh, and auto-refresh after a run settles |
| Files | workspace.listFiles / workspace.readFile | collapsible workspace file tree with sizes, per-file bounded content preview, refresh, and truncation notes |
| Browser | client-side iframe | address bar with back/forward/reload, URL normalization to http(s), and an embedded sandboxed viewer |
| Trajectory (ui-trajectory) | session views.trajectory projection | turn-aware event ledger with timing overview, request/compaction sections, record inspector, and earlier-history paging |
The toggle registers into the layout's frame-wide shell.overlay seat and flips the details column through ctx.layout.toggleDetails; it stays mounted above the open column, so a second click closes the panel. The plugin also marks the document with data-workbench-floating, whose CSS turns ui-conversation's stock session header into a transparent, borderless overlay over the transcript and hides the view tab strip — unloading the plugin removes the marker and restores the stock header. The four tabs register into the workbench ring with orders 10–40, and ui-trajectory's Trajectory tab follows at order 50, so ui-conversation's built-in tool details tab stays first. The Status and Activity-log tabs were consolidated away because the main transcript already surfaces running state and chat history; their components stay exported so a composition can re-register them. Each tab reads framework session state, the workspace-review wire, or the browser directly and owns no domain store. The details column opens without a current session too: the layout shows its own empty-state hint when no session exists, and a blank (hero) session renders the workbench shell directly.
Extension point
The workbench ring is a list slot; a package contributes a tab by registering into conversation.details.tab with an id, order, and localized label. The shell falls back to the first entry when a selected tab unloads.
Model Experience
None, as every tab renders browser-side session or host git state for a human; nothing here reaches a model request.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
- Review is read-only and workspace-scoped — the tab lists and diffs git changes of the session's registered workspace; a session outside a registered workspace shows the no-workspace line, and no staging or commit controls exist.
- Files is workspace-scoped and read-only — the tab lists the registered workspace tree (
.gitskipped, bounded at the host's entry cap) and previews file content; no editing, moving, or deletion controls exist. - Browser is an iframe, not a proxy — sites that forbid framing (X-Frame-Options/CSP) render an empty frame, and mixed-content or sandbox-restricted pages may refuse to load; the tab is a preview, not a full web browser.
- The activity log is the chat window, not the raw session log — nodes outside the loaded history window page in through
loadOlder, matching the conversation view rather than the trajectory ledger. - Diff rendering is line-oriented — hunks and +/- lines are styled, but word-level highlighting and file-open actions are deferred.