Community fork of the official DeepSeek Harness trajectory panel
(@deepseek-ai/dsh-client-ui-trajectory) with cross-session diagnosis support.
English | 中文
- Session ID bar — the trajectory panel now shows the owning session id
(
session-<uuid>) at the top with a Copy button. - Per-turn reference copy — hover a turn corner label (
Turn N) and click the reference button to copy<sessionId> · turn <N>.
With those two, you can quickly hand a session id + turn id to a new
conversation and ask the agent to diagnose its own past execution. On a local
profile the full session log is one request away:
curl 'http://127.0.0.1:<port>/api/session.export?sessionId=<id>'.
Everything else is upstream behavior (timeline, ledger, search, inspector).
Requires a dsh profile that mounts the web app (the web profile).
- Build:
npm install && npm run build - Mount:
./install.sh(symlinks the package into the profile'snode_modulesand patchescordis.patch.yml: disablesui-trajectory, insertsui-trajectory-plus). - Restart the profile's web server (e.g.
dsh web).
The official ui-trajectory entry is disabled, so only ONE trajectory panel
exists in the GUI.
Remove the two entries install.sh appended to <profile>/cordis.patch.yml
(ui-trajectory disable + ui-trajectory-plus insert), delete the symlink in
<profile>/node_modules, and restart.
build.mjs mirrors the official package shape:
src/client/index.ts→lib/client.js— a CJS closure handed towindow.__ModuleLoader__.load({ id: "dsh-client-ui-trajectory-plus", ... }); externals (react,@deepseek-ai/*platform modules) resolve through the shell's frozen module table.src/index.ts→lib/index.js,src/invariant.ts→lib/invariant.js— ESM host entries.*.module.cssimports are inlined by thecss-modulesesbuild plugin: each sheet is rewritten with stabletpx-<hash>-<class>names and appended as a<style>element keyed by plugin id.
Smoke test: node smoke-test.mjs loads the bundle under minimal DOM stubs and
verifies the apply/inject exports.
Forked from packages/client/ui-trajectory @ deepseek-harness master (rc.6-era
runtime). Upstream is pre-1.0 (0.1.0-rc.*); API drift may require rebasing
when the runtime moves. If the official panel ever gains session id display,
this fork can be retired — its sources are the natural basis for that PR.
MIT. Upstream sources © DeepSeek (forked from deepseek-ai/deepseek-harness, MIT). See LICENSE.