Skip to content

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 11 Jul 13:00
· 195 commits to main since this release

Fixed

  • The per-repo mirror keeps run branches under refs/heads/*, out of reach of a fetch, so a run in
    flight keeps its branch. (#39)
  • A reaper reconciles run worktrees on disk at startup and after each stage, tuned by
    DAHRK_RETENTION_MAX_RUNS / DAHRK_RETENTION_MAX_AGE_MS and previewable with
    DAHRK_REAPER_DRY_RUN=1. (#39)
  • A stale worktree's branch claim is cleared before a new worktree is created, and any discarded tip
    is parked under refs/dahrk/salvage/. (#39)

Changed

  • dahrk start installs and starts the always-on service and returns; use dahrk start --foreground
    (or DAHRK_FOREGROUND=1) for the blocking worker. (#38)

Added

  • The node writes a structured log at ~/.dahrk/logs/node.jsonl, always at debug, rotated at 10 MB
    across five generations. (#40)
  • dahrk logs --run <runId>, with --level and --json, filters a stage's lines by the identifiers
    the hub knows the run by. (#40)
  • dahrk diagnose writes a local support bundle: identity, version, host, doctor verdict, log tail
    and crash records, uploading nothing. (#40)
  • Uncaught exceptions and unhandled rejections are written to ~/.dahrk/logs/crashes/<timestamp>.json
    and the node carries on (DAHRK_CRASH_EXIT=1 to exit instead). (#40)
  • dahrk stop, dahrk restart and dahrk logs [-f] [-n <lines>], with dahrk status distinguishing
    a deliberately stopped node from a crash-looping one. (#38)
  • The node reports an available client update at dahrk start, in dahrk status, and once a day in
    its log; disable with DAHRK_NO_UPDATE_CHECK=1. (#38)

Fixed

  • Git operations are logged: clone, mirror refresh and worktree create all appear at debug. (#40)
  • Everything written to a log is scrubbed of credentials in URLs, sensitive keys, and token-shaped
    strings. (#40)
  • Failures on best-effort paths, such as shipping a stage's final trace to the hub, are logged rather
    than silent. (#40)
  • A node piped into a command that exits first (dahrk start | head) exits quietly instead of writing
    crash records. (#40)
  • The containerised Pi runtime drains its error output, so a container with much to say cannot block
    on a full pipe. (#40)
  • A node takes a lock at ~/.dahrk/node.pid, so a second node on the same machine refuses to start.
    (#38)
  • Linux nodes write ~/.dahrk/logs/node.{out,err}.log like macOS, rotated past 10 MB, and
    dahrk logs reads them on every platform. (#38)
  • dahrk status reports the log path from a single definition that honours DAHRK_STATE_DIR. (#38)