Skip to content

feat(engine): add state transition validation to GraphSync (fixes #523)#531

Open
mickume wants to merge 1 commit intodevelopfrom
fix/issue-523-state-transition-validation
Open

feat(engine): add state transition validation to GraphSync (fixes #523)#531
mickume wants to merge 1 commit intodevelopfrom
fix/issue-523-state-transition-validation

Conversation

@mickume
Copy link
Copy Markdown
Contributor

@mickume mickume commented Apr 23, 2026

Summary

  • Add VALID_TRANSITIONS table and _transition() validation method to GraphSync
  • All mark_*() methods now validate state transitions (warn on invalid, never crash)
  • Structured transition logging creates audit trail for debugging session failures

Closes #523

Changes

File Change
agent_fox/engine/graph_sync.py Added VALID_TRANSITIONS class constant, _transition() method with validation + structured logging, _transition_log in-memory audit trail. Updated mark_completed, mark_blocked, mark_in_progress, promote_deferred to route through _transition().
tests/unit/engine/test_sync.py Added TestTransitionValidation (8 tests) and TestTransitionLogging (3 tests)
docs/memory.md Updated with session summary

Tests

  • TestTransitionValidation — valid transitions succeed, invalid transitions warn, terminal state enforced, unknown states don't crash
  • TestTransitionLogging — audit trail recorded, cascade blocking logs all transitions, structured log messages emitted

Verification

  • All existing tests pass: ✅ (4330 original)
  • New tests pass: ✅ (12 added, 4342 total)
  • Linter / formatter: ✅
  • No regressions: ✅

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