Skip to content

v0.17.0

Choose a tag to compare

@clintecker clintecker released this 16 Apr 20:29

Highlights

Per-node backend selection fixed (#91) — backend: claude-code on agent nodes now works. The root cause was dippin-lang's parser silently dropping unrecognized fields. Requires dippin-lang v0.19.1+.

Token & cost governance (#17, #62) — Result.Cost exposes per-provider dollar cost from the library. BudgetGuard enforces --max-tokens, --max-cost, --max-wall-time ceilings that halt the run on breach.

Webhook human gates (#63, #86) — headless execution via --webhook-url. Gates are POSTed to your endpoint; a local callback server waits for the response. Per-gate shared-secret auth, configurable timeout, labeled gate support.

Git artifact tracking (#77) — WithGitArtifacts(true) commits each node outcome as a git revision. --export-bundle produces a portable .bundle file you can git clone anywhere.

Library API Phase 1 (#76) — tracker.Workflows(), OpenWorkflow(), ResolveSource(), ResolveCheckpoint(), Config.ResumeRunID. Library consumers no longer need to shell out to the CLI for workflow discovery or run resume.

Cloudflare AI Gateway (#64) — --gateway-url / TRACKER_GATEWAY_URL routes all providers through Cloudflare's gateway to avoid 429 rate limits.

Comprehensive tracker doctor (#61) — structured checks with actionable errors, --probe for live auth validation, exit code 2 for warnings-only, version compatibility checking.

Breaking changes

  • dippin-lang v0.19.1 required — the parser now rejects unrecognized agent fields instead of silently dropping them. If your .dip files use custom top-level agent fields not in AgentConfig, move them under params:.
  • Embedded workflow files moved from cmd/tracker/workflows/ to workflows/ at the module root.

All changes

See CHANGELOG.md for the full list.

Install

```bash
go install github.com/2389-research/tracker/cmd/tracker@v0.17.0
```

Also update dippin-lang:
```bash
go install github.com/2389-research/dippin-lang/cmd/dippin@v0.19.1
```

Closes

#17, #32, #60, #61, #62, #63, #64, #69, #70, #77, #86, #91