Skip to content

v1.16.1 — annotation honesty + parsing fixes

Choose a tag to compare

@muchiny muchiny released this 07 May 06:11
· 567 commits to main since this release

v1.16.1 — annotation honesty + parsing fixes

Annotations (security):

  • Add MutatingIdempotent annotation kind (4th variant)
    preserves idempotent_hint=true on convergent mutators
  • Fix 8 mis-tagged tools that lied about being read_only:
    ssh_k8s_apply, ssh_iis_restart, ssh_nginx_reload,
    ssh_service_restart, ssh_service_daemon_reload,
    ssh_win_service_restart, ssh_alert_set, ssh_helm_rollback
  • New tests/annotation_audit.rs: CI gate enforcing
    name x annotation coherence by suffix rule + allowlist
  • Couples cleanly with security.require_elicitation_on_destructive
    so confirmation dialogs fire on real state changes

Parsing fixes:

  • ssh_storage_df: prepend LC_ALL=C so headers stay English
  • ssh_storage_lsblk: --list flag drops Unicode tree glyphs
    (box-drawing chars shifted byte alignment, broke gutter detection)
  • ssh_process_list: replace 'grep | grep -v grep' with awk that
    preserves NR==1 (header) so columnar parser keeps working

Misc:

  • Restore [dev-dependencies] block (tempfile, criterion, filetime,
    tracing-test, proptest, insta) — cargo test --all-targets --no-run
    now compiles again
  • README: 4 hero workflows up-front (Linux service, K8s with 80%
    fewer tokens, cross-platform, audited destructive)
  • Sync tool counts to 357/75/9; drop phantom protocols from docs

Verified: 6974 lib tests + 5 audit tests + 246 process + 104 storage
all green. cargo fmt --check + clippy -D warnings + cargo deny pass.
Tested live on raspberry pi 5 (k3s + plex + argocd stack).

Full Changelog: v1.16.0...v1.16.1