Introduction¶
When running long tasks, the Agent runs in the background while the user waits on the frontend. The native session view only has Chat and Trajectory: To know the current progress, one must scroll through the history; to see if there is an approval popup, one must stare at the original conversation. There’s nothing to do during the waiting period. WaitBuddy merges these three tasks—‘viewing progress + being reminded + killing waiting time’—into a single session tab. It is explicitly designed for monitoring only and does not reverse-control the Agent.
Below, I introduce dsh-wait-buddy, maintained by CelineHuangdz. It is a session-view plugin for DSH Desktop that adds a WaitBuddy tab next to Chat/Trajectory in the current session, providing long-task status, approval/failure alerts, and two mini-games, Snake and Gomoku. In the M3 phase, Agent events will drive the mini-games in one direction.
What is it?¶
WaitBuddy is a session-view plugin for DSH Desktop, maintained by CelineHuangdz, currently version 0.4.1, tested on DSH 0.2.1-rc.5. It solves the problem of “observability” and “idling during the waiting period” for long tasks: putting progress and pending approval reminders into a permanent panel, and filling the waiting time with lightweight games.
It has three boundaries stated at the beginning of the README: never controls the Agent, never intercepts native approval popups, and never writes to session logs.
Core Features¶
Monitoring Dashboard¶
- Registered as a session view on
conversation.view, located right next to Chat/Trajectory. - Status is displayed truthfully as
loading / ready / degraded / stale; missing projections are not shown as ‘idle’. - Steps display ‘N steps completed’, with no total steps or percentage.
- The activity stream only takes command/tool entries from
tool/call(max 3), excluding raw model reasoning content (D27). - Approval/failure alerts are placed in an alert rail independent of scrolling content, always visible.
Mini-games¶
- Snake: Canvas drawing, no external resources, arrow key control, direction queue, pause/reset, speed presets.
- Gomoku: 15x15 board, human plays Black against heuristic AI, adjustable difficulty, redraw on resize.
- Both games maintain their own state; switching views or sessions only pauses, does not reset.
One-way Signals (M3)¶
- Approval appears → Game auto-pauses, showing “Waiting for approval”.
- Approval handled → Does not auto-resume, overlay shows “Handled — press Space or click Resume”.
- step +5 points, success +50 points, failed/abort only shows a prompt, does not reset the current round.
- Signals are published as
agent:*, games only consume them; the monitoring layer defines no reward logic.
Installation & Enablement¶
Installation methods are given in the README’s Quick start. In DSH, go to the sidebar Plugins → Add plugin, then choose a method to enter:
github:CelineHuangdz/dsh-wait-buddy
The Values for the other three methods are:
/abs/path/to/dsh-wait-buddy # Local directory (for development, run pnpm install first)
dist/dsh-wait-buddy-0.4.1.tgz # tarball (absolute path)
dsh-wait-buddy # npm package (may lag behind the repository)
The differences are: Git method follows the latest commit; local directory requires pnpm install first because the Host side uses zod to validate the projection schema; tarball is generated using npm pack --patch-destination dist; the package on npm may lag behind this repository. After installation, enable the plugin and refresh the page, then select WaitBuddy in the session view tab.
Note that there is no dsh plugin add command-line entry; the local directory is the only method requiring pnpm install first.
Typical Usage¶
After installation and opening a session, use it in the following order:
- Open the session, switch to the WaitBuddy tab.
- Send a task: status, steps, and activity stream update from
turn/start/step/end/tool/call. - Click Start game to start a Snake game; arrow keys only work when the view has focus, click the board once first.
- When approval appears, the game auto-pauses; after handling it in the native approval panel, manually click Resume.
- When the task succeeds, +50 points; switching views will not replay this toast.
As per README, arrow keys only work within the view and won’t steal focus from the composer; pure touch/pointer devices cannot control direction (D7, approved deviation).
Configuration¶
There are few configuration items, all stored in browser local storage under the key dsh-wait-buddy.settings.v1, no environment variables, no remote configuration:
| Configuration Item | Values |
|---|---|
| Snake Speed | Slow / Normal / Fast |
| Gomoku Difficulty | Easy / Medium / Hard |
High scores and current game are only stored in memory (M4 candidate). Settings are not uploaded and do not sync across devices.
Use Cases & Notes¶
Suitable for those running long Agent tasks in DSH Desktop who want to keep a permanent observation window; also suitable for users who want to play some mini-games while watching long tasks. The README states the supported range is DSH 0.2.1-rc.5; no promises for other versions.
What to note: The plugin runs under the permissions of the current DSH process; check source code and license (MIT) before installing. The README also lists known deviations—D7 only has keyboard arrow keys; D16/D17 Gomoku/Settings entered M4 range early; D28 Question/Plan review delayed; D22 unknown terminal displays aborted with reason text, no new enum added. Also, 320px width has a visual regression cover; a real double-instance smoke test is still needed before release.
Conclusion¶
The value of WaitBuddy lies not in making the Agent faster, but in making the waiting process observable, uninterrupted, and not boring: a read-only monitoring panel plus two mini-games. Its design is always one-way; Agent events can only affect the games, and games cannot affect the Agent in reverse.
To find this plugin, see the Skills directory page and repository:
- https://www.skillhub.cn/plugins/CelineHuangdz/dsh-wait-buddy
- https://github.com/CelineHuangdz/dsh-wait-buddy