For V2, I have completely updated how and when the test tree is created and modified in the backend to support a more dynamic workflow. Previously, the test tree would only be collected once at the start and then the structure would be fixed for the lifetime of the process. Although the changes to a particular testcase would be picked up, you could not add (or remove) testcases, files or directories and see them reflected in the UI. A side-effect of the static design meant that syntax errors when collecting tests were not handled well or recoverable from without restarting the app.
Now, the test tree is a much more dynamic structure and allows testcases to be added, removed or modified in any way you please. Any errors during collection (e.g. due to a syntax error) will be caught and noted in the UI. The idea is to allow the UI to be much more reactive to changes made during development: simply start the UI once, and you can incrementally add, run and update tests as part of your development cycle without ever having to restart the app.
The other big change with V2 is the name. I felt that "pytest_web_ui" places unnecessary emphasis on the implementation detail of the UI being a web app, when it could easily have been implemented in some other way (e.g. an electron app) and keep the same purpose. Further, I thought that the name might cause some confusion if people thought it was a tool to help specifically with testing web UIs, which it isn't! I liked the name "pytest_commander" because that reflects what the app is doing - commanding pytest for you, so you can run tests and view the results in a few clicks instead of by typing terminal commands.
Give it a go and let me know any feedback via issues or email!