LLMs can really only mostly do trivial things still, they're always going to do very bad work outside of what your average web developer does day-to-day, and even those things aren't a slam dunk in many cases.
That fits with my experience. I used Claude Code to put together a pretty complex CRUD app and it worked quite well. I prompted it to write the code for the analysis worker, and it produced some quite awful code with subtle race conditions which would periodically crash the worker and hang the job.
On the plus side, I got to see first-hand how Postgres handles deadlocks and read up on how to avoid them.
I don't know about "only doing trivial things". I've built a fully threaded webmail replacement for Gmail using imap, indexes mail to postgres, local Django webapp renders everything in a Gmail/Outlook style threaded view with text/html bodies and attachments and a better local search than gmail, and runs all locally. Started as a "could I?" and ended up exceeding all my expectations
That would be considered a trivial thing, why wouldn't it be? It's just basic crud you're doing. Nothing unique and that hasn't been written about tens of thousands of times across millions of books/blogs/comments before.
I used it to analyze a single player game binary from steam, hook into all the relevant game state modifying functions, add full multiplayer state sync and then also hook all the relevant portions of the UI to add multiplayer to the game.
I'm not saying it's the hardest thing but I also wouldn't consider it trivial.
On the plus side, I got to see first-hand how Postgres handles deadlocks and read up on how to avoid them.