Release v20.46.0
Summary
Makes Arc consumable again from the Cratis meta package alongside Arc.Chronicle, and tightens two long-standing rough edges. Arc 20.44.0 failed real consumers at both build and runtime; this restores a clean restore-build-run path against released Chronicle, fixes an analyzer false-positive, and exposes the sanctioned MobX observer boundary in the React MVVM package. It also restores the per-target-framework dependency pins (net8 → 8.x, net9 → 9.x) that a blanket version-bump chore had overwritten with 10.x, so net8/net9 builds no longer pull 10.x framework packages.
Added
- Exported
observerfrom@cratis/arc.react.mvvmso a child component that reads view model observables directly can be given its own observer boundary, with guidance in the React MVVM documentation. - Added a
no-direct-mobx-react-importESLint rule that flags direct imports frommobx-react/mobx-react-liteand points consumers to@cratis/arc.react.mvvminstead.
Changed
- Raised the minimum required
Cratis.Chronicleto15.35.0. - The
Cratismeta package no longer bundles the Cratis analyzers; the ARC*/ARCCHR* analyzers now flow through the individual packages. A project referencing onlyCratisstill gets full runtime and proxy generation, but receives the analyzers only when a sub-package such asCratis.Arc.CoreorCratis.Arc.MongoDBis referenced. - Realigned the net8/net9 framework dependency versions to their target-framework major (8.x / 9.x), so building for net8 or net9 no longer resolves 10.x
Microsoft.Extensions.*packages. - The recommended Cratis Arc ESLint config now reports direct
mobx-react/mobx-react-liteimports as errors.
Fixed
- Referencing the
Cratismeta package alongside a package that transitively bringsCratis.Arc.Core(such asCratis.Arc.MongoDB) no longer fails the build withCS0101 'Cratis.Arc.Generated.GeneratedMarker'. - Arc no longer throws
MissingMethodExceptionat runtime against released Chronicle. The Chronicle floor now matches theAppendMany/Appendoverloads Arc actually calls, so an incompatible Chronicle version failsdotnet restoreinstead of crashing at runtime. - The
ARCCHR0002analyzer no longer reports an ambiguous command event source id when the command'sHandlesupplies the event source explicitly through a tuple return — including new-stream-create commands that return a generated id deriving fromEventSourceId<T>.