Decision: adopt the proto spec A7 GraphQL strategy. This reverses the current "GraphQL = kernel-owned fields only" direction.
Scope
- Rewrite GOAL.md / SPEC.md: GraphQL is no longer kernel-only; extensions expose federated subgraphs.
- Restore/rebuild the extension SDL-composition path deleted in the quality sweep (recoverable from git history on branch chore/thermo-nuclear-quality-review — commit "fix(core): remove dead parallel subsystems...").
- Add a graphql-resolve WIT export to the extension world; extensions emit Fed-v2 subgraph SDL (async-graphql enable_federation, #[graphql(entity)]).
- Host composition via graphql-composition (Grafbase); query planning via Hive Router query-planner crate; custom WASM executor that walks the plan and dispatches subgraph fetches into the owning component graphql-resolve.
- Recompose + invalidate plan cache on extension load/unload (swap under lock).
Build-time spike first (spec SP6)
- Confirm hive-router query-planner is consumable as a crate (crates.io vs git/vendored).
- Confirm its plan IR can drive our custom WASM executor.
- Confirm graphql-composition join-spec output matches the planner-expected supergraph dialect.
Do NOT embed apollo-federation (unstable) or harmonizer (bundles JS) at runtime.
References: docs/spec-gap-analysis.md (A7), proto spec A7/SP6.
Decision: adopt the proto spec A7 GraphQL strategy. This reverses the current "GraphQL = kernel-owned fields only" direction.
Scope
Build-time spike first (spec SP6)
Do NOT embed apollo-federation (unstable) or harmonizer (bundles JS) at runtime.
References: docs/spec-gap-analysis.md (A7), proto spec A7/SP6.