Commissioner Amanda Fritz, long known as Portland City Council's "principled no vote," took her reputation in, let's say, a nuclear new direction this morning.

Fritz definitively voted down a difficult city budget supported by the rest of her colleagues—delivering a blunt speech that mentioned her status as the council's only woman, celebrated her 60 percent re-election majority last fall, accused her colleagues of shutting her out of deliberations, and firmly lumped in safety net and environmental programs as "basic" services just as vital as roads and utilities and cops.

The speech—coming just before Mayor Charlie Hales gave his own remarks declaring victory with a budget that closed a $21.5 million spending gap, notably by cutting the police and fire bureaus—rocked observers in city hall. It also drew applause from a smattering of citizens who'd showed up to speak on the proceedings.

"I cannot visit a shelter for children escaping prostitution," and look victims in the eye, she said, "if I vote to cut funding for their treatment."

She also wondered why Hales and Police Chief Mike Reese decided to save the Portland Police Bureau's mounted patrol but not restore 22 percent cuts in the bureau's family services unit. Hales backed that change, in light of a nebulous promise of community fundraising, despite having council votes to kill the horse patrol.

Horses are nice, Fritz says, but "people die from domestic violence, child abuse and elder abuse." She also used words like "enslaved" to describe those who would be suffering budget cuts at the hands of her colleagues.

Much of the punch in her remarks was clearly meant for Hales, and tension between the two has been quietly building for months. She argued she wasn't listened to, calling this one of the "least collaborative" budgets of her five on the council. And she said she was dismissed when speaking up for programs that didn't fit neatly into the messages Hales had crafted: basic services, and honest budgeting—whether that meant restructuring how bureaus shared work like stormwater management or reconsidering how the city works with Multnomah County.

But the remarks were so pointed, and applicable to other commissioners (who declined to comment), that they raised fresh questions over whether Fritz would wind up marginalized for the rest of her term. It's also unclear how any sore feelings might affect bureau assignments, which Hales and his chief of staff, Gail Shibley, will have worked out next week. Shibley, during Fritz's remarks, had her lips pursed while looking down and texting away on her iPhone.

"People have a right to be passionate and say what's on their minds," Hales told me during a break in the meeting—adding that the remarks were not expected. "I don't take that personally. I listen. I try to accommodate. It's nice if we're unanimous. But it's fine if there's a majority that wants to move us forward."

Asked how many times Fritz came to his office and raised concerns with either himself or his staffers, Hales answered, "multiple times, every week."

Update 5:07 PM: Commissioner Dan Saltzman told me today he had "an inkling" Fritz would cast a "no" vote and that he couldn't remember a divided budget approval in his 14 years on council. But he pooh-poohed the notion, absent further evidence, that Fritz would face repercussions for the move.

"It's still early—both in her second term and the mayor's first term—to say the die has been permanently cast," says Saltzman, who endorsed Fritz. "She has a great ability to shake things off and move on. I think the mayor is the same way."

As for bureau assignments being reshuffled in the next few days as some kind of punishment, Saltzman counseled: "I just don't see that speech causing a dramatic change."//end update

Behind the scenes, Fritz has been seen as a victor in the budget process, winning much of what was on the long list of concerns she began shopping as soon as Hales announced his proposed budget on April 30. Hales, over the past few weeks, added some but not all funding back for anti-prostitution and youth shelter programs. He found money for community centers and Buckman Pool. He made some changes to plans to shift environmental programs out of the Bureau of Environmental Services and into Parks—letting parks continue paying for the programs, but keeping BES in charge.

Even Fritz noted some of the relative good news that Hales put forward even before his colleagues started shaping the budget: full (city) funding for the safety net, and limited cuts to the bureau she's most identified with, the Office of Neighborhood Involvement. (Fritz, in her speech, suggested ONI is just as much an infrastructure budget as transportation or water: It safeguards "community engagement.")

All the same, the list of remaining grievances, which Fritz noted involved small dollar amounts, kept her from saying yes. She says she wasn't asked about giving new money to the parks bureau, which the mayor announced last week.

The mounted patrol shift also irked her—though the council also, in part to win her support for the budget, appears to have inserted a poison pill in the form of a budget note that could kill the patrol. The note requires the Portland Development Commission and the cops to seek council approval for the $2 million to $5 million in funding required for a new stable—something the city will need once it redevelops the site of the current stable at Centennial Mills.

The writing was on the wall, however, when Fritz voted last week against a rate plan for BES.

Hales, who also alarmed environmentalists, never fully relented on his bid to pay for tree-planting and other stormwater management programs with with general fund money instead of rate money. Fritz hated that, because she thought rate money should pay for programs that fit the bureau's mission. She also saw general fund money that could be used for other needs.

The mayor did allow, thanks to council pushback yesterday, the restoration of some outreach money for stormwater management. But he never reconsidered taking funding away from another of Fritz's favored offices, the Office of Healthy Working Rivers.

"It hurts me deeply to see the direction of this budget on green infrastructure and the environment," she said.

Hales, in council, defended his bid to keep combined sewer, stormwater, and water rates below a 5 percent increase.

"We have managed to continue the city's progressive approach" to those bureaus' programs, he said, "while reducing their proposed rate increase spectacularly. It's something I'm proud of, and it's a response to an earnest plea from our citizens and ratepayers to reduce costs.

Fritz lamented that the city has enough money for needs like sex trafficking programs and a moral responsibilty to step in and "fill holes" in the social fabric when the private sector and nonprofits cannot or will not. She said Portlanders consider those vital services as much as anything else and that they don't care who funds them, so long as they're funded.

She mentioned her charge forward this year on paid sick time. She also suggested, in her closing remarks, that the speech might mark a new tone and sense of independence after feeling like an outsider during the budget process—something that observers warn may translate into a self-fulfilling nightmare of further marginalization.

"i was re-elected to speak the truth as I see it everyday, and I will continue to do just that," she said, later adding, "some would say 'something' is better than 'nothing.' But when we're talking about vital services, like for people escaping prostitution, 'something' is not enough."