distributed 2.2.3

CQRS/ES framework for Rust using Plain Old Rust Structs — append-only events, replay, snapshots, outbox, service bus, and pluggable infrastructure
Documentation
### What's changed in v2.2.3

* test: compile scaffold output e2e; fix route-bundle template drift (#103) (by @patrickleet)

  * fix: update scaffold templates to the route-bundle Service API

  The scaffolded service.rs still used the removed register_handlers! macro,
  the pre-route-bundle generic Service<ServiceRepo>, and
  Service::new().with_repo(repo) — none of which exist since the typed
  microsvc route bundles landed — so every scaffolded project failed to
  compile. Rebuild the service around distributed::routes!(
  Routes::new().with_dependencies(repo), ...) and Arc<Service>, and pin the
  Knative scaffold's axum to 0.8 to match the Router the distributed crate
  hands to axum::serve.

  Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
  Claude-Session: https://claude.ai/code/session_01DzYSVLas93c7LbgHJWsW7n

  * test: compile scaffold output and cover CLI variants and error paths

  - cli_scaffold_compile.rs: scaffold into a temp dir pointing the generated
    distributed dependency at this workspace, then cargo check the output
    (ignored by default like the manifest-harness tests). Covers the
    http+postgres+model+read-models surface and the knative+in-memory branch.
  - cli_scaffold.rs: matrix-lite assertions for every --store, --transport,
    --bus, and --gitops-promote variant, plus error paths (non-empty output
    dir without/with --force, describe with a missing manifest).
  - cli_manifest.rs: schema --dialect sqlite happy path.

  Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
  Claude-Session: https://claude.ai/code/session_01DzYSVLas93c7LbgHJWsW7n

  * refactor: extract manifest-harness codegen from cli.rs into its own module

  Pure move: HarnessOptions/HarnessMode, run_manifest_harness, the inline
  harness Cargo.toml/main.rs templates, cargo-metadata package resolution,
  and entrypoint validation now live in src/manifest_harness.rs beside
  generate/, with their unit tests. cli.rs keeps the clap surface and the
  scaffold side effects; the shared path helpers it owns are pub(crate) for
  the harness. No behavior change.

  Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
  Claude-Session: https://claude.ai/code/session_01DzYSVLas93c7LbgHJWsW7n

  ---------

  Co-authored-by: Claude Fable 5 <noreply@anthropic.com>


See full diff: [v2.2.2...v2.2.3](https://github.com/hops-ops/distributed/compare/v2.2.2...v2.2.3)