Conversation
…arify per-connection pipeline factory
Add ITransportCodec (in-place, length-preserving transport transform) with an atomic mid-connection SwapCodec, a ConnectionPipeline descriptor, and a per-connection connectionPipelineFactory on SquidTcpServer. Codec is applied innermost (decode on receive before middleware, encode on send under the send lock). Fully additive and backward compatible; receive history stays in sync with decoded output. 97/97 Network tests green.
… subscribe Rewrite EventBusService from the serialized channel model to a ConcurrentDictionary parallel dispatcher with a single-listener fast path, catch-all (IEvent) listeners, per-listener fault isolation, slow-listener telemetry, delegate Subscribe, and IDisposable unsubscribe tokens. Unify ISyncEventListener/IAsyncEventListener into a single contravariant IEventListener<T>. Publish once in MetricsCollectionService. Register IEventBus via a delegate factory with a default EventBusOptions to resolve the new two-constructor type. Migrate listener-side tests and samples to the unified IEventListener<T> API.
Add RegisterEventListener<TEvent,TListener>() plus an EventListenerActivator std service that subscribes all DI-registered listeners at startup with no reflection. Register the activator at low priority so listeners are wired before publishing services run.
…nd DI auto-subscription Evolve IEventBus/EventBusService from the serialized channel model to a parallel per-listener dispatcher: single-listener fast path, catch-all (IEvent) listeners, per-listener fault isolation, slow-listener telemetry, delegate Subscribe, and IDisposable unsubscribe tokens. Unify the sync/async listener split into a single contravariant IEventListener<T>. Add DI-native auto-subscription via RegisterEventListener<TEvent,TListener>() and a low-priority EventListenerActivator.
- Format C# sources with jb cleanupcode across src, samples, and tests - Apply existing ReSharper and EditorConfig style rules consistently - Keep generated-registration behavior unchanged after formatting
Add per-package READMEs for SquidStd.Persistence(.Abstractions/.MessagePack), list the three packages in the root README module table, and add a SquidStd.Samples.Persistence console sample demonstrating the snapshot+journal durable reload cycle.
Add SquidStd.Persistence(.Abstractions/.MessagePack): an embeddable in-memory entity store with durable binary snapshot + journal (WAL). Full state in memory, every mutation appended to a length+checksum-framed binary journal, periodic snapshot + journal trim; boot loads snapshot and replays the journal tail. Serializer-agnostic engine (via IDataSerializer/IDataDeserializer) with a MessagePack provider as the recommended binary default; FNV-1a ChecksumUtils added to SquidStd.Core; write-ordered journaling for deterministic replay; optional IEventBus snapshot events. Includes module READMEs and a runnable sample.
Contributor
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
Contributor
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release contents
Promotes
developintomainto cut the next release. semantic-release will compute the version from the conventional commits below (feature-level changes → minor bump) and publish to NuGet on tag.Event bus (
SquidStd.Core/SquidStd.Services.Core)IEventListener<in TEvent>andEventBusOptionscontractsSubscribewithIDisposableunsubscribeBinary persistence (
SquidStd.Persistence+.Abstractions+.MessagePack)ChecksumUtilsIDataSerializer; MessagePack provider and DI entity registrationSource generators (
SquidStd.Generators)RegisterEventListenerAttributeand generated registration attributes with build-time diagnosticsNetwork transport codec (
SquidStd.Network)ITransportCodeccontract with per-connectionConnectionPipelinedescriptorSwapCodecfor mid-connection upgradeBuild
Microsoft.CodeAnalysis.CSharpto 5.3.0Full test suite green (727 tests).