Tor controller GUI (tor-control-panel)

Tl;dr: of the below: please no one touch Tor Control Panel / Anon Connection Wizard for a while (maybe a week or so, potentially longer). It is undergoing deep refactoring.

Further details:


The recent merge of Anon Connection Wizard and Tor Control Panel made the code organization substantially nicer, but despite attempts at thoroughly testing it before publishing it, it has introduced bugs and undesirable behavior changes. Examples:

(I don’t think these are the only examples, they’re just the most recent two that I could easily find.)

Beyond that, the code quality makes it very hard to maintain. For larger projects, we’ve been using a combination of Black, Pylint, and MyPy to ensure high code quality and internal consistency, then we have been pairing that with manual testing and regression tests when it makes sense. This is the approach we’ve taken for privleap, sdwdate-gui, and browser-choice, and it has worked out quite well for us so far. Tor Control Panel and Anon Connection Wizard have become important parts of Whonix’s UX, as evidenced by the fact that multiple people are running into and reporting bugs in it, and it does not have these protections in place yet.

I mentioned these issues to Patrick, and got the go-ahead to refactor TCP/ACW so it is up to par with other complex applications in Whonix. This will probably take some time to do right. I expect the code to change radically in the process, meaning that any changes made by humans or AI against the current codebase will be difficult to apply to the polished version. Therefore, please hold off on making changes to TCP/ACW until after this is complete. I will merge in any pending changes from @troubadour’s code before doing this.

2 Likes