It looks like Claude Code switched the default model to Sonnet 4.5, even for max users who are paying for Opus. I had to set the environment variable ANTHROPIC_MODEL=opus to get opus back. Sonnet 4.5 indeed acts like a drunken monkey on the math-heavy legacy C++ codebase I'm working on.
It’s like having a vindictive drunken monkey as a pair programmer.