<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2" -->

---
title: Presence API: What’s new | daily.dev
description: The Presence API feature plugin for WordPress has added multisite-wide online user visibility, moved post locks out of post meta into a dedicated table so lock...
canonical: https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Presence API: What’s new | daily.dev
og:description: The Presence API feature plugin for WordPress has added multisite-wide online user visibility, moved post locks out of post meta into a dedicated table so lock...
og:url: https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2
og:image: https://api.daily.dev/og/posts/qM43mcmN2.png
og:image:alt: Presence API: What’s new
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Presence API: What’s new

**[Make WordPress Core](https://daily.dev/sources/wordpresscore)** · 4 min read · 7 upvotes · 0 comments

## Summary

The Presence API feature plugin for WordPress has added multisite-wide online user visibility, moved post locks out of post meta into a dedicated table so lock refreshes no longer bust the post cache, and added AI agent detection that surfaces agent edits made over REST or MCP. Other additions include retina avatars, heartbeat tab coordination to reduce redundant polling, a view_presence_location capability to control who sees user locations, performance fixes that cut presence reads per request, new PHP API functions (wp_presence_exchange, wp_presence_leave, wp_presence_is_available), and a WP_DEBUG-only admin bar debugger for inspecting presence rows, including those from the Gutenberg Sync Engines collaboration plugin.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://make.wordpress.org/core/2026/10/02/presence-api-whats-new>

## Questions this post answers

### How does the WordPress Presence API plugin store post locks now, and why does it matter for caching?

Post locks are now stored in a dedicated presence table instead of post meta, so refreshing a lock no longer invalidates every cached post query on sites using a persistent object cache. This change landed as part of issue #551 in the Presence API feature plugin, and locks continue to work even when presence recording is switched off.

_Anyone running a cached WordPress multisite setup can track plugin changes like this one on daily.dev._

### How does the WordPress Presence API plugin detect AI agents editing posts over REST or MCP?

Since version 0.13.0, each save by an AI agent writes a presence row for that post's room because an agent sends no Heartbeat on its own, and the row expires about 75 seconds after the last save by default, showing an Agent badge in the admin bar and Editors column. The plugin itself does not decide who is an agent; it checks the Agent Users plugin's wpai_is_agent_user() function or the wp_presence_is_agent_user filter, and if neither is present nobody gets labeled.

_Developers tracking AI agent activity in collaborative editors can follow updates like this on daily.dev._

### Who can see where other users are editing in the WordPress Presence API plugin?

Everyone online still shows up in the admin bar, but seeing where a specific person is located is gated behind the view_presence_location capability, which maps to list_users by default. Everyone can still see their own location regardless of capability, and a user's face is ringed in their block editor color only when both users are viewing the same post.

_WordPress plugin developers weighing permission changes can keep up with capability updates via daily.dev._

## Similar posts on daily.dev

- [Presence API Feature Plugin](https://daily.dev/posts/presence-api-feature-plugin-syzigtcta) · Make WordPress Core · 33 upvotes · 1 comments
- [What’s new for developers? \(April 2026\)](https://daily.dev/posts/what-s-new-for-developers-april-2026--bjyb74tmn) · WordPress Developer · 18 upvotes · 0 comments
- [Extending the 7.0 Cycle](https://daily.dev/posts/extending-the-7-0-cycle-y7rm3qe1p) · Make WordPress Core · 8 upvotes · 0 comments
- [WordPress.com now lets AI agents write and publish posts, and more](https://daily.dev/posts/wordpress-com-now-lets-ai-agents-write-and-publish-posts-and-more-mlj8daq2v) · TechCrunch · 2 upvotes · 0 comments

---

Tags: [#php](https://daily.dev/tags/php), [#wordpress](https://daily.dev/tags/wordpress), [#rest-api](https://daily.dev/tags/rest-api)

[View this post on daily.dev](https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Presence API: What’s new","url":"https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2"},"datePublished":"2026-10-02T17:21:52.743Z","dateModified":"2026-10-02T17:41:40.838Z","description":"The Presence API feature plugin for WordPress has added multisite-wide online user visibility, moved post locks out of post meta into a dedicated table so lock...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/aa8f29c0a04b22d104f2c70e655688ae?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/aa8f29c0a04b22d104f2c70e655688ae?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Make WordPress Core","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Make WordPress Core","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/892d1a79e30e4e8a911b5726c6fb1a06","url":"https://daily.dev/sources/wordpresscore"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"php,wordpress,rest-api","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Make WordPress Core","item":"https://daily.dev/sources/wordpresscore"},{"@type":"ListItem","position":3,"name":"Presence API: What’s new"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/presence-api-what-s-new-qm43mcmn2#faq","mainEntity":[{"@type":"Question","name":"How does the WordPress Presence API plugin store post locks now, and why does it matter for caching?","acceptedAnswer":{"@type":"Answer","text":"Post locks are now stored in a dedicated presence table instead of post meta, so refreshing a lock no longer invalidates every cached post query on sites using a persistent object cache. This change landed as part of issue #551 in the Presence API feature plugin, and locks continue to work even when presence recording is switched off. Anyone running a cached WordPress multisite setup can track plugin changes like this one on daily.dev."}},{"@type":"Question","name":"How does the WordPress Presence API plugin detect AI agents editing posts over REST or MCP?","acceptedAnswer":{"@type":"Answer","text":"Since version 0.13.0, each save by an AI agent writes a presence row for that post's room because an agent sends no Heartbeat on its own, and the row expires about 75 seconds after the last save by default, showing an Agent badge in the admin bar and Editors column. The plugin itself does not decide who is an agent; it checks the Agent Users plugin's wpai_is_agent_user() function or the wp_presence_is_agent_user filter, and if neither is present nobody gets labeled. Developers tracking AI agent activity in collaborative editors can follow updates like this on daily.dev."}},{"@type":"Question","name":"Who can see where other users are editing in the WordPress Presence API plugin?","acceptedAnswer":{"@type":"Answer","text":"Everyone online still shows up in the admin bar, but seeing where a specific person is located is gated behind the view_presence_location capability, which maps to list_users by default. Everyone can still see their own location regardless of capability, and a user's face is ringed in their block editor color only when both users are viewing the same post. WordPress plugin developers weighing permission changes can keep up with capability updates via daily.dev."}}]}
```

