返回目录
其他 插件

dsh-codex-side-outline

EnkiduGilgamesh/dsh-codex-side-outline

Codex style side outline for Deepseek Harness

Stars
0
Forks
0
Issues
0
更新
4 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:EnkiduGilgamesh/dsh-codex-side-outline

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-codex-side-outline

A Codex-style side outline for the DeepSeek Harness chat column. It extracts an outline of the current conversation and shows it as a thin rail along the left edge of the center (conversation) column, adjacent to the sidebar.

  • Gray short lines — one line per conversation turn, stacked top-to-bottom. The hovered turn is the longest and lengths step down in both directions (5 levels), so the rail reads like a minimap.
  • Hover to inspect — a summary card shows:
    • first line = the user question (bold, brand accent bar);
    • following lines = the agent's final reply only (thinking/chain-of-thought and intermediate narration before tool calls are excluded).
  • Click to jump — clicking a line scrolls the conversation to that turn's user message.
  • Pager — long conversations get ▲/▼ buttons to scroll the rail.
  • Auto-hides on the trajectory view, and follows the sidebar in real time as you drag or collapse it.

Package layout

This is an installable bundle (dsh.bundle) that also ships a browser (client) half (dsh.client), following the official plugin guide.

File Purpose
package.json Bundle + client manifests (dsh.bundle.patch, dsh.client).
cordis.patch.yml The layer applied when a profile lists this bundle.
index.js Host half — a no-op entry (browser-only plugin).
client.js Browser half — the outline rail UI.

src/conversation-outline.client.js is a retained reference copy of the original process-local dynamic plugin, kept for provenance; it is not shipped in the npm package.

Install

Install from GitHub into the default web profile:

dsh plugin --profile web add github:EnkiduGilgamesh/dsh-codex-side-outline
dsh web

Or clone to a local directory first, then install from there:

git clone git@github.com:EnkiduGilgamesh/dsh-codex-side-outline.git
cd dsh-codex-side-outline
dsh plugin --profile web add .

Verify the layer before booting (optional):

dsh --profile web --dump-config   # shows a "# == dsh-codex-side-outline" layer

⚠️ Restart required. The web app composes its client bundle roster at boot. After dsh plugin add — or after editing this plugin's code — stop the running dsh web process and start it again. A page refresh alone is not enough for a newly added or updated bundle to load.

How it works

  • Slot: shell.overlay (frame-wide floating layer). This keeps the rail outside every column's scroll container. The rail's horizontal offset is read from the frame's inline grid-template-columns via a ResizeObserver, so it tracks sidebar drag / collapse / window-resize with zero-frame lag.
  • Data: read from the client sessions service (not the Host):
    • useSessions((s) => s.current) (standard prop of shell.overlay) yields the current session id;
    • sessions.binding(id).session exposes an ObservableSnapshot whose getSnapshot().nodes carries the folded ConversationNode[];
    • user nodes contribute the question text (content text blocks), and assistant nodes contribute the reply text (blocks of kind: 'text').
    • Folded/older history is auto-loaded via session.loadOlder() so the rail shows every turn without a manual "load more".
  • Jump: each turn's seq is mapped to the chat node key via snapshot.chat.nodes.values() (anchorSeqkey); clicking scrolls the row carrying data-chat-anchor-key inside the [data-conversation-scroll] scrollport.
  • Trajectory: the rail hides while [data-trajectory-scroll] is present in the DOM (i.e. the trajectory view is the active conversation view).
  • Styling: a package-local <style> tag colored with theme CSS variables (--dsw-alias-*), so light/dark modes follow the active theme.

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度

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