Bundle
dsh-session-fork
dsh plugin: git-like conversation forking (branch refs on sessions)
- Source
- Jason-skd
- stars
- 5 stars
- License
- MIT
- Updated
- Updated 7 days ago
Readme
# dsh-session-fork English | [简体中文](docs/README.zh.md) Agent apps manage conversations as sessions: chats are silos, and memory doesn't carry over. `dsh-session-fork` makes the **branch** the building block of AI conversation management — parallel workflows, continuous and mergeable conversation memory, the foundation for AI team collaboration and AI secretaries. The long-term direction is sub-agent collaboration and branch-scoped long-term memory. This is a plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh); it cannot run standalone.  ## Why branches **Against session-only management**: once a conversation grows long, you're left with two bad choices — - Start a new session: the project context and working memory are lost; - Keep chatting: the context gets polluted. **Against plain compaction**: compact has no task boundary, so the model tends to preserve what is important yet irrelevant to the task at hand; and as a conversation grows, repeated compaction still ends in pollution and loss. **The elegance of branches**: - fork lets tasks proceed in parallel (pair it with git worktree); - each branch holds its own memory, and inter-branch operations move conclusions between them: the working branch keeps a focused context, while the main branch stays free of pollution yet still commands the full picture. ## What you get - **Upgraded native fork** — the official dsh fork action is taken over, so every fork becomes a managed branch; - **Inter-branch operations** — squash a branch's **unique** turns and conclusions back into the main branch or any other branch; - **Branch visualization** — a vendored VS Code Source Control Graph, the authentic VS Code look. ## Quick start Install (requires a web-app-based dsh profile): ```sh dsh plugin --profile web add dsh-session-fork ``` Then, in any session: ``` /branch adopt main # name the current session as branch 'main' /branch review # fork a 'review' branch at the last completed turn /squash into main # (on 'review') compress the new turns back into main ``` Or switch to the **branch** tab and do the same through the graphical interface. In the branch tab: hover a row to see the full prompt; right-click to **fork from here** or **squash into a branch**. The official fork button is wired to the same pipeline, so every fork lands in the graph. ## Join us What we want to build next: 1. **Sub agents are a natural fit for the branch model.** Introduce rebased-into, merge, and friends as primitives; let AI drive branch operations and dispatch sub agents onto branches that communicate through inter-branch operations — replacing the traditional mailbox pattern. 2. **Branch-scoped project memory.** Existing long-term memory models are project-grained, which is a disaster for the branch model: memory leaks across branches and pollutes context. Branch-grained memory management is the road to a more robust model. We take an open stance on AI collaboration: feel free to use AI to contribute code, write commit messages, and draft PRs. But we expect you to own your code — review it yourself, and treat AI as your tool in communication rather than letting it talk to us on your behalf. ## License [MIT](LICENSE)
Install
dsh plugin --profile web add github:Jason-skd/dsh-session-fork#30054ef443510cd989005aae5c33e60ac7574cad
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-session-fork from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.