{"version":"2.1.281","anchor":"env-and-permissions-settings-schemas-are-now-built-lazil","canonical_anchor":"env-and-permissions-settings-schemas-are-now-built-lazil","heading":"env and permissions settings schemas are now built lazily","tier":null,"area":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281\/e\/env-and-permissions-settings-schemas-are-now-built-lazil","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.281","markdown":"### `env` and `permissions` settings schemas are now built lazily\n\nThe `env` and `permissions` parts of the settings format are now only prepared the first time they are needed\n\n**Unclear.** The finding does not say whether this makes any difference a user could notice, such as faster start-up.\n\n**What**\n\nClaude Code checks your settings files against a description of what each setting may contain. That description is called a schema. The schemas for the `env` and `permissions` settings are now built only the first time something uses them, not up front. This is done by a new internal wrapper called `ZodDeferredOptional`.\n\nThe wrapper refuses any inner schema that already accepts a missing value on its own, such as one marked optional or given a default.\n\n**Why**\n\nFor someone using Claude Code, this changes when work happens inside the program rather than what your settings mean. The `env` and `permissions` settings are written and read the same way as before."}