返回目录
其他 待识别

dsh-fork-view

an4nsi/dsh-fork-view

DSH web plugin: replaces the native workspace browser in the left sidebar with a session tree in the style of pi-web by agegr.

Stars
0
Forks
0
Issues
0
更新
11 天前

PROJECT TOPICS

项目标签

PROJECT README

README

[!WARNING] BROKEN / UNMAINTAINED — do not install this plugin.

It is superseded by dsh-client-ui-forkspace. Forkspace takes over the entire sidebar.workspaces occupant (the official ui-workspace row is disabled and the fork fills the slot), and does strictly more than this plugin did — this one shadowed that same slot and did everything else worse.

The code below is kept for historical reference only. It is not built, not mounted by any profile, and receives no fixes. There is no migration path worth writing: install forkspace instead.

dsh-fork-view

English | 中文

DSH web plugin: replaces the native workspace browser in the left sidebar with a session tree in the style of pi-web by agegr — workspace → session → forks / subagents. Flat by default: forks-of-forks collapse into level-2 siblings; raise maxDepth to nest them for real.

Sidebar Hover actions
Sidebar Hover actions

Features

  • Flat by default: workspace → session, with fork rows and collapsible > Subagents (N) groups underneath. At the default maxDepth: 2, forks-of-forks at any depth flatten into sibling rows at level 2 — set maxDepth ≥ 3 and they nest under their parent instead.
  • Subagent groups: each session/fork collects its subagents into a collapsible group, collapsed by default.
  • Archive-friendly: archived sessions hide their whole group; descendants of archived nodes re-parent to the nearest surviving ancestor — no orphaned rows.
  • Hover actions menu: Rename / Fork / Archive, matching the native dsh sidebar. Self-contained inline SVG + small popover; zero extra modules.
  • dsh-native look: one muted vertical indent guide instead of tree elbows; all colors via dsh CSS variables, adapts to light/dark.

Install

Requires a DSH ≥ 0.0.1 web profile and Node ≥ 20.

From GitHub (pnpm / dsh)

One-liner via the dsh CLI (installs and auto-mounts — the plugin ships its own cordis.patch.yml; the CLI sees the dsh.bundle.patch declaration and appends it to the bundle stack, no profile file edits):

dsh plugin --profile web add github:an4nsi/dsh-fork-view   # adjust profile name

Or manually with pnpm — inside your web profile directory (the one with package.json / cordis.patch.yml):

cd ~/.dsh/profiles/web        # adjust to your profile path
pnpm add github:an4nsi/dsh-fork-view#main
# pnpm ≥ 10 asks to approve build scripts on first run: allow esbuild and
# dsh-fork-view's prepare; missed it? `pnpm approve-builds`, then check lib/ exists

The pnpm route also mounts the plugin row in the profile's cordis.patch.yml (the dsh CLI route already did):

- insert:
    - id: dsh-fork-view
      name: "dsh-fork-view"
      # optional config, see "Configuration":
      # config:
      #   maxDepth: 2

Restart dsh web (host-half change) and hard-refresh the browser.

Manual / development

git clone https://github.com/an4nsi/dsh-fork-view.git && cd dsh-fork-view
pnpm install  # prepare hook builds lib/
pnpm test

Configuration

Key Default Description
maxDepth 2 Levels to render. 1 roots only; 2 roots + direct forks + subagent groups; ≥3 actually nests fork-of-fork under its parent
showSubagents true Render > Subagents (N) groups
subagentsCollapsedByDefault true Initial open/closed state of subagent groups

Config lives on the plugin row (YAML above); validated host-side by schemastery, forwarded to the client half.

Development

# dsh-fork-view:tree tab registration (better-sidebar) — wrapped in ctx.effect for HMR/disposer safety; old sidebar.workspaces slot kept as fallback so no-better-sidebar installs still work

src/client/index.jsx   client half: sidebar component (real JSX) → CJS bundle
src/index.js           host half: schemastery Config + no-op apply (client-only plugin)
cordis.patch.yml       dsh.bundle.patch layer: inserts the plugin row
build.mjs              esbuild dual-entry build → lib/client.js + lib/index.js
tests/                 model tests against the built bundle (mock jsx-runtime)
lib/                   build output, gitignored; produced by prepare on install
pnpm run build && pnpm test

src/client/index.jsx client half: sidebar component (real JSX) → CJS bundle src/index.js host half: schemastery Config + no-op apply (client-only plugin) cordis.patch.yml dsh.bundle.patch layer: inserts the plugin row build.mjs esbuild dual-entry build → lib/client.js + lib/index.js tests/ model tests against the built bundle (mock jsx-runtime) lib/ build output, gitignored; produced by prepare on install


```bash
pnpm run build && pnpm test

Credits

  • pi-web by agegr — the original fork/subagent process tree this plugin reimplements for the dsh sidebar.
  • The dsh web plugin surface (__ModuleLoader__, client slots) that makes a drop-in sidebar replacement possible.

License

MIT © anansi & inogai

CLASSIFICATION EVIDENCE

分类依据

项目类型待识别
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。