Conversation
…subfolders Split the flat Internal directory into two purpose-scoped subdirectories: - Execution: pipeline orchestration, concurrency, mode running, batch, failure handling - Evaluation: policy evaluation and policy modification application Namespaces updated accordingly to match folder structure.
Move MutationAuditEntryFactory and StateSizeEstimator out of Internal into a dedicated Runtime.Diagnostics namespace to align with the existing Runtime.Audit, Runtime.Metrics, and Runtime.Policies pattern. Diagnostics components are now accessible from Runtime-level consumers without coupling to the internal execution namespace.
…ngine Replace all /// <inheritdoc /> usages in MutationEngine with explicit XML documentation matching the IMutationEngine interface contract: - ExecuteAsync - ExecuteBatchAsync (both overloads, with remarks) - RegisterPolicy, RegisterInterceptor (with remarks) - GetHistoryAsync, GetStatisticsAsync Add param/returns/exception tags to private helpers: - ExecutePipelineAsync - CreateConcurrencyGate (ArgumentNullException, ArgumentOutOfRangeException)
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.
Summary
Add async policy evaluation support with external governance checks, introduce typed side effect contracts, and refactor the runtime execution namespace structure for better cohesion.
Added
IMutationPolicy<TState>.EvaluateAsynccontract with default sync-to-async bridge for backwards compatibilityPolicyEvaluationTimeoutExceptionfor explicit timeout failure semantics during async policy evaluationSideEffect<TData>typed side effect contract with explicit payload typing beyondobject?Runtime.Diagnosticsnamespace containingMutationAuditEntryFactoryandStateSizeEstimatorRuntime.Internal.Executionsubfolder grouping pipeline orchestration, concurrency, mode running, batch, and failure handlingRuntime.Internal.Evaluationsubfolder grouping policy evaluation and policy modification applicationChanged
MutationPolicyEvaluatornow invokesEvaluateAsyncwith a linkedCancellationTokenSourcerespectingPolicyEvaluationTimeoutfrom engine optionsMutationEnginewired toRuntime.Diagnosticsnamespace and decomposed execution pipelineSideEffect<TData>contracts/// <inheritdoc />usages inMutationEnginereplaced with explicit XML documentation matchingIMutationEngineinterfaceMutationBatchExecutor,PolicyModificationApplier,MutationAuditEntryFactory,StateSizeEstimatorResult
The runtime execution model is now organized by concern. Policy evaluation is fully async with explicit timeout and cancellation behavior. Side effect contracts are typed and survive persistence and downstream integration scenarios. The execution namespace structure matches the folder layout, aligning with
Runtime.Audit,Runtime.Metrics, andRuntime.Policiesconventions.Testing
Linked Issues
Checklist