Skip to content

Add on-demand terminal-state and SCC analysis - #14

Merged
dbera merged 16 commits into
mainfrom
feature/graph-analysis
Aug 7, 2026
Merged

Add on-demand terminal-state and SCC analysis#14
dbera merged 16 commits into
mainfrom
feature/graph-analysis

Conversation

@dbera

@dbera dbera commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

Adds user-triggered graph analysis for terminal states and strongly connected components.

Features

  • Detect terminal states with no outgoing transitions
  • Compute SCCs using an iterative algorithm
  • Identify cyclic multi-state SCCs and singleton self-loop SCCs
  • Run analysis in an inline Web Worker
  • Support cancellation, reruns, errors, and stale-result protection
  • Filter and navigate terminal states
  • Filter and navigate cyclic components
  • Display exact component-only graph views
  • Support standard and offline file:/// builds
  • Add sample-data/synthetic.json with known expected results

Scalability

Analysis is not run automatically. The user must explicitly select Run analysis.

The worker receives only node IDs and edge topology, excluding markings and transition semantic data.

Result lists use filtering and pagination with a maximum of 100 displayed items per page.

Verification

  • Frontend tests pass
  • Lint passes
  • Standard build passes
  • Offline build passes
  • Analysis verified through the development server
  • Analysis verified through the offline file:/// build
  • Synthetic sample produces:
    • 32 states
    • 41 transitions
    • 4 terminal states
    • 5 cyclic components
    • 19 states in cyclic components
    • Largest cyclic component of 8 states

@dbera
dbera merged commit 26f4fdb into main Aug 7, 2026
2 checks passed
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