I think one thing that's missing from Visi's story that would have helped make her character a bit more tolerable is accountability.
As Visi-defenders love to point out, one of Dispatch's big themes is redemption. And a big part of redeeming yourself is acknowledging that you've done wrong and taking responsibility. Which Visi never does.
She messes up the donut shop robbery call as a result of not listening to Robert, then gets pissy, insults him and punches him in the face when he rightfully calls her out for this. And the game treats you telling Blonde Blazer that Visi got violent toward you as you ratting her out. Not once does she apologize or show any remorse for how she treated you or for how she caused the mission to utterly fail and the client to get injured. On the contrary, she goes on to vandalize Robert's work desk after the fact. But this is supposed to make Robert/us feel bad because she does it with a donut she stole for us as a nice gesture. Something which Robert didn't ask for and definitely wouldn't have approved of.
Then there's her constant sexual harassment of Robert, from watching him change even when he obviously feels weird about it, to telling him she dreamed about them fucking (all kinds of gross) to stalking him throughout the office and following him into the men's room. That's not to mention her forcing a kiss on Robert after dropping the bombshell on him that she's the reason he lost both the Mecha Man-suit and the Astral Pulse. There is something potentially intrguing here about Visi getting unhealthily attached to the first guy she's met that treated her with any decency, but the game never treats it as that. It's just portrayed as a typical romance with a troubled punk girl. Robert doesn't get to tell her off for how extremely creepy she's being and if he sets boundaries they get ignored, which is played for laughs. Rejecting Visi after she forces a kiss on you has the game straight-up guilt trip you, by having the camera focus on Visi's hurt expression as if Robert doesn't have every right to say 'no' to a kiss he did not consent to.
Even outside of Robert, Visi is completely above all reproach in- and out of universe. By episode 3 she's the worst performing member of the Phoenix Program and seeing how she acted in episode 2 it's not hard to see why. Even she knows she sucks as a hero, but instead of working on improving herself she decides to throw in the towel and just wanders off while still on the clock. Girl, you're this world's equivalent of a first responder, what the actual fuck??? Robert has to call after her and give her a peptalk so she'll do her goddamn job. And when she actually listens to him and doesn't fuck up, the entire Z-Team cheers for her, like she didn't just manage to do the bare minimum of what's required in their line of work and as if the perp she managed to catch wasn't only still a problem because she let him get away the first time and sabotaged another team member who was trying to arrest him after. To put the cherry on top, due to her managing to jump ranks at the last second you now have to decide between cutting Coupé or Sonar, both of which take the program much more seriously than Visi. And Blazer even says that even if Visi was still at the bottom of the leaderboard, she would have interfered if Robert cut her, meaning she would've been willing to screw over either Sonar or Coupé in favor of Visi. Why? The two of them deserve this chance much more than Visi does at this point!
When Visi's bullshit leads to Chase putting himself in the hospital to save her dumb ass, the entire Z-Team is rightfully pissed at her and almost unanimously votes to cut her. Even Blazer concedes that Visi is poison to the program at this point. But the game rather obviously signals to you that cutting her would be the wrong choice. After you decide to either keep or cut Visi, it's revealed that she was in the room the whole time, using her powers to stay unnoticed and no matter what you choose, she storms out. If you chose to follow the rest of the Z-Team's wishes and cut her, this is an obvious 'You monster!' moment, because how dare you hurt Visi like this when she's trying so hard? (Except she isn't.) The favoritism is so blatant in this chapter it's frustrating. The Z-Team's arguments for why Visi should get the fuck out are extremely valid. She went out on her own, in my playthrough's case when everyone decided we should wait to retrieve the Pulse, punched Chase before doing so for mouthing off to her, caused Chase to use his super-speed so he could save her which put him in a coma and the most she's gotten for all of this is a temporary suspension. Chase is basically the only family Robert has left and he's on death's door because of Visi and her selfishness. Yet if Robert's not being a forgiving saint about all of this he is painted as being the asshole here. No one is allowed to make Visi face any consequences for anything. Even though, as the Z-Team points out, Coupé/Sonar was cut for way less than what Visi's pulled.
Visi never actually takes responsibility for any of her fuck-ups. Her go to response for being called out is to insult and/or physically attack whoever does it. Her quest for forgiveness is extremely self-centered and that never changes throughout the plot. The words 'I'm sorry' never leave her mouth. She never changes her behavior or even acknowledges it beyond the obvious fishing for validation via sob-stories or self-deprecating remarks. The game really wants the player to believe she's trying to redeem herself, but what she's really doing is looking for shortcuts to make herself feel better.
Which would be an interesting character flaw if it was actually treated as such.
But the writers were obviously too enamored with Visi to do that.