Vai al contenuto principale
B

dsh-session-tree

bestq-a/dsh-session-tree

Hierarchical session tree for the sidebar - native subagent trees plus an optional organization-derived hierarchy, with collapsed branch counters and orphan/cycle defense.

Installazione

dsh plugin --profile web add github:bestq-a/dsh-session-tree

README

dsh-session-tree

Hierarchical session tree for the DeepSeek Harness (DSH) sidebar — turn the flat session list into a tree.

Forked and reworked from an internal bundle (upstream code © 2026 DeepSeek, MIT). Private roster data was stripped; the org-projection generator is now fully generic.

Features

  • Native subagent trees — real spawn parent/child chains render as a tree, with ordering and completion state preserved from official semantics.
  • Optional organization hierarchy — derive an "org reporting" layer on top of sessions from your own roster (memberId / reportsTo / bound sessionId). Clearly marked (data-hst-relationship=organization) and never confused with native subagent lineage.
  • Collapsed branch counters — collapsed group nodes aggregate running sessions and real per-branch unread counts (not the group leader's own state).
  • Defensive rendering — orphans, cycles and duplicates are rejected at generation time; missing parents degrade to root-level rows instead of disappearing.
  • Search stays flat — bounded flat search as the host provides; selecting a result expands ancestors and scrolls the target into view.

Install

From the DSH plugin market (once listed), or from source:

dsh plugin --profile desktop add github:BestQ-A/dsh-session-tree

See INSTALLATION.md for build-from-source details.

Organization projection (optional)

The org layer is generated from a roster you control. Example shape (.omo/teams/<team-id>/team.json):

{ "definition": { "members": [
  { "memberId": "D01", "boundSessionId": "<session-uuid>", "organization": { "role": "Design|Lead|01", "reportsTo": "ROOT" } },
  { "memberId": "D02", "boundSessionId": "<session-uuid>", "organization": { "role": "Design|Member", "reportsTo": "D01" } }
] } }

Then: node scripts/build.mjs <dsh-install-root> <project-root> regenerates the embedded projection. Without a projection the plugin still renders native subagent trees — everything degrades gracefully.

License

MIT — see LICENSE.upstream for the upstream DeepSeek notice this fork builds on.

Plugin correlati