{"version":"2.1.263","anchor":"effort-medium-nudge-remote-config-now-validated-for-effort-l","canonical_anchor":"effort-medium-nudge-remote-config-now-validated-for-effort-l","heading":"Effort-medium-nudge remote config now validated for effort-level ordering, plus fromEffort\/toEffort treated as invalid fields","tier":"internal","area":"Effort Nudge","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.263\/e\/effort-medium-nudge-remote-config-now-validated-for-effort-l","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.263","markdown":"### Effort-medium-nudge remote config now validated for effort-level ordering, plus fromEffort\/toEffort treated as invalid fields\n\nServer-served effort nudge text is now rejected outright if its effort-level ordering looks invalid.\n\nThe parser for the server-served effort-medium-nudge copy now runs parsed config through a new validation wrapper `Aet`, which calls `w3t` to check that every level in `fromEffort` is strictly below `toEffort` using an ordering array `om`. If the ordering check fails, the config is rejected and `g(\"effort_medium_nudge\", \"served_copy_invalid\")` is recorded. Also, when the initial `safeParse` fails and the invalid fields include `fromEffort` or `toEffort`, the app now discards the whole served copy instead of stripping just the bad fields and salvaging the rest, as it previously did.\n\n- Flag `tengu_radiant_island`: Not enough to say (read for one account on one subscription tier against v2.1.263; this account: no value returned, anonymous baseline: no value returned, compiled default: no gate table built for this version) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Effort Nudge\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}