feat: add durable execution support - #383
Conversation
j-d-ha
left a comment
There was a problem hiding this comment.
First-pass review.
- Added a suppression for NU1608 in test projects due to NSubstitute version compatibility notes.
- Added missing spaces before closing slashes in all `<PackageVersion>` elements. - Ensured consistent XML formatting for improved readability in `Directory.Packages.props`.
- Updated `GetService` calls in unit tests to include null-forgiving operator (`null!`). - Ensured consistent suppression of nullable reference warnings in test setups.
…durable execution references - Updated tests to support multi-targeting for .NET 8.0, 9.0, 10.0, and 11.0 frameworks. - Added conditional compilation for `DurableExecution` references targeting .NET 10.0 and newer. - Adjusted project file to define `TargetFrameworks` and conditionally include durable references. - Expanded GitHub Actions workflow to test against all targeted frameworks.
- Fixed inconsistent spacing in lambda middleware setup in `MiddlewareOpenTelemetryExtensionsTest`. - Ensured consistent formatting for improved code readability.
Remove durable lifecycle and envelope feature plumbing. Generated handlers now serialize AWS envelopes directly around DurableFunction.WrapAsync.
Replace durable workflow smoke code with an empty executable and explicit trimmer roots.
j-d-ha
left a comment
There was a problem hiding this comment.
Overall feedback is that we need to go back to using our DevOps templates not writing custom workflows If something isn't supported we need to figure out why it's not supported with those Workflows without writing custom workflows for it.
ncipollina
left a comment
There was a problem hiding this comment.
Why did you downgrade all those version?
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
- Introduced scripts for caveman compression: CLI, main entrypoint, and benchmark tools. - Added validation and token counting utilities to streamline compression. - Implemented prompts and retry logic to handle LLM-guided compression. - Set up detection for compressible files based on heuristics and file type. - Preserved YAML frontmatter and ensured atomic writes for backups. - Included safeguard mechanisms to prevent handling sensitive data or massive files.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: add3b43373
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if h1 != h2: | ||
| result.add_warning("Heading text/order changed") |
There was a problem hiding this comment.
Treat changed headings as validation errors
When Claude rewrites or reorders headings without changing the heading count, this path only records a warning, so result.is_valid remains true and compress_file() accepts the output and overwrites the source. This violates the skill's stated exact-heading preservation guarantee; make heading text/order changes an error or have the compressor fail on warnings that represent preservation rules.
Useful? React with 👍 / 👎.
🚀 Pull Request
📋 Summary
Adds optional AWS Lambda Durable Execution support to MinimalLambda through a dedicated
MinimalLambda.DurableExecutionpackage and the existing source generator. High-level durable handlers retain MinimalLambda hosting, DI, middleware, serializer, and generated binding behavior while AWS owns checkpoints, replay, suspension, and durable operations.Support is documented as experimental until managed-service deployment evidence is completed.
🔧 Changes
MapDurableHandlerandIDurableContext.GetInvocationContext()public APIs.TaskandTask<T>durable adapters using AWSDurableFunction.WrapAsync.LH0007–LH0011.durable-v<semver>trusted-publishing lane with exact artifact, symbol, dependency, version, and collision guards.✅ Checklist
🧪 Validation
task test:all: 3,838 tests passedtask build:aot-checktask build:package-compatuv run zensical build --clean --stricttask local:release-dry-runvalidate-templatefor durable SAM templateactionlintfor changed publishing workflowsgit diff --check📦 Release Notes
Install
MinimalLambda.DurableExecutionalongside compatibleMinimalLambdaandAmazon.Lambda.DurableExecutionversions. Durable handlers require exactly one[FromEvent]input, one exactIDurableContext, andTaskorTask<T>return.💬 Notes for Reviewers
Suggested review order:
decisions/durable-dependency-support-matrix.mdAWS resource deployment was intentionally not run. Managed-service create/invoke,
PENDINGsuspension, replay, denied-role behavior, callbacks, cloud NativeAOT, and live middleware evidence remain unverified and are explicitly excluded from production-ready claims. New durable publishing workflow also requires matching NuGet trusted-publisher policy before first release.