@dsh-blue/blue
English | 中文
The dsh Blue bundle: the interactive terminal UI profile. cordis.patch.yml rides directly over dsh-base; selected via dsh --profile blue (template ['@deepseek-ai/dsh-base', '@dsh-blue/blue']). The patch overrides the system-prompt persona, keeps the shared HMR row off, and inserts eighteen Blue rows in three segments. The baseline segment: blue-core (the tree's only pi-tui adapter: terminal lifecycle plus the blueScreen/blueKeymap/blueTerminalInfo/blueComponents services), blue-theme-dark (the blueTheme provider — the built-in dark palette), blue-transcript (session-event rendering, the blueStatus registry, and the footer shell), and blue-status-basic (the baseline {model} · {status} footer entry). The enhancement segment: blue-editor-plus (! bash mode with shell echo, slash/@ autocomplete over the shared editor), blue-attachments (the harness attachment store — magic-byte sniffing, media-type whitelist and caps, files under DSH_BLUE_ATTACHMENT_DIR ?? $DSH_HOME/attachments ?? ~/.dsh/attachments), blue-paste-image (ctrl+v clipboard-image paste: saves through the attachment store and inserts [image #N] markers the submit transformer splits into image blocks; the row's inject: [attachments] pins its activation after blue-attachments), blue-status-git (git-branch footer entry), blue-status-context (context-occupancy footer entry), blue-intent-diff (the 'diff' render intent — collapsed/expandable diff cards, inject blueIntents), blue-intent-terminal (the 'terminal' render intent — command/output cards with exit badges, inject blueIntents), blue-pane-activity (one-row spinner while the attached agent runs), blue-pane-queue (the agent's queued inbox messages, plus the keyless action gating the empty-editor Up recall), blue-pane-todo (the session's todo list with the global Ctrl-T collapse toggle), and blue-pane-btw (the /btw side-question pane: forks the live session into a throwaway side agent and renders the exchange). The assembly segment closes the plain baseline: blue-interaction (input editor, /quit /resume /new /fork /sessions /help /theme, user questions — the plan-review intent included since S24b — and approvals, plus the bare-/permission preset picker over the base-composed permission service), blue-startup (@dsh-blue/blue-app/startup, parses [task] and --resume <id>), and blue-app (the Agent driver, reading its launch values through lazy !!js ctx.blueStartup.* config interpolation). The plain baseline is the baseline segment plus the assembly segment — the whole enhancement segment can be dropped without breaking it. Bottom panes mount through blueScreen.addBottomChild and the loader mounts sibling rows concurrently, so the dock order is pinned by the blueComponents activation round rather than raw row order: the two lighter panes carry a row-level inject: [blueComponents] pin to join the same round as the transcript row (never blueStatus — /theme would dispose the handler's own fiber mid-swap), which keeps the dock at footer → panes → editor.
Model Experience
Indirectly, through the inserted rows: this bundle is a patch-list carrier and contributes no model-visible text of its own beyond the persona override quoted in the patch.
KV Cache effect
The persona override is a static prefix; each inserted row's package owns its own prefix effect.
Known Limitations and Deferred Work
- No bundle-level limitations known — the composed profile is exercised end to end by the whole-tree e2e (
tests/e2e.spec.ts, 72 cases: boot, task runs, typed input, approval overlay with a session-scoped allowance, tabbed questionnaire, editor key semantics, resume,/themepalette swap with draft preservation and transcript re-render, the four dock panes,/help,/sessions+/new+/fork,/btw, diff card, terminal card with exit badge, image paste flowing through as image blocks, step-summary rendering, the S23 model family — picker metadata and segment drafts, session-only vs persisted defaults, the resume header tier,/providerlist/switch, and the Add Provider wizard against the real settings/credentials/pi-ai stack with a fixture discovery endpoint, teardown) with a scripted mock LLM adapter and core's recording FakeTerminal; only the model and the process terminal are substituted.