.llms/rules/ACR_mc_gating_behavioral_changes.md
Severity: HIGH — Ungated changes to shared image loading infrastructure cannot be rolled back without a new release
KFrescoController, FrescoController2Impl, or ImagePipelineconfig.useNewBehavior / MC flag guard// BAD — Always-on behavioral change, can't roll back
fun fetch(request: ImageRequest): DataSource<CloseableReference<CloseableImage>> {
return newFetchImplementation(request) // ❌ No way to revert without code push
}
// GOOD — Gated with MC flag, can be disabled server-side
fun fetch(request: ImageRequest): DataSource<CloseableReference<CloseableImage>> {
return if (config.useNewFetchImplementation) {
newFetchImplementation(request) // ✅ Can be disabled via MC
} else {
existingFetchImplementation(request)
}
}