You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
server: let PrincipalResolverError carry a stable error code (#1633) (cf96d57), closes #1623
Bug Fixes
adagents: strip surrounding whitespace in normalize_url (#1629) (4e2ae8f), closes #1624
compat: infer display_tag and every 3.2 asset type from the asset key (#1628) (88cf04a), closes #1624
compat: never downgrade into a payload the older schema refuses (#1630) (b5234e2)
decisioning: project ADCPTaskError from platform methods to its own wire error (#1632) (7b95b26), closes #1622
reporting: classify pending status and owed history as transient, unresolved references as REFERENCE_NOT_FOUND (#1631) (a2ec81c), closes #1618
testing: stop build_all_models hanging after a generated_poc alias import (#1626) (6f61234), closes #1619
types: inherit the generated field on every hand-written redeclaration (#1625) (6e0ed68)
Behaviour notes
Parsed URLs, datetimes, UUIDs and emails keep their received spelling (#1610 / #1617), so digest-covered objects such as AudienceEvidence round-trip their content_digest. str() and JSON output no longer add a trailing slash to a bare origin or rewrite +00:00 to Z. Values are subclasses (type(x) is datetime is false; isinstance holds), and str(url)-keyed caches see different spellings of one URL as different. Strings that aren't strict wire syntax are still normalized, and the JSON Schema is unchanged. model_dump_as_received() dumps an object exactly as received. The default dump still doesn't reproduce terms_digest for commercial terms and canonical proposals (#1613).
Reporting error recovery (#1618): pending status and owed history are now transient, and an unresolved buyer reference is REFERENCE_NOT_FOUND / correctable instead of terminal. Buyers that stopped on these will now retry or correct.
3.2 → 3.1 conversion (#1621) never emits a payload the 3.1 schema refuses: it drops the optional parent, maps a structured value down, or returns a structured conversion error.