OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:JUANWANG-BUAA/dsh-session-git
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
dsh-session-git is a plugin for
DeepSeek Harness. It
treats a conversation as lineage: fork from a completed turn, open the
child, and draw the family tree in the session header. The source session
is left unchanged. The plugin does not rewind workspace files and does not
merge logs.
Compatible with DeepSeek Harness 0.1.0-rc.5 fork semantics (locked in
src/policy/host-boundary.ts). Smoked on CLI 0.1.0-rc.6. After a
harness upgrade, run pnpm test; if host-boundary fails, stop shipping.
The official API already supports fork({ sessionId, atSeq }). The Web UI
only exposes that cut on the current transcript tail and as “latest
turn” in the sidebar. There is no way to branch from an earlier completed
turn, and the official sidebar stays flat on purpose.
| Approach | Result |
|---|---|
| Official Branch | Cuts the latest completed turn; no family tree |
| dsh-turn-rewind / dsh-rewind | File rewind; some paths archive the source |
| This plugin | Historical completed-turn fork + in-plugin family tree; files untouched |
Need a disk time machine? Install a rewind plugin. Do not ask this package to undo an edit.
The plugin adds product UI on top of the official fork RPC:
turn/end
seq;turnTail chain is free), offer “Branch from
here”;flowchart LR
A[Completed turn N] --> B[executeFork]
B --> C["session.fork atSeq = turn/end"]
C --> D[Rename child title best-effort]
D --> E[open child]
E --> F[Family tree from sidebar parentId]
turn/end seqs in the
loaded window. The trigger itself does not fork.priority: 50 so official produced-files keep the chain when they match.origin: subagent is not treated as a Git branch.error.in-flight).messageKey. Product copy never says rewind /
undo.^22.19.0 || >=24The supported install is a prebuilt GitHub Release tarball. It already
contains lib/. dsh plugin add forwards to pnpm, so no local clone,
no allowBuilds, and no npm registry package.
dsh plugin --profile web add https://github.com/JUANWANG-BUAA/dsh-session-git/releases/latest/download/dsh-session-git.tgz
dsh --profile web --dump-config | grep session-git
You should see a # == dsh-session-git layer. Start Web without a debug
DSH_HOME:
env -u DSH_HOME dsh --profile web
Pin a released version:
dsh plugin --profile web add https://github.com/JUANWANG-BUAA/dsh-session-git/releases/download/v0.1.0/dsh-session-git-0.1.0.tgz
pnpm install
pnpm run build
dsh plugin --profile web add "$(pwd)"
Pin a commit you have verified. pnpm ≥ 10 refuses build scripts until you
allow this package in that profile
($DSH_HOME/profiles/web/pnpm-workspace.yaml):
dsh plugin --profile web add github:JUANWANG-BUAA/dsh-session-git#<commit-sha>
allowBuilds:
dsh-session-git: true
Treat allowBuilds as permission to run this package’s scripts on your
machine. Only allow sources you trust. Prefer the Release tarball above.
pnpm pack
dsh plugin --profile web add ./dsh-session-git-0.1.0.tgz
The tarball already contains lib/client.js. prepare skips the rebuild
when tsdown.config.ts is absent.
turn/start, such as a title
change). The source is unchanged.Source
Turn 1 — header picker / historical turnTail
Turn 2 — header picker / historical turnTail
Turn 3 (latest) — official Branch only
dsh plugin --profile web remove dsh-session-git
dsh --profile web --dump-config | grep session-git
The UI disappears. Forked children remain ordinary sessions;
parentSession stays in the log. Official Branch is unchanged.
- id: session-git
name: dsh-session-git
config:
turnTail: true # false: hide historical turnTail; header picker stays
prefillComposer: false # accepted then ignored; the child is never prefilled
The complete option list, with defaults and validation, is the package
Config schema (src/index.ts).
Web boot currently creates client entries as loader.create({ name })
without forwarding host yaml, so the browser half keeps turnTail on
unless a future boot starts passing config. Unit tests cover the off path.
SessionSummary (parentId,
title, running, blank, updatedAt). seedLength is not in the summary,
so v0.1 does not show “cut at seq N”.turnTail chain; use the header picker for that cut.(1) / (n) increment. Two forks
from the same source can share a title. The tree does not label the cut.session.fork copies the current workspace, not files as of that
turn. This plugin does not rewind files.git clone git@github.com:JUANWANG-BUAA/dsh-session-git.git
cd dsh-session-git
pnpm install
pnpm run check:ci
check:ci runs lint, typecheck against types/ci.d.ts, unit and client
tests, and a build. Optional pnpm run bootstrap clones or builds a
sibling DeepSeek Harness checkout so pnpm run check uses the real
client .d.ts files.
pnpm test is policy tests (node:test) plus jsdom component tests
(vitest). 0.1 has no diff helpers.
Git installs run prepare. Packed tarballs skip the rebuild when
tsdown.config.ts is omitted from files. Cutting a GitHub Release is
documented in CONTRIBUTING.md; this package is not
published to npm.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: session。