{"version":"2.1.246","anchor":"local-file-reads-route-through-the-storage-backend-when-it-s","canonical_anchor":"local-file-reads-route-through-the-storage-backend-when-it-s","heading":"Local file reads route through the storage backend when it serves the space","tier":"internal","area":"Settings","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246\/e\/local-file-reads-route-through-the-storage-backend-when-it-s","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.246","markdown":"### Local file reads route through the storage backend when it serves the space\n\nSettings and marketplace files are read once through the storage layer instead of twice.\n\n**What**\n\nMarketplace file probes and start-up settings reads now go through the host storage backend instead of direct filesystem calls, each naming the storage space it wants, and fall back to ordinary file reads whenever the backend is absent, does not serve that space, or errors. A new start-up pass pre-reads `managed-settings.json`, its drop-in directory and the project and local settings layers, seeding parsed files and folder listings so the normal settings walk does not read them a second time. Every failure path is non-fatal, so the effect is fewer duplicate reads rather than any change in which settings win.\n\n**Details**\n\n- Probing for, reading and checking the existence of local marketplace files uses the backend only when the v5 storage backend is present, otherwise the previous direct filesystem calls.\n- Plugin cache locations ask for the `system` space and workspace-relative marketplaces ask for `workspace`.\n- Backend errors on marketplace reads are converted to ENOENT-shaped errors, the standard \"no such file\" shape, wherever a missing file is the intended meaning, and are logged as `failed to read a local marketplace file (v5 backend error)`.\n- The settings pre-read pass runs only if the backend declares it serves the relevant space; when it does not serve `system` the managed-settings tier is skipped and the policy walk reads the host's files itself.\n- The settings store additionally caches directory listings, records which entries were primed rather than read, counts policy walks, and decides per candidate whether a pre-read may be installed, raced or deferred.\n- If the host attests there is no operating-system policy folder but a managed settings file turns up anyway, that attestation is marked contradicted for the rest of the process.\n- Setting `CLAUDE_CODE_MANAGED_SETTINGS_PATH` short-circuits the no-policy-folder branch.\n- Diagnostic lines tagged `settingsPrime:` grew from 10 to 27.\n\n**Evidence**\n\n`failed to read a local marketplace file (v5 backend error)`, `settingsPrime: start-up seed of the ${t} failed: ${p(s)}; the file reads serve`, `settingsPrime: the managed-settings file tier is not read ahead (the backend does not serve 'system'); the policy walk reads the host's files itself`\n\n- Area: Settings\n- Names: `managed-settings.json`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 3\/5"}