dsh-t3-new-session-screen

uinpmMIT

A T3 Code-style New Session screen for the composer: a "What should we build in <project>?" headline whose project name opens a workspace menu, a reasoning-effort picker in the composer tool row, and a git branch strip under the card that searches local and remote refs and switches with git checkout

下载量 / Downloads
456

Install

dsh plugin --profile web add dsh-t3-new-session-screen

Sandbox test

This plugin has not been tested yet. Submit a test →

README

dsh-t3-new-session-screen

T3 Code's New Session screen for the

DeepSeek Harness composer.

Three things that screen has and DeepSeek Harness's blank session does not:

  • What should we build in <project>? — the headline from T3's

DraftHeroHeadline, where the project name is itself the picker.

  • A reasoning-effort picker — T3's TraitsPicker, surfaced in the composer

tool row instead of hidden behind the model menu.

  • A git branch picker — T3's BranchToolbar, with real git checkout.

Credit

The screen this plugin implements is T3 Code's. The headline sentence and its

inline project control, the effort picker's shape, and the branch strip with its

searchable ref menu are all theirs. T3 Code is

open source under MIT;

this port keeps the same behaviour and swaps the data underneath for DeepSeek

Harness's own services. Please support the original project.

Features

  • The headline. What should we build in <project>?, centred over the

composer, with the project name underlined and clickable. Clicking it opens a

T3-shaped project menu: every registered workspace, a check on the current

one, a divider, and New project. Picking a project moves the blank session

to it. DSH renders its own headline from a literal string with no slot, so

this plugin fills the only additive hole in that row

(conversation.hero.brand.mark) and suppresses the shipped title beside it.

The template is configurable, and {project} marks where the control goes.

  • Reasoning effort. A gauge control in the composer tool row showing the

level the current model is actually using (Off, Low, High, Max for

DeepSeek's own models). The menu carries each level's description and a check

on the current one. It reads and writes the same per-session model directory

the model seat uses, so the model seat's own label updates with it. A model

that advertises no effort levels renders no control at all — effort is a

per-model capability, not a global preference.

  • Git branch. A strip under the composer card: the checkout on the left, the

current ref on the right. The ref menu searches, lists local and remote refs,

labels current / default / remote, and switches with

git checkout <ref>. A Create new ref row appears once the query names a

ref that does not exist yet, and runs git checkout -b. DSH ships no git

surface of any kind, so every fact here comes from this bundle's Host half.

The strip is aligned on the composer's shared width axis, not on the card — see

[Alignment](#alignment).

Screenshots

The New Session screen · Project menu · Branch picker · Reasoning effort

![Headline and strip](assets/hero.png) · ![Project menu](assets/project-menu.png) · ![Branch picker](assets/branch-picker.png) · ![Effort picker](assets/effort-picker.png)

Install

From this repository:

dsh plugin --profile web add github:yusufameri/dsh-t3-new-session-screen

Once the package is on npm, the registry form is one word shorter:

dsh plugin --profile web add dsh-t3-new-session-screen

Either reconciles the profile's bundle list, so the next boot merges the

plugin's patch and loads its client half. Removing the bundle restores the

shipped headline, model seat and composer with no residue.

Configuration

Every field is optional; the defaults render the whole screen. Set them on the

bundle's row in the profile's cordis.patch.yml:

- id: t3-new-session-screen
  name: 'dsh-t3-new-session-screen'
  config:
    headlineText: 'What should we build in {project}?'
    effortSlot: right
    branchCreateEnabled: false

Key · Default · Meaning

headlineEnabled · true · Replace the blank-session headline with the T3 sentence.

headlineText · What should we build in {project}? · Headline template; {project} becomes the interactive project name. Without the hole the sentence renders as plain text.

hideShippedHeadline · true · Hide DSH's own "Into the Unknown" title beside the headline.

hideWorkspaceChip · true · Hide the shipped workspace chip under the headline, which the headline supersedes.

effortEnabled · true · Reasoning-effort picker in the composer tool row.

effortSlot · left · Which composer seat the effort picker occupies: left (beside the permission and plan controls) or right (beside the model seat).

branchEnabled · true · Git branch strip under the composer, on the new-session screen and in an active session.

branchCreateEnabled · true · Offer Create new ref (git checkout -b) in the branch picker.

gitEnabled · true · The git bridge behind the branch strip. Turning it off leaves the strip absent.

gitTimeoutMs · 30000 · Budget of one git child process.

The client half reads the resolved configuration from the Host over the same

route the branch data uses, so a change takes effect on the next page load.

How it works

The whole screen is contributed through DSH's own seams.

Piece · Seam

Headline · conversation.hero.brand.mark (single, root) — the only additive hole in DSH's headline row.

Project menu · conversation.hero.workspace (single, root) at priority -1, which shadows the shipped WorkspacePicker in the same cell.

Project roster · The root useWorkspaces standard hook, fed by ctx.slots.provideRoot.

New project · ctx.uiWorkspace.pickDirectory() then ctx.workspaces.create({ path }).

Reasoning effort · conversation.input.left / .right (list), reading ctx.modelDirectories.directoryFor(sessionId).

Branch strip · conversation.input.dock (one seat for both phases).

Working directory · `ct

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::1,最后更新 2026-09-28

Links

GitHub · Homepage · npm

Same category