Skip to content

v0.3.2

Latest

Choose a tag to compare

@flyersworder flyersworder released this 20 May 20:20
· 12 commits to main since this release
273d9e0

Patch release: seven framework correctness fixes from a full-framework review.

Fixed

  • ResourceConstraints immutabilityper_tool_limits was mutable after construction and aliased the caller's dict; now a read-only MappingProxyType over a defensive copy.
  • get_model_pricing versioned models — the prefix match returned the first key, mispricing ids like gpt-4o-2024-08-06 as gpt-4; the longest prefix now wins.
  • SkillSpec name validation — rejected valid 64-character names (off-by-one) and accepted consecutive hyphens its own error message forbids; fixed with a structural regex plus an explicit 1–64 length check.
  • ResourceConstraints rejects boolean budgetstokens=True (and boolean per_tool_limits values) no longer pass validation.
  • Cost-axis conservation tolerance — exact-budget cost splits (e.g. 0.1 + 0.1 + 0.1 vs 0.3) no longer spuriously raise ConservationViolationError; a 1e-9 tolerance is applied. Token and per-tool axes are integer-valued and unchanged.
  • ContractAgent strict modestrict_mode=True now raises ContractViolationError as documented, and finalizes the execution log before raising so the audit trail stays complete.

Full changelog: https://github.com/flyersworder/agent-contracts/blob/main/CHANGELOG.md