Skip to content

Releases: dshworks/dsh-watch

v0.1.1 — live-verified

Choose a tag to compare

@lroolle lroolle released this 14 Aug 19:16

Verified working end-to-end in a real dsh --profile web session on 0.1.0-rc.6 with DeepSeek-V4-Pro: arm a watch → non-matching lines stay silent → a matching line wakes the idle agent with a bounded notice → job_kill watch-1 disarms through the stock jobs surface → post-disarm appends stay silent.

Why upgrade from v0.1.0:

  • Leak-proof arming: if the job registry rejects a watch after the producer already armed its poller, the poller is torn down before the error surfaces (the JobStart cleanup contract), with a regression test — 50 tests total.
  • CI: GitHub Actions runs syntax checks + the full suite on every push and PR; badge in the README.
  • Cleaner packaging (stray pnpm-workspace.yaml artifact removed, esbuild declared via pnpm.onlyBuiltDependencies) and clearer tool-call presentation titles.

Install: dsh plugin --profile web add github:dshworks/dsh-watch (pnpm on PATH — thanks @groksense for the docs fix in #1).

🤖 Generated with Claude Code

v0.1.0 — first watch

Choose a tag to compare

@lroolle lroolle released this 14 Aug 17:10

The DeepSeek Harness analog of Claude Code's Monitor tool: arm a background watch on a long-running command or a growing file and get woken by new matching lines, batched and budgeted, while watches live as first-class background jobs (job_list / job_output / job_kill).

Why you'd want it: the stock jobs subsystem tells you when background work finishes. A watch tells you when it says something — a dev server logging Ready, a CI log printing FAILED, a log file growing.

60 seconds: dsh plugin --profile web add github:dshworks/dsh-watch, restart the profile, then watch(source: "command", command: "npm run dev", pattern: "error|Ready").

49 tests cover line assembly across chunk boundaries, multibyte-safe byte caps, batching, filters, wake/event budgets, truncation honesty, and teardown. Plain ESM — nothing builds at install time.

🤖 Generated with Claude Code