From b8fa2a66526423396ac46a474f6303cb58956b64 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Wed, 8 Jul 2026 05:20:47 -0700 Subject: [PATCH] FN-7670: document negative result of extending engine-core pre-bundle to @fusion/engine relative-import graph MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prototyped extending the @fusion/core pre-bundle alias lever to @fusion/engine's relative-import production graph reached by the 18 gate files, but an A/B showed no clear win over the @fusion/core-only bundle, so the change was not landed and only the rationale is recorded. - Added an FNXC:EngineTests comment block in packages/engine/vitest.config.ts documenting the FN-7670 prototype (171 first-party files → 35 output files via esbuild multi-entry splitting) - Recorded the negative A/B result: byte-size growth of 14 separate large root bundles offset per-file-dispatch savings, with no clear win beyond host run-to-run noise - Left the vitest alias wiring unchanged at the @fusion/core-only bundle state, pointing future attempts to FN-7670's task docs for full analysis and to consider a single combined engine-graph entry instead of 14 separate root entries Files changed: packages/engine/vitest.config.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) Fusion-Task-Id: FN-7670 Fusion-Task-Lineage: efd27f94-a6c4-49c7-a78e-50213fd42a24 Co-authored-by: Fusion (runfusion.ai) --- packages/engine/vitest.config.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/engine/vitest.config.ts b/packages/engine/vitest.config.ts index 43e5e764a7..2770b6d99e 100644 --- a/packages/engine/vitest.config.ts +++ b/packages/engine/vitest.config.ts @@ -87,6 +87,25 @@ export default defineConfig({ dead-locking the core↔engine circular-import DI (`void import("@fusion/core").then(setCreateFnAgent...)` in packages/engine/src/index.ts) for no measured gain. + + FNXC:EngineTests 2026-07-08-06:20: + FN-7670 prototyped extending this same lever to the @fusion/engine + RELATIVE-import production graph (`../merger.js`, `../hold-release.js`, + `../scheduler.js`, `../workflow-node-handlers.js`, ...) that the 18 gate + files reach directly — NOT the barrel above, which stays untouched per + the paragraph above regardless. It built a fully working, coverage- + parity-preserving, mock-safe bundle (171 first-party files → 35 output + files via esbuild multi-entry splitting) but an interleaved, host-load- + controlled A/B showed NO clear incremental wall-time win over this + @fusion/core-only bundle (delta within this host's own ~2.5x run-to-run + noise band) — the byte-size growth of 14 separate large root bundles + (e.g. one alone reached 1.3MB) offset the per-file-dispatch savings that + made the single-file @fusion/core bundle above pay off. NOT landed; the + wiring was reverted to this @fusion/core-only state. See FN-7670's task + docs document for the full closure/mock-boundary analysis, the A/B + methodology and data, and the negative-result rationale, before + re-attempting this lever with a different bundle shape (e.g. a single + combined engine-graph entry rather than 14 separate root entries). */ alias: { "@fusion/core": resolve(__dirname, "../core/.gate-bundle/core.mjs"),