All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- C# (.NET) parser for the AWS Lambda Durable Execution SDK for .NET preview (
Amazon.Lambda.DurableExecution0.x). Detects all durable primitives fromIDurableContext:StepAsync,WaitAsync,CreateCallbackAsync,WaitForCallbackAsync,WaitForConditionAsync,RunInChildContextAsync,InvokeAsync,ParallelAsync,MapAsync. - Supports both the executable programming model (
Main+LambdaBootstrap) and the class-library model ([assembly: LambdaSerializer]). - Extracts names from C#
name:named arguments and detectsDurableBranch<T>patterns for parallel branches. - Handles Allman-style
if/elsebraces (common C# convention) for condition detection. - Supports generic type arguments in method calls (e.g.,
StepAsync<T>(),InvokeAsync<TPayload, TResult>()). - Two example files:
OrderWorkflow.cs(executable model) andOrderProcessor.cs(class-library model). - 16 test cases covering all primitives and both entry-point models.
- VS Code extension activates for
.csfiles.
- Mermaid edge labels used invalid
#nbsp;instead of , causing rendering errors - Pipe characters (
|) in condition node labels (e.g.,||operators) now escaped to prevent Mermaid 11 parse errors - Duplicate nodes generated from try/catch blocks inside condition branches (switched to
getChildStatements) - Dynamic step names showing generic "step" label — TypeScript now handles PropertyAccessExpression, Identifier, TemplateExpression, and CallExpression; Python now extracts function references and variable
name=arguments; Java now supports dotted identifiers, function refs, and variable refs - Java parser now handles nested generics in class declarations and multi-line method calls
- Broken VS Code Marketplace badge replaced with shields.io
- Python
with_retrysupport. Detectswith_retry(context, func, config, name?)standalone function calls (SDK v1.6.0). Previously only supported for TypeScript and Java. - Java
DurableFuture.allOf()/DurableFuture.anyOf()support. Detects staticDurableFuture.allOf(futures...)andDurableFuture.anyOf(futures...)calls, rendered as promise combinator nodes (same as TypeScriptcontext.promise.all()/context.promise.any()). - Config-level feature extraction across all three languages:
nestingType/NestingType.FLATon parallel, map, runInChildContext, and withRetry nodescompletionConfig/ completion rules (firstSuccessful, allCompleted, etc.) on parallel and map nodesstepSemantics/StepSemantics.AT_MOST_ONCE_PER_RETRYon step nodestenantIdon invoke nodes (multi-tenant isolation)
- Config annotations displayed in Mermaid node labels (e.g.
flat,first successful,AtMostOncePerRetry,tenant tenant-abc-123) - New example files exercising all new features:
order_processor_with_retry.py,OrderProcessorFutures.java,order-workflow-config.ts
- Updated supported primitives table in README with full three-language parity status
- Mermaid renderer now appends config annotations below node labels using
<br>separators
withRetryprimitive support for TypeScript and Java parsers- TypeScript: detects
withRetry(context, "name", fn, config)calls (SDK v2.0.0-alpha.1) - Java: detects both
ctx.withRetry(...)and staticwithRetry(ctx, "name", ...)calls (SDK v1.1.0) - Rendered as subroutine shape with teal color (same as Child Context)
- TypeScript: detects
- Java SDK support upgraded from preview to GA following the AWS Lambda Durable Execution SDK for Java general availability announcement
- Java parser now extracts parallel/map branch names from
List.of()andArrays.asList()calls - Updated Java example to showcase
parallelprimitive - Removed Java SDK preview limitation from documentation
- Direction toggle (TD/LR) in browser and VS Code extension, with state persisted across auto-refresh
- Source view panel with Mermaid and JSON tabs in browser and VS Code extension
- Fade-in transition on initial load to prevent layout blink
- Save PNG in VS Code extension (added
img-src data:to Content Security Policy) - PNG export resolution for landscape (LR) diagrams by using SVG viewBox dimensions
- Direction toggle re-render centering by resetting transform and deferring fit-to-view
- PNG export now uses transparent background instead of solid color
- PNG export resolution increased from 2x to 4x
- Save PNG button in browser and VS Code extension
- npm publish configuration
- README files with Mermaid diagram for npm and VS Code Marketplace
- TypeScript/JavaScript parser using ts-morph AST with function-reference following and registry key resolution
- Python parser (regex-based) with
@durable_executiondecorator detection - Java parser (regex-based, preview) with
DurableHandlerclass detection - All durable execution primitives: step, invoke, parallel, map, wait, waitForCallback, createCallback, waitForCondition, runInChildContext
- Conditional branch detection with early-return handling
- Mermaid flowchart renderer with color-coded node types
- JSON output for custom tooling
- CLI with
--openbrowser output,--json,--direction, and--nameoptions - VS Code extension with interactive side panel, click-to-navigate, scroll zoom, click-drag pan, auto-refresh on save
- Browser output with dark theme, zoom controls, and color legend