Tor controller GUI (tor-control-panel)

OK, I’m on the right branch.

First, my two last commits have fixed the issues.

Now, as far as I could review, a couple of problems.

In tor-control-panel control, the three icons are misaligned. Minor but annoying.

Still in tor-control-panel, setting DisableNetwotk has no effect. torrc is updated, in sdwdate-gui, tor status shows the right message, however without the cross in the icon. And anon-whonix can still open all the sites.

Strange, but disabling the network in ACW works as expected.

1 Like

Another one.

In TCP, Stop tor crash the application.

File “/usr/lib/python3/dist-packages/tor_control_panel/tor_control_panel.py”, line 982, in _finished
on_done()
~~~~~~~^^
TypeError: ‘bool’ object is not callable

1 Like

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

@arraybolt3 While you work on a polished version of TCP ACW, can you leave the kicksecure repo untouched ?

Working mostly on the Debian TCP version and got Request new Tor circuits working without having to restart Tor (which effectively defies the whole purpose of the new circuits command)

Some weird bug popped up in the meantime after trying it in the Qubes version.(most likely not related), but for now, i’m in the dark.

1 Like

Sure, just note that you may have to re-add features that aren’t in the existing code.

Note that the restart that was being done automatically was recently disabled on Whonix due to an anonymity leak concern.

1 Like

Yes, it was removed from Whonix (just checked now) but not from kicksecure, which is the one I cloned, and by the way is completely broken.

The Request new Tor circuits is fixed (minor code change), I’ll come later on the behavior of NEWNYM, which is not obvious.