LLMs seem to handle dependency upgrades really well.
The task is well-specified, there's usually a build/test suite to check correctness of the modifications, and there's often a changelog they can consume too.
Cunning trick to ease upgrades in Rust. Each semver upgrade is a distinct type, but a library can depend on an older version of itself and preserve the types!
I do most of my computing on a desktop I built for gaming in 2011, with minimal upgrades since.
Looking at components now, it's striking how comparable parts get better performance but still put out less heat!