UI Enhancements

gal-view

ayase34/gal-view · ★ 218

ayase34

Galgame-style conversation view for the DSH Web GUI session page + a visual editor for scene elements (official bundle plugin format).

License
MIT
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:ayase34/gal-view

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Default preset
  2. Installation
  3. Prerequisites
  4. Install from GitHub (one line)
  5. Finish the install
  6. Update to a new version
  7. Uninstall
  8. Development
  9. Structure

中文 | English

A galgame-style conversation view + scene-element visual editor for the DSH Web GUI session page (official bundle plugin format).

Adds a GAL View tab between Chat (「对话」) and Trajectory (「轨迹」) in the session tab bar. Open it and the conversation area becomes a 16:9 galgame stage: placeholder portraits, a large dialogue box, typewriter lines, and player input; the built-in Edit Mode lets you drag, resize and re-layer scene elements like a scene editor, with edits applied to game mode in real time.

image.png

Default preset

gal-scene.json at the repo root is the default preset scene shipped with the plugin (editor export format, with referenced images/fonts embedded): it loads automatically on first launch when no local scene is saved, and Editor Mode's Reset returns to it. To update the preset: edit the scene → export with Ctrl+S → replace the repo-root gal-scene.json with the exported file → npm run build:client and commit.

Installation

The plugin ships in the official bundle format. Install it into the web profile with a single dsh plugin command, then restart web to take effect.

Prerequisites

  • DeepSeek Harness is installed and the dsh command works in your terminal
  • If you run Harness from a source checkout (your everyday command is pnpm dsh): cd into the Harness repo root first and replace dsh with pnpm dsh in the commands below

Install from GitHub (one line)

dsh plugin --profile web add github:Ayase34/gal-view#main

#main means the repository's main branch. To pin a specific version, use a commit hash instead, e.g. #ae73dca.

Finish the install

Restart web afterwards (the bundle layer is composed at startup, so a restart is required for the plugin to load). Open a conversation in the Web GUI — a GAL View tab should appear in the tab bar, between Chat and Trajectory.

Optional check: run dsh --profile web --dump-config; you should see a # == gal-view layer, which means the plugin layer is part of the composition.

Update to a new version

dsh plugin --profile web update gal-view
# restart web afterwards as well

Uninstall

dsh plugin --profile web remove gal-view
# restart web afterwards as well

Note: the scene layout, imported images, fonts and reading progress live in your browser (localStorage / IndexedDB). Reinstalling or uninstalling the plugin does not lose them; clearing the browser's site data resets them.

Development

pnpm install            # install esbuild devDependency
npm test                # pure-logic unit tests (node:test, in-process)
npm run build:client    # generate .dsh-plugin/client.js (generated file - do not hand-edit)
npm run check:client    # verify client.js freshness
npm run smoke           # Playwright smoke (requires DSH_CHECKOUT pointing at a dsh checkout)

Structure

.dsh-plugin/index.mjs     Node half (minimal, no host behavior)
.dsh-plugin/client/       client sources: scene model/typewriter/transcript mapping/components/styles
.dsh-plugin/client.js     build artifact (generated by scripts/build-client.mjs)
scripts/build-client.mjs  esbuild builder (--check freshness gate)
tests/                    pure-logic unit tests (node:test)