Could you please explain what you mean by "within branch" context switches?
The way Twigg works is you can choose exactly what prompt/output pairs (we call them nodes) are sent to the model. You can move 'nodes' from one branch to another. For example, if you do a bug fix in one branch, you can add the corrected solution as context to another branch by moving the node, whilst ignoring the irrelevant context spent trying to fix the bug.
This way you can specify exactly what context is in each branch.
Wondering why they necessarily have to be on the same git branch?
Take your refactoring example. Start with base branch ‘A’, then for each of the 3 related components, create a new git branch from branch ‘A’.
If we built this on the Twigg interface, would this be useful?