Repository navigation
Add timestamps to GateEvaluation and ActionSkip value objects (Fixes #22) - #40
Merged
Merged
Conversation
- Update TransitionContext to restore timestamps for ActionSkip objects - Remove redundant assertIsFloat() calls (PHPStan knows type from readonly property) - Regenerate PHPStan baseline to account for new test assertions All tests passing (347 tests, 1174 assertions) 100% code coverage maintained 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds timestamp tracking to
GateEvaluationandActionSkipvalue objects to improve observability and enable time-based analysis of workflow execution.float $timestampproperty toGateEvaluation(readonly value object)float $timestampproperty toActionSkip(readonly value object)microtime(true)(follows existingEvent.phppattern)TransitionContextserialization to persist timestampsImplementation Details
Pattern Used (following existing
Event.php):Key Design Decisions:
floattimestamps (not DateTime objects) to match existing project patterns0.0→ auto-generates current timeTest Coverage
New Tests:
GateEvaluationTest.php- 7 tests covering timestamp behaviorActionSkipTest.php- 7 tests covering timestamp behaviorTransitionContextSerializationTest.php- 5 new tests for timestamp serializationTotal Test Count: 347 tests (up from 328)
Code Coverage: 100% maintained
Test Plan
make checkpasses (lint + quality + tests)Benefits
✅ Observability - Know when gates evaluated and actions skipped
✅ Debugging - Correlate workflow timing with logs
✅ Analysis - Measure gate evaluation duration
✅ Consistency - Matches existing Event timestamp pattern
✅ Backward Compatible - Existing code continues to work
Closes #22
🤖 Generated with Claude Code