Commit b0a58c3
authored
feat: add durable execution support (#383)
* docs: add durable execution architecture decisions
* docs: clarify architecture decision records
* docs: add examples to durable execution ADRs
* docs: simplify durable execution ADRs
* docs: add durable pipeline architecture decision
* docs: add durable execution architecture decisions
* docs: clarify architecture decision records
* docs: add examples to durable execution ADRs
* docs: simplify durable execution ADRs
* docs: pressure-test durable pipeline ADR
* docs: clarify durable envelope ownership
* docs: accept durable pipeline architecture decision
* chore(deps): pin durable execution packages
* feat(core): expose invocation serializer
* feat(core): enforce durable terminal lifecycle
* docs: finalize durable handler contract
* feat: add durable execution package
* feat: add durable handler API
* feat(source-generators): recognize durable handlers
* feat(source-generators): validate durable handlers
* feat(source-generators): emit durable adapters
* test(source-generators): expand durable coverage
* test(core): verify durable terminal lifecycle
* test(testing): add durable host integration
* test(aot): add durable publish smoke
* test(durable): verify public runtime APIs
* test(durable): cover workflow replay semantics
* docs(examples): add durable execution sample
* docs(durable): document package usage
* test(packaging): add durable consumer matrix
* docs: add durable execution guide
* docs(durable): add deployment recipes
* docs(decisions): defer durable templates
* ci: isolate durable package releases
* chore(deps): update validation toolchain
* test(durable): support debug fallback assertion
* chore(deps): update package versions in shared props file
- Bumped versions for multiple dependencies, including Amazon.Lambda.Core and NSubstitute.
- Adjusted package versions for frameworks targeting .NET 8.0, 9.0, 10.0, and 11.0.
- Included compatibility updates for pre-release versions where applicable.
* fix: address durable execution review feedback
* fix(tests): suppress NU1608 warning for AutoFixture.AutoNSubstitute
- Added a suppression for NU1608 in test projects due to NSubstitute version compatibility notes.
* chore(deps): fix formatting in shared props file
- Added missing spaces before closing slashes in all `<PackageVersion>` elements.
- Ensured consistent XML formatting for improved readability in `Directory.Packages.props`.
* fix(tests): add null-forgiving operator to suppress nullable warnings
- Updated `GetService` calls in unit tests to include null-forgiving operator (`null!`).
- Ensured consistent suppression of nullable reference warnings in test setups.
* test(source-generators): add multi-targeting support and conditional 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.
* test(tests): guard compatibility package references
* fix(tests): adjust lambda middleware formatting in unit test
- Fixed inconsistent spacing in lambda middleware setup in `MiddlewareOpenTelemetryExtensionsTest`.
- Ensured consistent formatting for improved code readability.
* refactor(durable)!: simplify durable handler adapter
Remove durable lifecycle and envelope feature plumbing. Generated handlers now serialize AWS envelopes directly around DurableFunction.WrapAsync.
* test(aot): root libraries for publish analysis
Replace durable workflow smoke code with an empty executable and explicit trimmer roots.
* refactor(durable)!: relax handler signature validation
* fix(durable): bind cancellation tokens and reject duplicate events
* fix(source-generators): harden durable handler validation
* fix(source-generators): harden durable handler adapters
* fix(durable): address review findings
* ci: restore DevOps template workflows
* ci(github): document DevOps template policy
* ci: unify package releases
* test(tests): restore multi-target integration coverage
* ci(github): stabilize required PR build check
* ci(github): remove duplicate PR build
* docs: preserve contributing formatting
* feat(caveman-compress): add natural language compression tools
- 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.
* ci(github): upgrade DevOps template workflows
---------
Signed-off-by: Jonas Ha <61319894+j-d-ha@users.noreply.github.com>1 parent 2f8fa71 commit b0a58c3
135 files changed
Lines changed: 8791 additions & 240 deletions
File tree
- .agents/skills
- cavecrew
- caveman-commit
- caveman-compress
- scripts
- caveman-help
- caveman-review
- caveman-stats
- caveman
- .github
- workflows
- decisions
- docs
- features
- examples/MinimalLambda.Example.DurableExecution
- scripts
- skills/minimal-lambda
- references
- src
- AotCompatibility.TestApp
- MinimalLambda.DurableExecution
- MinimalLambda.SourceGenerators
- Diagnostics
- Emitters
- Models
- Handlers
- SyntaxProviders
- Templates
- WellKnownTypes
- MinimalLambda.Templates
- templates/mlambda-durable
- .template.config
- src/BlueprintBaseName.1
- MinimalLambda/Core/Context
- tasks
- tests
- MinimalLambda.DurableExecution.UnitTests
- MinimalLambda.OpenTelemetry.UnitTests
- MinimalLambda.SourceGenerators.UnitTests
- Snapshots
- MinimalLambda.Testing.UnitTests
- Lambdas/MinimalLambda.Testing.UnitTests.DurableLambda
- Tests/MinimalLambda.Testing.UnitTests
- MinimalLambda.UnitTests
- Builder/Extensions
- Core
- Context
- Runtime
- package-compatibility
- AotConsumer
- InvalidSignatureConsumer
- OldCoreConsumer
- TaskConsumer
- TypedConsumer
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
0 commit comments