diff --git a/MIGRATION_v3_to_v4.md b/MIGRATION_v3_to_v4.md index 7b406e56..07840d04 100644 --- a/MIGRATION_v3_to_v4.md +++ b/MIGRATION_v3_to_v4.md @@ -48,13 +48,16 @@ dependencies = [ ## Fix removed-type imports first — they cascade -Real-adopter feedback (salesagent v3→v4 experiment, 270 files scanned, 161 -test-collection failures): consumers tend to centralize SDK imports in one -schema module, so a single broken import there crashes test collection across -the whole codebase. salesagent re-exported through `src/core/schemas/_base.py` -— **one missing `FormatCategory` import there cascaded into ~140 test failures -during pytest collect-only**, and stubbing it revealed the next ~140-test -cascade from `BrandManifest`, then the next from the `generated_poc` reach-ins. +Real-adopter feedback (salesagent v3→v4 experiment at v4.0 release): 270 files +scanned, 161 test-collection failures. These figures reflect tooling at initial +release, before subsequent alias coverage and codemod improvements; run the codemod against +your own tree to see your actual count. Consumers tend to centralize SDK imports +in one schema module, so a single broken import there crashes test collection +across the whole codebase. salesagent re-exported through +`src/core/schemas/_base.py` — **one missing `FormatCategory` import there +cascaded into ~140 test failures during pytest collect-only**, and stubbing it +revealed the next ~140-test cascade from `BrandManifest`, then the next from +the `generated_poc` reach-ins. The codemod's static finding count understates this by 100x+. To minimize the felt blast radius, work in this order: