pub fn declared_immutable(
project_root: &Path,
) -> Result<ImmutableGlobs, BundleError>Expand description
Read a component’s declared immutable patterns from
<project_root>/mesofact.config.toml, [build] immutable — beside
[build] public_dir, in mesofact’s own project config.
Why not workload.toml, which is where R825 first suggested it:
workload_spec::BuildConfig is deny_unknown_fields AND rides the kamaji
postcard wire (positional, non-self-describing), so a new [build] key
there is a fleet wire change touching yah, yubaba and kamaji to state a
fact no node ever reads. This one is consumed only at build and assembly
time, by mesofact-build and by this crate. A component that is not a
mesofact project (a Trunk app) gets a two-line mesofact.config.toml
carrying just this table.
The single reader of the key: mesofact-build calls it for the manifest’s
static_assets[].immutable, assembly calls it via
finalize_component_output. No file ⇒ nothing declared. A malformed
file, or a pattern ImmutableGlobs::new rejects, IS an error — a deploy
that quietly drops a declaration is the failure this module exists to
remove.