Skip to content

8.28.0: CritterWatch support — IDynamicTenantSource, threshold columns, source generator#4220

Merged
jeremydmiller merged 7 commits intomasterfrom
critterwatch
Mar 31, 2026
Merged

8.28.0: CritterWatch support — IDynamicTenantSource, threshold columns, source generator#4220
jeremydmiller merged 7 commits intomasterfrom
critterwatch

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

  • IDynamicTenantSource on MasterTableTenancy with disable/remove/enable and cache eviction
  • Threshold columns in EventProgressionTable for agent health check thresholds
  • Marten.SourceGeneration opt-in document/projection discovery source generator
  • Bumped JasperFx to 1.23.0 and JasperFx.Events to 1.25.0
  • Switched back to NuGet PackageReferences

Test plan

  • Marten.csproj and Marten.EntityFrameworkCore.csproj build clean
  • CritterWatch integration tests pass with these changes

Generated with Claude Code

jeremydmiller and others added 7 commits March 30, 2026 11:43
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…Gets

IDynamicTenantSource on MasterTableTenancy, threshold columns,
Marten.SourceGeneration, switched back to NuGet PackageReferences.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…n in cross-project tests

Two issues fixed:

1. Skip ID type validation for natural key aggregates in
   SingleStreamProjection.validateDocumentIdentity(). Natural key
   aggregates intentionally have an ID type that differs from the
   stream identity type (e.g., string ID with Guid streams).

2. Limit DiscoverNaturalKeyAggregates to ApplicationAssembly only,
   not all loaded assemblies. When test projects share compile
   references, aggregates from other projects with incompatible
   stream identity types were being auto-registered and failing
   validation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ation

Three fixes for CI failures on the critterwatch branch:

1. NaturalKeyTable: explicit ISchemaObject.WriteCreateStatement override
   wraps FK creation in DO $$ IF NOT EXISTS guard and indexes with
   IF NOT EXISTS to prevent "constraint/index already exists" errors
   when CREATE TABLE IF NOT EXISTS is a no-op.

2. SingleStreamProjection.validateDocumentIdentity: skip ID type
   validation when NaturalKeyDefinition is set, since natural key
   aggregates intentionally have IDs that differ from stream identity.

3. Remove DiscoverNaturalKeyAggregates assembly scanning from
   DocumentStore initialization. Natural keys are discovered lazily
   via FetchForWriting. Assembly scanning caused spurious projection
   registration that broke subscription count assertions and caused
   InvalidProjectionException in cross-project test configurations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jeremydmiller jeremydmiller merged commit 73be7c4 into master Mar 31, 2026
6 checks passed
@jeremydmiller jeremydmiller deleted the critterwatch branch March 31, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant