What is debug-flow?
debug-flow is a developer tool for creating interactive flow charts to visualize and document debugging processes, with built-in Git integration to track your progress alongside your code.
Ever found yourself lost in a complex debugging session, forgetting which paths you've explored and which assumptions you have tested?
debug-flow provides a visual canvas to map out your debugging steps, hypotheses, and conclusions. By linking these flow charts to your Git history, you can create a powerful, versioned record of your debugging journey.
Your progress is saved in a directory and can be tracked right alongside your code.
Conceptually, the application serves as a backend server running in the repository, which:
- Serves the frontend application
- Interacts with the Git Repository
- Manages the state of the flows stored in the flows directory
It is the backend server, running in the repository, interacting with it and managing the state of flows stored in the repository.
It also serves a web frontend which contains the flow editor.
Nodes
debug-flow has two kinds of nodes status nodes and action nodes.
A status node represents a status in the debugging process. It can be linked to a Git tag or a commit ID.
An action node is the action taken as a result of a status. One status can result in multiple, parallel actions taken to represent different possible approaches.
The types of nodes can only be added in alternating order, as the result of an action is always a new status and a status can (but not must) result in a new action.
Each node can be linked to Git revisions.