Skip to content
dsh.fish
Bundle

dsh-session-topics

Session topic titles for DeepSeek Harness: LLM-generated titles for sessions stuck on the prompt-excerpt fallback, retry on every turn end, plus a /topics-size endpoint for the hover-card size patch (out-of-tree plugin)

Source
SipengXie2024
License
MIT
Updated
Updated 7 days ago

Readme

# dsh-session-topics

[中文文档](./README.zh.md)

Session topic titles for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) — LLM-generated session titles that actually hold up, plus a hover-card size readout for the session list.

## Why

dsh ships a title generator (`session-title-first-prompt-llm`), but it is one-shot, never retried, and its `maxOutputTokens: 64` reliably loses to reasoning models — so sessions keep the deterministic "first words of your prompt" fallback titles. This plugin retries until every session gets a real topic title, like Claude Code and Codex do.

It never registers a title provider (the slot is sole-tenant); it appends `session/title` log events directly, which the title service folds like any other. User-renamed (pinned) titles are never touched.

## Features

- **Startup sweep** — 8s after boot, every persisted session still on a fallback title gets an LLM-generated title (current default model) written into its log. Live sessions go through `Session.append`; cold sessions through `sessionPersistence.load` + `append`.
- **Turn-end retry** — on every agent `running → idle`, if that session's title is still the fallback, retitle it. Bundle-layer listeners cover all sessions.
- **`GET /topics-size?id=<sessionId>`** — durable log byte size, feeding the hover-card patch below.
- **`GET /topics-sweep`** — manually trigger a sweep and get per-session results as JSON (debugging).

## Install

```powershell
dsh plugin --profile web add .\dsh-session-topics-0.3.0.tgz   # tgz attached to the latest release
# restart dsh web
```

Reinstalling the same version is a no-op (pnpm dedupes by name+version) — bump the version before repacking.

## Hover-card size patch (self-healing)

The session-list hover card belongs to the shipped `dsh-client-ui-workspace` bundle and exposes no plugin slot, so the size line is a source patch. **Since 0.3.0 the plugin re-applies it automatically at every boot** — including after dsh upgrades rematerialize the shared layer. No manual step. (Shared-layer files are pnpm store hardlinks, so the patch is written delete-then-rewrite.)

A manual entry point remains for machines without the plugin:

```powershell
node scripts/patch-hover-size.mjs
```

- Idempotent; exits loudly without touching anything if the anchors drift (new dsh version).
- The size line stays hidden when this plugin is not running.

## Verified

dsh 0.1.0-rc.6, web profile: 8 existing sessions retitled end-to-end (live `append` + cold persistence `append`), hover size served and rendered.

Install

dsh plugin --profile web add github:SipengXie2024/dsh-session-topics

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source