---
title: "Launch Log: AI-assisted migrations and a stronger Prevent Direct Access setting"
date: 2026-09-18
author: "Casey Burridge"
link: "https://www.gravitykit.com/launch-log-ai-assisted-migrations-and-a-stronger-prevent-direct-access-setting/"
---

This week's releases lean on AI. GravityMigrate gains a way to hand a whole migration to an AI assistant through the GravityKit MCP, which itself picks up a one-click Claude Desktop install. GravityView gets a stronger Prevent Direct Access setting, and GravityEdit, GravityExport Lite, GravityImport, and the Maps Layout see fixes for rich text links, PDF downloads, choice field imports, and Single Entry styling.

All releases shipped on September 17, 2026.

## GravityEdit v2.11.2

This update to [GravityEdit](https://www.gravitykit.com/products/gravityedit/) fixes adding links with the rich text editor. With Inline Edit Mode set to Popup, which is the default, the link box, its suggestions list, the Link options dialog, the toolbar tooltips, and the Keyboard Shortcuts window all opened behind the popup, where you could not reach them.

Searching for content to link to also returned no results inside a View. Both are fixed, so linking now works in a popup edit the way it does everywhere else in WordPress. Rich text editing applies to paragraph fields; see [which field types support inline editing](https://www.gravitykit.com/docs/gravityedit/inline-edit-what-field-types-are-supported/) for the full list.

## GravityExport Lite v2.7.2

This update to [GravityExport Lite](https://www.gravitykit.com/products/gravityexport-lite/) raises the minimum PHP version to 7.4. Check your host's PHP version before updating if your site runs anything older.

PDF exports were sent without a PDF file type, which could cause browsers, proxies, and file previewers to handle the downloaded file incorrectly. That is fixed. A browser console error that appeared on a form's GravityExport Lite settings page before the [download URL](https://www.gravitykit.com/docs/gravityexport-lite/getting-started-with-gravityexport-lite-plugin/) was enabled is also gone.

## GravityImport v2.12.1

This update to [GravityImport](https://www.gravitykit.com/products/gravityimport/) fixes file uploads and choice field mapping. On Gravity Forms 3.1.2 or newer, files were not imported into file upload fields, and every row was rejected with "The file is not valid."

Multiple Choice and Image Choice fields set to "Select One" could not be mapped as a single column. The [mapping step](https://www.gravitykit.com/docs/gravityimport/map-csv-to-form-fields/) offered only their individual choices, so the column was dropped while the import still reported success. Existing mappings to an individual choice are now rejected with a message naming the field to map instead, or skipped with a warning when an import profile runs [from the command line](https://www.gravitykit.com/docs/gravityimport/import-entries-with-wp-cli/).

Multiple Choice and Image Choice fields that allow more than one selection stored cell values such as `1`, `yes`, `0`, or `no` as the selected choice. They now behave the way [Checkbox columns](https://www.gravitykit.com/docs/gravityimport/allow-for-non-standard-imported-values-for-checkbox-fields/) do:

- `1`, `true`, or `yes` selects the choice
- `0`, `false`, `no`, or an empty cell leaves it unselected
- "(Any Choice)" is available as a mapping target
- Rows that don't meet an "Exact Number" or "Range" selection limit are reported as errors

Row errors also showed HTML character codes such as `<` and `&` in the import log and the failed records download, including around formatted text in Gravity Forms messages. Those now read as plain text.

## GravityKit MCP v2.5.0

[GravityKit MCP](https://www.gravitykit.com/mcp/) connects an AI assistant to your Gravity Forms site, and this release makes it easier to install and safer to hand write access to.

Claude Desktop users can now install it as a one-click extension. Download [the `.mcpb` bundle](https://github.com/GravityKit/MCP/releases/latest/download/gravitykit-mcp.mcpb), open it, and fill in four fields: your site address, your WordPress username, an application password, and what the assistant is allowed to delete. No JSON config file to hand-edit. [Getting started with GravityKit MCP](https://www.gravitykit.com/docs/gravitykit-mcp/getting-started/) covers the credentials you need.

Deleting is now permitted per product rather than all at once. Destructive product tools such as `gv_view_delete` stay disabled until you name them in `GRAVITYKIT_MCP_ALLOW_DESTRUCTIVE`, by exact tool name, by product prefix, or with `all`. If you relied on deleting Views without a delete setting, you will need to switch this on. Deleting a field now respects the same `GRAVITY_FORMS_ALLOW_DELETE` switch that already covered forms, entries, and feeds, which is documented with the rest of the [configuration settings](https://www.gravitykit.com/docs/gravitykit-mcp/configuration/).

Sites with more than 50 abilities now expose all of them, where the catalog read previously stopped at the first page and silently lost every tool past the first fifty. A site answering 429, 502, 503, or 504 is busy rather than refusing, so those responses are now retried with a backoff, while 401 and 403 are treated as answers. Upgrading a product mid-session used to leave an assistant holding tools the site no longer had; the server now notices a call naming a missing ability, refetches the catalog, and tells the client the tool list changed.

Other fixes in this release:

- Compacting a response no longer strips empty values from ability results, which had made "not running" look identical to a field that does not exist
- A product tool that states no safety annotations is treated as destructive, matching the MCP specification, instead of being published to clients as harmless
- `gf_list_forms` no longer advertises search and pagination that Gravity Forms does not implement on its `/forms` endpoint
- `gf_update_field` only requires `force` when a change affects what dependents consume, so cosmetic edits such as a label change go through
- `gf_get_results` accepts the same search object as `gf_list_entries` and passes it to Gravity Forms
- `gf_create_feed` honors `is_active: false`, and `gf_update_feed` no longer wipes a feed's settings on a partial update
- `gf_add_field` places a field at the top of a form when asked, and can no longer create a duplicate field id
- Gravity Forms tool errors now include the HTTP status, error code, and per-parameter details WordPress returned

### Developer updates

- Generated product tools now publish an output schema and a title, and return `structuredContent` alongside the text.
- An ability that does not become a tool reports why in the response, not only in a log.
- `fast-uri` is forced to 4.1.3, `form-data` is updated to 4.0.6, and axios is updated to 1.18.0. The Model Context Protocol SDK moves to 1.30.0 with no protocol change; the server still speaks 2025-11-25.
- Server instructions document how GravityView actually renders a side-by-side search bar: an `area_settings` entry with `layout: "row"` in the search bar's `search_fields_section` position bucket, rather than the `search_layout` setting.

## GravityMigrate v2.1.0

This update to [GravityMigrate](https://www.gravitykit.com/products/gravitymigrate/) lets an AI assistant run your migration. Connect Claude, or another assistant, to your site with the [GravityKit MCP](https://www.gravitykit.com/mcp/) and ask it to move your forms. You can do a dry run that changes nothing, move forms between form plugins, or pack up a whole site's Gravity Forms data to move somewhere else. If you would rather drive the migration yourself, [getting started with GravityMigrate](https://www.gravitykit.com/docs/gravitymigrate/getting-started-with-gravitymigrate/) still covers the manual path.

GravityMigrate now requires WordPress 6.2 or newer.

### Developer updates

- Eleven new WordPress Abilities, registered through GravityKit Foundation, each prefixed with `gk-gravitymigrate/`.

## GravityView v3.4.0

This update to [GravityView](https://www.gravitykit.com/products/gravityview/) strengthens the [Prevent Direct Access setting](https://www.gravitykit.com/docs/gravityview/view-settings/the-direct-access-setting/). A View with it enabled now returns a "not found" page at its own URL and is left out of the WordPress sitemap, feeds, archives, and previous and next links. It still works wherever you embed it, and administrators and editors can still reach it directly.

Several Single Entry and Edit Entry problems are fixed. The Edit Entry, Delete Entry, and Duplicate Entry link fields did not appear on a user's own Single Entry when that entry was not on the View's first page. Single Entry pages in Views with [joined forms](https://www.gravitykit.com/docs/gravityview-pro/multiple-forms/joining-multiple-forms/) showed "You are not allowed to view this content." when an Entry Slug was set. Long column headings in Table Views using the [Vantage theme](https://www.gravitykit.com/docs/gravityview/view-settings/modern-styles/) did not wrap and overlapped the next column.

[Custom CSS](https://www.gravitykit.com/docs/gravityview/view-settings/view-settings-custom-code/) and Vantage styling now apply where they previously did not:

- Custom CSS on Views using Vantage had no effect on the Single Entry page unless it used `VIEW_SELECTOR`
- Custom CSS written with `VIEW_SELECTOR` or `VIEW_WRAPPER`, and Custom CSS on Views using Vantage, had no effect on the Edit Entry page
- Vantage typography and style settings did not apply to the Edit Entry page

Two more fixes round out the release. The `{now}`, `{yesterday}`, and `{tomorrow}` merge tags showed the wrong time on sites not set to UTC, and did not return UTC when the `:no_tz_offset` modifier was used. The `gravityview/template/field/label` filter had no effect on field labels on the Maps layout's Single Entry page.

### Developer updates

- New `gk/gravityview/view/output/direct/404` filter to show the previous message page instead of a "not found" response when a View that prevents direct access is visited at its own URL. Return `false`.
- The Edit Entry wrapper (`.gv-edit-entry-wrapper`) now also carries the `gv-container gv-container-{View ID}` classes and a `gv-view-{View ID}-edit-{Entry ID}` id.

## GravityView - Maps Layout v3.10.5

This update to the [GravityView Maps Layout](https://www.gravitykit.com/products/maps/) fixes styling on the Single Entry page. Single Entry pages of Map Views ignored the [Vantage theme](https://www.gravitykit.com/docs/gravityview/view-settings/modern-styles/), the View's CSS Class setting, and [Custom CSS](https://www.gravitykit.com/docs/gravityview/view-settings/view-settings-custom-code/) written with `VIEW_SELECTOR`.

## In summary

GravityMigrate hands migrations to an AI assistant, GravityKit MCP adds a one-click Claude Desktop install and per-product control over destructive tools, and GravityView tightens Prevent Direct Access while fixing a run of Single Entry, Edit Entry, and Custom CSS issues. GravityEdit fixes rich text linking in popup edits, GravityImport fixes file uploads and choice field mapping, GravityExport Lite fixes PDF downloads, and the Maps Layout fixes Single Entry styling.

Two releases change requirements: GravityExport Lite now needs PHP 7.4 or newer, and GravityMigrate now needs WordPress 6.2 or newer. Check both before updating, then update to the latest versions to stay compatible across the GravityKit suite.

## Updates

- [GravityEdit v2.11.2](https://www.gravitykit.com/products/gravityedit/)
- [GravityExport Lite v2.7.2](https://www.gravitykit.com/products/gravityexport-lite/)
- [GravityImport v2.12.1](https://www.gravitykit.com/products/gravityimport/)
- [GravityKit MCP v2.5.0](https://www.gravitykit.com/mcp/)
- [GravityMigrate v2.1.0](https://www.gravitykit.com/products/gravitymigrate/)
- [GravityView v3.4.0](https://www.gravitykit.com/products/gravityview/)
- [GravityView - Maps Layout v3.10.5](https://www.gravitykit.com/products/maps/)