Skip to content
This repository was archived by the owner on Aug 5, 2026. It is now read-only.

v0.0.30 β€” always-on protections + full robustness audit

Choose a tag to compare

@GrokBuildMJW GrokBuildMJW released this 14 Jul 16:07

An early preview. main is a development snapshot; treat releases as previews.

Highlights

Protections are always-on and secure-by-default. A repo-wide audit of every config-switchable function established the principle a protection mechanism must not be switchable, and made the guarantees non-optional:

  • Design β†’ build lifecycle, completion authority, coder authorization + audit ledger, the untrusted-result injection fence, and the OS execution sandbox (bwrap/firejail on Linux) are mandatory and fail-closed β€” not switchable off.
  • Secure deployment defaults: fresh servers bind loopback under the unauthenticated profile and refuse non-loopback exposure without explicit auth; search/forge default off; connection/coder timeouts are finite and ceiling-bounded.
  • Typed config schema + transactional /config set (clone β†’ validate β†’ derive β†’ commit-or-rollback), a generated config reference, and a documented-switch/read-switch parity guard so a raw config gate outside the typed accessor fails CI.
  • Build-boundary egress tripwire (advisory supply-chain signal driven by the approved design's network posture).

A full-Ironclad robustness audit hardened ten defects across the engine and the terminal client:

  • Whole process-tree termination for model commands and coder launches on timeout/cancel; a hard per-coder wall-clock; bounded model-facing filesystem I/O and Ink output capture.
  • Atomic skill-catalogue install and transactional multi-file generation (no data-loss on a failed write); fail-closed MPR evidence retention with verified deletion.
  • Tool-result delivery that resends independent of the reconnect edge; a serialized, seal-on-stop session heartbeat; /update runs executable+argv without a shell and validates its source path.

See the CHANGELOG for the full list.

Install: pip install ironclad-ai==0.0.30