Continuous maintenance is keeping software current with every change in the packages, APIs, AI models and runtimes it depends on, as those changes ship.

It is the step after continuous integration and continuous delivery. CI tests the code you write. CD ships it. Continuous maintenance (CM) keeps it working while the things under it change.

CI, CD and CM

Continuous integration and continuous delivery both start from a change you made. Continuous maintenance starts from a change someone else made: a release, a deprecation notice, a shutdown date.

Your code didn't change, and it still breaks.

Step Starts from Does
Continuous integration A commit or pull request Builds and tests the code you changed
Continuous delivery A merge to the main branch Ships the tested code
Continuous maintenance A change outside your code Finds the code it hits and opens the fix for review

Why it needs its own step

Dependencies change on their own schedule. A package removes a function in a major release. A provider sunsets an API version. A cloud platform stops patching a runtime. None of these touch your repository, so CI has nothing to run and CD has nothing to ship.

AI models make the gap sharper. Providers retire model IDs on fixed dates, often a different date on each platform that serves the model, and a request that names a retired model fails. The retirement calendar lists each date with its source.

Coding agents widen it again. An agent learned its packages and models when it was trained, so it writes against versions and model IDs that may have changed since, unless something tells it what changed.

What continuous maintenance covers

  • Breaking releases: a function, class or option removed, renamed or given a new signature.
  • API deprecations and sunsets: an endpoint, field or version a provider is turning off.
  • AI model retirements, matched to the platform your code calls: the provider's own API, Azure, Amazon Bedrock or Google Vertex AI.
  • Runtime and CI image end of life: language versions, base images and hosted runners.
  • Security advisories on the versions your lockfile pins.

How to practice it

  1. Know what your code uses: the manifests and lockfiles, plus the model IDs, API calls and runtime versions written in code and config.
  2. Follow the sources: package registries, provider deprecation pages and end of life schedules, read as they change.
  3. Match each change to the lines it hits, on the platform the code actually calls.
  4. Fix before the date: a pull request with the change, tested by your CI and reviewed by a person.
  5. Tell your coding agents what changed since they were trained, so new code doesn't bring back what is retiring.

What it looks like this season

Each of these is a change outside your code that breaks code nobody touched. Each guide shows where the change hides in a codebase and what to move to.

How to tell it's working

  • Changes are found while there is still notice left, not after something fails in production.
  • Fixes arrive as reviewed pull requests, so nobody patches a shutdown in a hurry.
  • New code from people and agents stops naming models and versions that are already retiring.
  • The gap between a change being announced and the fix being merged gets shorter.

Agentic maintenance

Agentic maintenance is continuous maintenance done with coding agents. The agent asks what changed since it was trained before it writes, checks the code it touches, and fixes arrive as pull requests a person reviews.

Since.dev gives agents three tools for it over MCP: whats_changed, check_code and fix_code. One line connects Claude Code:

claude mcp add --transport http since https://api.since.dev/mcp 

Codex, Cursor and any other MCP client use https://api.since.dev/mcp. The MCP reference shows how to connect each one.

Where Since.dev fits

Since.dev does continuous maintenance. It tracks packages, AI models, APIs and runtimes as they change, each change with its source, finds the exact lines a change breaks in your code, and opens the pull request that fixes it, for a person to review. Nothing merges or deploys.

Try it on any public GitHub repository with the free scan. No sign-in.

Questions

Is continuous maintenance the same as Dependabot?

No. Dependabot opens pull requests for newer versions and known vulnerabilities. Continuous maintenance also covers changes that aren't a version bump, such as an API sunset, an AI model's shutdown date or a runtime's end of life, and the code changes a breaking release needs. Many teams run both.

Does continuous maintenance replace CI?

No. It runs beside CI and CD. Its fixes arrive as pull requests, and your CI tests them like any other change before a person merges.

What is agentic maintenance?

Continuous maintenance done with coding agents: they ask what changed since they were trained before they write, and fixes arrive as pull requests a person reviews.

What was the last thing that broke in your code without anyone touching it? Tell me in the comments.

First published on since.dev.