Foreword

When performing experiment tracking or project management in DSH, you need to consider Gantt charts, boards, cycle management, and collaboration comments simultaneously. Manually maintaining these scattered tools has low efficiency. The dsh-progress plugin integrates the original single-page application “Progress.html” into DSH, providing a unified entry point for project progress management through Agent tools and a sidebar interface. Data is stored in the session project directory and supports sharing with the interface.

Core Features

  • 16 Agent tools: Provide interface operations for the full workflow, from creation and updating to searching and exporting.
  • Sidebar integration: Registers a “Progress” Tab to dsh-better-sidebar, hosts the original interface via iframe, and preserves all features such as map, board, Gantt, and Word/PPTX export.
  • Data storage: Data is stored in the session project directory under .progress/progress.json (schemaVersion 3), attachments are stored in .progress/files/, and package files are stored in .progress/package/.
  • Import and export: Supports exporting JSON, Markdown, Word/PPTX, and a complete project folder package.
  • Collaboration and search: Supports collaboration comments and global search, and can display context snippets from arrangements, boards, and comments.

Installation and Activation

Installation using the official installation script is recommended. This script automatically handles the network environment and pnpm supply-chain protection policies.

curl -fsSL https://raw.githubusercontent.com/lsqace-del/dsh-progress/main/scripts/install.sh | bash

The installation script uses the desktop profile by default. If you need to specify another profile (for example web), run:

curl -fsSL https://raw.githubusercontent.com/lsqace-del/dsh-progress/main/scripts/install.sh | bash -s -- web

2. Use CLI Commands

If the network environment is good, you can install it using CLI. Note: there is a same-name unscoped npm package dsh-progress (0.0.1), which is unrelated to this plugin. Do not install it. The npm package name for this project is @lsqeon/dsh-progress.

dsh plugin --profile desktop add dsh-better-sidebar @lsqeon/dsh-progress

After installation, you need to restart DSH Desktop (or dsh web) to see the “Progress” Tab in the sidebar.

Agent Tools List

The plugin provides 16 progress_* series tools for managing progress directly in conversations.

Tool Name Description
progress_list List filtering (status/project/date/template/text), returns matched rows and total count
progress_get Retrieves full details for a single item and the current day’s board page
progress_create Creates a new arrangement (including nine-step record fields)
progress_update Partial field update (including starred/reminders)
progress_delete Deletes an arrangement and its comments
progress_board Board page read/write (get/set/addPage/deletePage/renamePage)
progress_daily_record Read/write daily records for cross-day arrangements
progress_search Global search (arrangements/board/comments, with context snippets)
progress_overview Overview statistics (overdue definition: not done/paused and endDate < today)
progress_gantt Retrieves Gantt data (rows, dependency edges, metrics)
progress_cycle Cycle range read/write
progress_comments / progress_comment_add Collaboration comments
progress_import Imports project data / shared HTML / JSON (merged by id)
progress_export Exports json / teacher-html / markdown / package
progress_info Views storage path and statistics

Typical Usage

  1. Manage in conversation: Use progress_list to view current arrangements, or use progress_create to quickly create a new task.
  2. Visual interface: Open the visual interface via the “Progress” Tab in the sidebar to perform Gantt chart dragging or board editing.
  3. Export data: Call progress_export in conversation to export JSON or Markdown files, or export Word/PPTX in the interface.

Known Limitations

  • Concurrent editing: If the interface and Agent tools concurrently write to the same file, unsynchronized changes may be lost due to storageRevision conflicts (returning a 409 error).
  • Notification permissions: Reminder alarms/notifications inside the iframe may be affected by browser permission policies and might be unavailable.
  • Export formats: The package export of progress_export is a server-side simplified version; it is compatible with, but not byte-for-byte identical to, the full package format exported from the UI.
  • Routing rules: Prefix route registration must not include a trailing slash (for example /progress, not /progress/), otherwise static assets cannot be accessed.

Notes

  • The plugin code accesses the server through the Electron renderer header x-dsh-desktop-renderer; direct requests in a shell environment will return 403.
  • If pnpm reports an error during installation, check whether the profile’s pnpm-workspace.yaml includes allowBuilds: node-pty: true.