Release 0.22.0
Pup 0.22.0
Installation
# macOS (Apple Silicon)
curl -L https://github.com/datadog-labs/pup/releases/download/v0.22.0/pup_0.22.0_Darwin_arm64.tar.gz | tar xz
# macOS (Intel)
curl -L https://github.com/datadog-labs/pup/releases/download/v0.22.0/pup_0.22.0_Darwin_x86_64.tar.gz | tar xz
# Linux (x86_64)
curl -L https://github.com/datadog-labs/pup/releases/download/v0.22.0/pup_0.22.0_Linux_x86_64.tar.gz | tar xz
# Linux (arm64)
curl -L https://github.com/datadog-labs/pup/releases/download/v0.22.0/pup_0.22.0_Linux_arm64.tar.gz | tar xzWASM
- WASI (
pup_wasi.wasm): Run in Wasmtime or any WASI Preview 2 runtime - Browser WASM (
pup_browser_wasm.tar.gz): npm-ready package withPupClientJS class and TypeScript definitions
Verifying
# Verify checksums
sha256sum -c pup_0.22.0_checksums.txt
# Verify signature (requires cosign)
cosign verify-blob \
--bundle pup_0.22.0_checksums.txt.sigstore.json \
pup_0.22.0_checksums.txtChangelog
Features
- 0b6b596: feat(ci): add Rust release workflow for tag-based GitHub releases (@platinummonkey)
- ca8bda9: feat(wasm): add WASI Preview 2 build target with feature flags (@platinummonkey)
- a9f38e6: feat(wasm): add browser WASM build target with wasm-bindgen PupClient (@platinummonkey)
Bug Fixes
- f01b224: fix(auth): load OAuth tokens from keychain in Config initialization (@platinummonkey)
- 520005e: fix(ci): deduplicate builds, fix cross-compile, run cargo fmt (@platinummonkey)
- aa4f12a: fix(ci): deduplicate push/PR builds, fix aarch64 cross-compile (@platinummonkey)
- 88d9669: fix(ci): replace third-party Actions with inline rustup commands (@platinummonkey)
- cf6f451: fix(ci): split cross-compile into Linux and macOS jobs (@platinummonkey)
- 6ab5368: fix(ci): vendor OpenSSL for cargo-zigbuild cross-compilation (@platinummonkey)
- 6d52cca: fix(mockdd): eliminate all both-fail and Rust-only failures (@platinummonkey)
- 41ab6b2: fix(mockdd): fix all mock fixtures for Rust strict deserialization (@platinummonkey)
- 3121459: fix(release): fix goreleaser v2 config YAML parsing errors (@platinummonkey)
- 88bb2f8: fix(release): gitignore zig toolchain extracted by cargo-zigbuild (@platinummonkey)
- da83615: fix(release): replace deprecated archives.format with formats list (@platinummonkey)
- 2db8d97: fix(release): stage WASM artifacts in wasm-out/ instead of dist/ (@platinummonkey)
- e82c577: fix(release): use git describe instead of GORELEASER_CURRENT_TAG in hook (@platinummonkey)
- a105830: fix(release): use macOS runner to cross-compile all targets (@platinummonkey)
- 7a6f5a4: fix(report): use deterministic IDs based on command+mode instead of counters (@platinummonkey)
- 7746d9b: fix: add missing agent schema sections critical for AI agents (@platinummonkey)
Other Changes
- c99544a: Fix audit-logs search 400 Bad Request by parsing time strings (@srosenthal-dd)
- 5181670: Merge branch 'main' into refactor/rewrite-it-in-rust (@platinummonkey)
- 46769a7: Merge pull request #100 from srosenthal-dd/stephen.rosenthal/fix-audit-logs-search-400 (@platinummonkey)
- 73dd798: Merge pull request #101 from srosenthal-dd/fix/app-keys-api (@platinummonkey)
- b1abd02: Merge pull request #103 from datadog-labs/refactor/rewrite-it-in-rust (@platinummonkey)
- db0be71: Merge pull request #104 from datadog-labs/docs/update-readme-api-coverage (@platinummonkey)
- bbc3b39: chore(ci): drop macOS test runner, add cargo dependency caching (@platinummonkey)
- de8a821: chore(deps): update openssl-src 3.5.4 → 3.5.5 (security fixes) (@platinummonkey)
- 1ddf633: chore(pup-rs): add Cargo.lock and .gitignore (@platinummonkey)
- 489aac3: chore(pup-rs): cargo fmt, suppress dead-code warnings, clean clippy (@platinummonkey)
- 312b1fe: cleanup rust migration doc (@platinummonkey)
- b4baf86: docs(migration): add comprehensive Rust migration plan (@platinummonkey)
- 2e417e6: docs(pup-rs): add HTML parity report with side-by-side Go vs Rust output (@platinummonkey)
- 149c326: docs(pup-rs): add commands + env vars to HTML parity report (@platinummonkey)
- 9dc0f1b: docs(pup-rs): comprehensive parity report with help, errors, and API responses (@platinummonkey)
- 7a8d8cb: docs(pup-rs): numbered diff IDs + inline JSON diff highlighting in report (@platinummonkey)
- 3e9425d: docs(readme): update API coverage tables for post-rewrite state (@platinummonkey)
- c723bfe: feat(pup-rs): add CRUD operations for SLOs, downtimes, notebooks, API keys (@platinummonkey)
- ca1721d: feat(pup-rs): add Phase 2 Tier 1+2 commands (10 command groups, 49 subcommands) (@platinummonkey)
- 633d796: feat(pup-rs): add Phase 2 Tier 3 commands (security, orgs, cloud, cases, service-catalog) (@platinummonkey)
- 942d24f: feat(pup-rs): add Phase 2 remaining commands (31 total command groups) (@platinummonkey)
- f8fe3f1: feat(pup-rs): add apm, investigations, alias commands (40 total) (@platinummonkey)
- 7582d99: feat(pup-rs): add detailed help text with examples to all 44 command groups (@platinummonkey)
- 942d2ff: feat(pup-rs): add remaining typed API commands (37 total command groups) (@platinummonkey)
- 3bdce6f: feat(pup-rs): add shell completions, create/update/search subcommands (@platinummonkey)
- 2e93c5f: feat(pup-rs): add ~48 subcommands for full Go parity + mock server comparison testing (@platinummonkey)
- 191da94: feat(pup-rs): agent mode JSON schema for --help + 250 description updates (@platinummonkey)
- c53c471: feat(pup-rs): complete all 46 command groups, CI pipeline, migration doc update (@platinummonkey)
- 8ebf379: feat(pup-rs): implement Phase 0 spike and Phase 1 foundation (@platinummonkey)
- ad61692: feat(pup-rs): output parity + 16 missing subcommands + command structure fixes (@platinummonkey)
- a0c5542: feat(pup-rs): wire output format flag + add monitors get/delete, incidents get (@platinummonkey)
- 997b2df: feat(pup-rs): zero description mismatches + 8 missing commands + structural fixes (@platinummonkey)
- 4db8f01: fix(app-keys): replace Action Connection registration API with standard Application Keys API (@srosenthal-dd)
- 6e90409: fix(app-keys): replace ActionConnection API with standard Application Keys API (@platinummonkey)
- 60f4ae4: fix(pup-rs): achieve 0 output diffs vs Go CLI in E2E comparison (@platinummonkey)
- e5810c8: fix(pup-rs): proper agent mode via FORCE_AGENT_MODE env var, not --agent flag (@platinummonkey)
- 5b6e747: refactor(ci): use GoReleaser + cargo-zigbuild for releases and cross-compile (@platinummonkey)
- bc2dfaf: refactor: move Rust to top level, remove Go code entirely (@platinummonkey)
- 018623e: remove tests parity report (@platinummonkey)
- 74a3748: style(auth): match Go formatting for login/status, sort help commands (@platinummonkey)
- 817ba2d: test(app-keys): add unit tests for application key commands (@srosenthal-dd)
- f3a5a47: test(audit-logs): add unit tests and validate inputs before API calls (@srosenthal-dd)
- 3db94b4: test(pup-rs): add comprehensive unit tests (60 total, up from 12) (@platinummonkey)
Full Changelog: v0.21.0...v0.22.0