From edcd7c478dea3195b1653f9ba742aae628fb6a77 Mon Sep 17 00:00:00 2001 From: Austin Stark <14080242+ausmaster@users.noreply.github.com> Date: Mon, 8 Jun 2026 12:23:09 -0700 Subject: [PATCH] Coerce config via pydantic TypeAdapter instead of type-name parsing coerce_value now validates each config value against its field's real pydantic TypeAdapter (a "TryParse"): attempt the value, return it coerced on success, and leave it unchanged on ValidationError so the schema pass reports the real error rather than coercion silently swallowing it. config_type_index is rebuilt by walking the materialized config schema (global config + every module's exec'd Config), memoizing one TypeAdapter per annotation. Nested models are recursed into via _field_submodel, so modules..