This issue is the north star for the 2026 wave. It does not track implementation work directly — it links to per-product master plans (each lives in its own repo) and to cross-cutting pillar plans (here in JasperFx). Those, in turn, link to concrete implementation issues.
[Master] Critter Stack 2026 ← this issue (JasperFx)
├── [Pillar] Cold-start performance ← JasperFx#212
├── [Pillar] AOT compliance ← JasperFx#213
├── [Pillar] Dedupe Marten ↔ Polecat ← JasperFx#214
├── [Master] JasperFx 2.0 ← JasperFx#215
├── [Master] JasperFx.Events 2.0 ← JasperFx#216
├── [Master] Weasel 9.0 ← weasel#263
├── [Master] Marten 9.0 ← marten#4349
├── [Master] Polecat 4.0 ← polecat#46
├── [Master] Wolverine 6.0 ← wolverine#2715
└── [Master] CritterWatch 1.0 ← CritterWatch#148
This issue is the north star for the 2026 wave. It does not track implementation work directly — it links to per-product master plans (each lives in its own repo) and to cross-cutting pillar plans (here in JasperFx). Those, in turn, link to concrete implementation issues.
The three pillars
Per-product master plans
Cross-cutting decisions (apply to every product unless noted)
net8.0. Addnet11.0when it ships. Targets arenet9.0;net10.0in the interim. ✅ done in JasperFxdotnet run -- codegen writefor pre-generation.Already shipped against this plan
1.0maintenance branch frozen,mainis now 2.0, all packages at2.0.0-alpha.1(JasperFx, JasperFx.Events, three source generators).ITypeLoaderabstraction + JasperFx.RuntimeCompiler package split. Apps inStaticmode no longer reference Roslyn at all. (AOT pillar.)CloseAndBuildAs<T>AOT annotations +GenericFactoryCachedelegate cache as the hot-path-friendly escape hatch. (AOT + cold-start.)IInlineProjection.ApplyAsyncwidened;GenerationRules.Cloneadded. (Foundation for the per-product cold-start work.)IsAotCompatible=trueonJasperFx.csproj+JasperFx.Events.csproj, 236 → 0 IL warnings, AOT smoke-test consumer (src/JasperFx.AotSmoke/). PRs Annotate CodeGeneration/Services reflective surface for AOT (closes #255) #257–Annotate remaining AOT pillar tail in JasperFx (74 → 0 warnings) #260 (JasperFx side) + Annotate JasperFx.Events Aggregation cluster for AOT (#262, slice 1/4) #264–Annotate JasperFx.Events tail surfaces for AOT (#262, slice 4/4) #267 (JasperFx.Events side). See [Pillar] AOT compliance #213.docs/codegen/aot.md(PR Add 'Publishing AOT with JasperFx' end-to-end guide #263).docs/migration-guide.md(PR Add JasperFx 1.x → 2.0 migration guide #242).IEventStream+ session/daemon contracts (PR Lift IEventStream, session API + daemon contracts to JasperFx.Events … #268),StreamCompactingRequest<T>(PR Lift StreamCompactingRequest<T> into JasperFx.Events.Protected (#269) #274),FetchForWritingByTags<T>+IEventBoundary<T>(PR Lift FetchForWritingByTags<T> + IEventBoundary<T> to JasperFx.Events (#270) #275).Explicitly out of scope for 2026
Sequencing notes
jasperfx#209,jasperfx#211), the Marten/Polecat explorer + projection-replay impls (rows 2/3 + 10/11), and the Wolverine saga diagnostics (row 4 —wolverine#2713). CritterWatch's own implementation rows (5–8 + 12) develop in parallel against submodule branches; promotion to NuGet packages follows the Phase A→D sequence documented in Make composite projections play well with multi-tenancy #148.How to read this tree