← Blog

February 1, 2026 · 5 min read

When it breaks, who fixes it, and why human-in-the-loop still matters

Three questions experienced engineers ask about AI-powered dependency upgrades—and how we answer them.

Dependency upgrades are boring until they break something. Then everyone wants to know: when did it break, who is supposed to catch it, and whether we're really letting an AI change code without a human in the loop.

We get that. Here's how we think about it.

"When does it break?"

At upgrade time. Not "sometime after a code push" or "when the moon is full." When you—or your CI—run upshift upgrade <pkg>, we change the manifest and lockfile, run your tests, and roll back if tests fail. The break is surfaced at that moment and reverted.

So:

TL;DR: "Breaks when?" → When an upgrade is applied and tests run. Tests are the gate.

CI/CD and smoke tests: we're not replacing them

Today, CI/CD with smoke or integration tests surfaces problems. It doesn't self-heal. We're aligned with that:

Existing CI and test suites stay the source of truth. Upshift adds upgrade + optional code fixes on top of that contract.

Self-healing LLM code: why human-in-the-loop still matters

LLM-generated code changes should be reviewed. "Self-healing" by applying AI-generated patches with no oversight is risky. We're not pretending otherwise.

What we do today:

Recommendation: treat dependency upgrades as guardrailed by tests and optional approval. Treat LLM-generated code fixes as human-in-the-loop: review (dry-run, PR, or approval workflow) before merging. For how we implement approval (prompt vs webhook vs none) and quick setup, see How we do human-in-the-loop (HITL); for webhook payloads and event hooks, see approval (HITL) in the docs.


So: it breaks at upgrade time, tests are the guardrail, and we don't self-heal code without giving you a way to stay in the loop. If that matches how you want to work, give Upshift a try.

Try Upshift Today

Stop reading changelogs. Let AI tell you what breaks.

Get Started
More from the blog How we do human-in-the-loop (HITL) — prompt vs webhook vs none, config, and quick setup.

— The Upshift Team