Skip to content

refactor: remove sync pipeline API, make entire render chain async#6

Merged
RoboNET merged 1 commit intomainfrom
refactor/async-pipeline
Mar 8, 2026
Merged

refactor: remove sync pipeline API, make entire render chain async#6
RoboNET merged 1 commit intomainfrom
refactor/async-pipeline

Conversation

@RoboNET
Copy link
Copy Markdown
Owner

@RoboNET RoboNET commented Mar 8, 2026

Remove TemplatePipeline.Process() and TemplateExpander.Expand() sync methods. All rendering now goes through ProcessAsync/ExpandAsync, fixing ContentElement expansion error "Content element expansion requires async processing".

Also eliminates 3-4x redundant template processing in render methods — each async render method now calls ProcessAsync once and passes the pre-processed template through the entire chain.

Additional fixes:

  • Fix missing _defaultRenderOptions in async Render(SKBitmap) overloads
  • Fix ExprValue.ToString() culture sensitivity (InvariantCulture)
  • Add regression test for ContentElement through async pipeline
  • Update 38 files: production code, CLI, and 170+ test methods

Remove TemplatePipeline.Process() and TemplateExpander.Expand() sync methods.
All rendering now goes through ProcessAsync/ExpandAsync, fixing ContentElement
expansion error "Content element expansion requires async processing".

Also eliminates 3-4x redundant template processing in render methods —
each async render method now calls ProcessAsync once and passes the
pre-processed template through the entire chain.

Additional fixes:
- Fix missing _defaultRenderOptions in async Render(SKBitmap) overloads
- Fix ExprValue.ToString() culture sensitivity (InvariantCulture)
- Add regression test for ContentElement through async pipeline
- Update 38 files: production code, CLI, and 170+ test methods
@RoboNET RoboNET merged commit f2ef129 into main Mar 8, 2026
6 checks passed
@RoboNET RoboNET deleted the refactor/async-pipeline branch March 8, 2026 13:45
RoboNET added a commit that referenced this pull request Mar 11, 2026
Remove TemplatePipeline.Process() and TemplateExpander.Expand() sync methods.
All rendering now goes through ProcessAsync/ExpandAsync, fixing ContentElement
expansion error "Content element expansion requires async processing".

Also eliminates 3-4x redundant template processing in render methods —
each async render method now calls ProcessAsync once and passes the
pre-processed template through the entire chain.

Additional fixes:
- Fix missing _defaultRenderOptions in async Render(SKBitmap) overloads
- Fix ExprValue.ToString() culture sensitivity (InvariantCulture)
- Add regression test for ContentElement through async pipeline
- Update 38 files: production code, CLI, and 170+ test methods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant