Skip to content

v0.1.0 — CI failure auto-diagnosis for DeepSeek Harness

Choose a tag to compare

@jkrandom-sudo jkrandom-sudo released this 14 Aug 09:03
· 4 commits to main since this release
ce44fa2

First release of dsh-ci-doctor: watch GitHub Actions for new failures, diagnose raw job logs into structured findings, and remember every failure signature across diagnoses — all through two agent tools and your authenticated gh CLI.

Features

  • ci_watch — background watch job on the host jobs registry: baseline-aware polling for new failed runs (historical red never fires the alarm), exponential backoff on transient errors, kill any time via job_kill, detection summary with a ready-made ci_diagnose next step.
  • ci_diagnose — fetches failed-run jobs/logs through the host shell + gh CLI, extracts normalized error signatures, classifies failures (test/build/lint/typecheck/dependency/network/permission/timeout/infra), mines suspect files, renders a markdown diagnosis card with honestly trimmed log excerpts.
  • Failure-signature ledger — durable via the host storage domain (ci_doctor unit, lazy open with memory fallback); repeat failures surface as seen N×.
  • Read-only contract — every canonical result carries repositoryWrites: false; optional invariant companion (dsh-ci-doctor/invariant) fails loudly if a result ever loses the marker.
  • Robust gh transport--jq projections keep API payloads under the host shell's 64 KiB capture cap; raw job logs get a raised stdoutMaxBytes budget; failures classified (auth/not-found/rate-limit/timeout/api).

Tests

  • 85/85 unit tests green — signature extraction/normalization, log trimming, gh client, watcher state machine, ledger (memory + domain), plugin wiring, invariant companion.

Docs

Verification conclusions

  • Local gate: pnpm typecheck ✅ · pnpm test (85/85) ✅ · pnpm build ✅ · pnpm format:check
  • Real environment: in-process boot() of the actual local web profile composition (dsh-app-boot exports, webserver overlaid to port 0) — 18/18 checks passed: tools registered on the real ToolRuntime, both waterfalls accepted the real host exec shape { name, arguments }, live read-only diagnosis of cli/cli run #31782742089 extracted 8 signatures, a real watch job streamed its baseline and settled on kill, and the ledger persisted to ~/.dsh/storages/ci_doctor.json across process exit.
  • The real-environment check caught and fixed two genuine bugs before release: a service mount-order race (shell/storageDomain now resolved lazily) and shell capture truncation of large gh api payloads (now --jq-projected).

Full Changelog: https://github.com/jkrandom-sudo/dsh-ci-doctor/commits/v0.1.0