# Antigravity Agent 09-2026: Migrate Before October 5

> Source: <https://byteiota.com/antigravity-agent-09-2026-migrate-before-october-5/>
> Published: 2026-09-22 02:10:55+00:00

Google released `antigravity-preview-09-2026` on September 17 and gave `antigravity-preview-05-2026` a hard shutdown date of **October 5, 2026**. Any application, scheduled workflow, or CI pipeline still calling the old agent version will stop working on that date with a “version no longer supported” error — no warning, no fallback, no grace period. How painful the fix is depends entirely on how deeply your code touches the agent’s tool output.

## What antigravity-preview Is (and Why This Affects More Codebases Than You Think)

The `antigravity-preview-*` strings are managed agent identifiers for Google’s Interactions API — the `client.interactions.create()` call in the [Antigravity SDK](https://ai.google.dev/gemini-api/docs/antigravity-agent). They’re distinct from the CLI version you install locally. When you call the managed agent, Google runs the full agentic loop on its infrastructure and streams steps back to your code. The agent string is how you pin which behavior you get.

The catch: several popular project scaffolds and Antigravity-based tools shipped with `antigravity-preview-05-2026` hardcoded as their default. If you adopted one of those projects and never looked at the agent string, you may be exposed without knowing it. Run `grep -r "antigravity-preview-05-2026" .` in your project now.

## Are You on the Easy Path or the Hard One?

Your migration complexity depends on what you do with the agent’s output:

- **Remote sandbox, reading output_text or model_output only:** Change the agent string to`antigravity-preview-09-2026` . You’re done. This takes two minutes.
- **Local environment or parsing function_call steps:** You have three breaking changes to address in the tool surface before you flip the string.

If you’re in the second group and simply swap the agent string without fixing the tool surface, your code will run without error but silently return wrong data. That is worse than an obvious crash.

## Breaking Change 1: PascalCase Parameters

Every built-in tool parameter has been renamed from `snake_case` to `PascalCase`. `file_path` becomes `FilePath`. `start_line` becomes `StartLine`. `max_depth` becomes `MaxDepth`. The change is uniform and mechanical, but it is a silent failure — code that reads `step.parameters["file_path"]` returns `None` rather than raising an exception immediately.

Before (05-2026 function_call step):

```
{
  "tool": "read_file",
  "parameters": {
    "file_path": "src/auth.py",
    "start_line": 10,
    "end_line": 50
  }
}
```

After (09-2026 function_call step):

```
{
  "tool": "read_file",
  "parameters": {
    "FilePath": "src/auth.py",
    "StartLine": 10,
    "EndLine": 50
  }
}
```

Audit every place your code reads from `step.parameters` and update the key strings.

## Breaking Change 2: File Edits Are Now Line-Range Patches

The bigger behavioral shift is in how the agent writes files. In `05-2026`, a `write_file` call contained the full file contents — the agent rewrote the entire file on every edit. In `09-2026`, the agent sends targeted patches: a `StartLine`, an `EndLine`, and a `NewContent` block that replaces only those lines.

Before (05-2026 write_file):

```
{
  "tool": "write_file",
  "parameters": {
    "file_path": "src/auth.py",
    "content": "...entire 300-line file..."
  }
}
```

After (09-2026 write_file):

```
{
  "tool": "write_file",
  "parameters": {
    "FilePath": "src/auth.py",
    "StartLine": 45,
    "EndLine": 52,
    "NewContent": "    return validate_token(token)\n"
  }
}
```

If your executor still handles writes by replacing the full file content, you will overwrite hundreds of lines with an eight-line patch. Implement line-range merge logic before you deploy the new version. Beyond compliance, the change is worth adopting — full-file rewrites were slow for large files and produced unreadable diffs. Line-range patches are faster, cheaper, and auditable.

## What’s New: find_by_name and grep_search

Two new built-in tools ship in `09-2026`: `find_by_name(SearchDirectory, Pattern, MaxDepth)` and `grep_search(SearchPath, Query, IsRegex)`. These replace the shell commands the agent previously ran itself for file search, reducing the class of bugs that came from edge-case escaping on paths with spaces or special characters. Not a breaking change — these are additive — but they are worth using if you build custom tool handlers.

## Migration Checklist

1. **Find the old version string:**`grep -r "antigravity-preview-05-2026" .` — every match is a migration target.
2. **Update the agent string:** Replace with`antigravity-preview-09-2026` in every config, environment variable, and hardcoded call.
3. **Update function_call parameter keys:** If you parse`step.parameters` , rename all snake_case keys to PascalCase. A global search-and-replace on your parameter key strings is the fastest approach.
4. **Update file write handling:** Replace full-content write logic with a line-range merge implementation. Read the current file into memory, apply the`StartLine` /`EndLine` /`NewContent` patch, write back.
5. **Test before October 5:** Run your agent against staging with the new version string. Confirm writes produce correct output and parameter reads return expected values.

The official deprecation timeline is tracked in the [Gemini API changelog](https://ai.google.dev/gemini-api/docs/changelog). Complete agent reference documentation is at [ai.google.dev/gemini-api/docs/antigravity-agent](https://ai.google.dev/gemini-api/docs/antigravity-agent). If you missed the Gemini CLI to Antigravity CLI transition earlier this year, the [Antigravity changelog](https://antigravity.google/changelog/) covers the full history. For background on what changed when Gemini CLI was retired, see [Google Antigravity CLI: What Changed When Gemini CLI Died](https://byteiota.com/antigravity-cli-gemini-successor/).
