Parent: #66. Discovered while running the optimized full Zig aggregate for #693.
home.zig exposes FeatureFlags from core/feature_flags.zig. That maintained port still documents two temporary static fallbacks:
bake()returns onlyEnvironment.isDebug, omitting upstreamis_canaryandBUN_FEATURE_FLAG_EXPERIMENTAL_BAKE.get().isLibdeflateEnabled()returns only the platform support constant, ignoringBUN_FEATURE_FLAG_NO_LIBDEFLATE.get().
The typed environment-variable surface now exists at home.feature_flag, and bun_core/feature_flags.zig already contains the complete reference semantics. Port those semantics into the shared Home surface, preserving platform restrictions, real opt-in/opt-out behavior, and cache/initialization ownership. Do not hardcode experimental Bake enabled or disable compression unconditionally.
Observed integration context: zig build test --summary all -j2 -Doptimize=ReleaseFast builds a home-debug entry point with ReleaseFast shared runtime modules. The existing Bake scripts assume debug-enabled Bake. The development framework fixture exits with Bun.serve() needs either ... routes ... or a fetch handler; a separately retained production reproduction rejects build --app with the canary-upgrade message. This is not a claim that the default Debug aggregate fails for the same reason. BUN_DEV_SERVER_TEST_RUNNER=1 alone is not the experimental Bake opt-in.
Validate a real explicit BUN_FEATURE_FLAG_EXPERIMENTAL_BAKE=1 production build and development framework server in an optimized Home process, the disabled/default behavior, invalid application diagnostics, and actual enabled/disabled libdeflate paths. If the integration scripts must run across optimization modes, configure their documented experimental feature explicitly without changing assertions, routes, fixture content, or deadlines.
Keep this separate from the TypeScript rest-binding failure (#695) and intermittent Chrome startup (#694).
A direct reproduction with the final optimized Home executable and BUN_FEATURE_FLAG_EXPERIMENTAL_BAKE=1 BUN_DEV_SERVER_TEST_RUNNER=1 home build --app ./app.ts --outdir ./dist also exits 1 with the same canary-upgrade message. This confirms that the documented opt-in is ignored, beyond the optimized aggregate's default-disabled Bake configuration.