Skip to content

Conversation

@johnnyt
Copy link
Member

@johnnyt johnnyt commented Sep 6, 2025

Implements complete invoke element support with handler-based security,
unified parameter processing, and full SCXML compliance.

  • Secure invoke handlers replace arbitrary function execution

  • Centralized parameter evaluation in Evaluator (strict/lenient modes)

  • Complete parsing with children support

  • SCXML-compliant event generation (done.invoke, error.execution, error.communication)

  • Unified Param structure replaces separate SendParam module

  • InvokeAction with 100% test coverage

  • InvokeHandler behavior for secure service integration

  • Enhanced parameter evaluation functions

  • StateChart-level handler registration prevents unauthorized execution

  • Parameter evaluation consolidated from SendAction and InvokeAction

  • Full SCXML specification compliance for external service communication

Co-Authored-By: Claude noreply@anthropic.com

johnnyt and others added 5 commits September 5, 2025 16:46
Implements complete <invoke> element support with handler-based security,
unified parameter processing, and full SCXML compliance.

- Secure invoke handlers replace arbitrary function execution
- Centralized parameter evaluation in Evaluator (strict/lenient modes)
- Complete <invoke> parsing with <param> children support
- SCXML-compliant event generation (done.invoke, error.execution, error.communication)
- Unified Param structure replaces separate SendParam module

- InvokeAction with 100% test coverage
- InvokeHandler behavior for secure service integration
- Enhanced parameter evaluation functions

- StateChart-level handler registration prevents unauthorized execution
- Parameter evaluation consolidated from SendAction and InvokeAction
- Full SCXML specification compliance for external service communication

Test coverage increased to 90.9% with comprehensive invoke functionality.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Brings README.md and CLAUDE.md current with latest developments including
the secure invoke system, centralized parameter evaluation, and recent
architectural improvements.

## README.md Updates
- Added secure invoke system to feature highlights
- Updated working features to include invoke elements and parameter processing
- Added comprehensive usage example with handler registration and SCXML usage
- Updated recent completions with v1.9.0 invoke system achievements
- Refreshed planned features to reflect current state

## CLAUDE.md Updates
- Updated Evaluator documentation (unified from ValueEvaluator)
- Added comprehensive InvokeAction and InvokeHandler documentation
- Added Param structure documentation for unified parameter handling
- Updated test coverage numbers (1030 internal tests, 90.9% coverage)
- Added complete secure invoke system usage guide with examples
- Updated completed features to include invoke elements

## Documentation Highlights
- Complete handler-based security model explanation
- SCXML compliance details (done.invoke, error.execution events)
- Parameter evaluation architecture (strict/lenient modes)
- Security benefits and controlled execution environment
- Practical usage examples for real-world integration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Adds :invoke_handlers to Keyword.take in StateMachine.init
- Fixes macro to pass invoke_handlers via Macro.escape
- Modernizes approval workflow to use SCXML <invoke>/<send>
- Configures clean test output via LogManager TestAdapter
- Updates documentation with secure invoke patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Sep 6, 2025

Codecov Report

❌ Patch coverage is 85.34483% with 17 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
lib/statifier/actions/action_executor.ex 0.00% 8 Missing ⚠️
lib/statifier/parser/scxml/state_stack.ex 36.36% 7 Missing ⚠️
lib/statifier/evaluator.ex 97.29% 1 Missing ⚠️
lib/statifier/parser/scxml/handler.ex 90.00% 1 Missing ⚠️
Files with missing lines Coverage Δ
lib/statifier/actions/invoke_action.ex 100.00% <100.00%> (ø)
lib/statifier/actions/send_action.ex 85.24% <100.00%> (+7.71%) ⬆️
lib/statifier/feature_detector.ex 94.02% <ø> (ø)
lib/statifier/interpreter.ex 91.39% <100.00%> (+0.04%) ⬆️
lib/statifier/parser/scxml/element_builder.ex 100.00% <100.00%> (ø)
lib/statifier/state_chart.ex 95.65% <ø> (ø)
lib/statifier/state_machine.ex 91.52% <100.00%> (ø)
lib/statifier/evaluator.ex 93.18% <97.29%> (+2.98%) ⬆️
lib/statifier/parser/scxml/handler.ex 92.98% <90.00%> (-0.29%) ⬇️
lib/statifier/parser/scxml/state_stack.ex 87.22% <36.36%> (-3.32%) ⬇️
... and 1 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@johnnyt johnnyt merged commit d5a6a88 into main Sep 6, 2025
12 checks passed
@johnnyt johnnyt deleted the invoke branch September 6, 2025 13:07
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.

2 participants