§ AC

Started Chat With Rovo Agent: The Only Rovo Chat Event Atlassian Logs

A link with the right query string in it turned Atlassian’s built-in AI assistant into an errand runner for whoever sent the link. Varonis Threat Labs calls it RovoBlast: one click by a user already logged in to an org with Rovo enabled could make Rovo retrieve and exfiltrate data that user was authorized to see. The technique was demonstrated against Confluence, and against data reachable through Jira and connected SharePoint and Outlook surfaces. So far as the public record establishes, that was not one run sweeping all four at once. Varonis showed how ResearchAgent turns seeded instructions into an autonomous exfiltration chain, pushing the harvested data to a server the attacker controls. That final fetch is made from inside Atlassian’s cloud, so nothing ever crosses your network. Atlassian fixed that specific link path server-side in July, so the exact attack in the writeup no longer works. Two things did not change. The assistant still acts within the effective permissions of whoever it is acting for, across the connector surfaces available to the Rovo feature being invoked and subject to whatever connector-level restrictions you have configured. And Atlassian’s audit catalog records that a Rovo chat started without documenting any Rovo Chat-specific tool or retrieval events afterward, so the Rovo-specific trail does not tell you what the assistant then did. Ordinary Jira and Confluence view events do exist, but public documentation does not establish whether Rovo-initiated reads generate them, nor how any such event would be tied back to the chat that caused it; treat both generation and attribution as unproven until someone demonstrates them in a tenant. A second injection path, hidden instructions inside a file Rovo reads, was still unpatched when a different research team published on it on August 5, 2026.

The mechanism: Rovo treated the rovoChatPrompt URL query parameter as pre-filled, trusted chat input. A URL shaped like https://home.atlassian.com/chat?rovoChatPathway=chat&rovoChatPrompt=<instructions> seeded the victim’s authenticated session directly, and Varonis notes the organization ID could be left blank so the request routed to the victim’s default org, with no warning or indicator that the session had been seeded from outside. From there the built-in ResearchAgent did the work: it advertises deep multi-source research and multi-step browsing across arbitrary websites, which is enough to chain fetch, transform, and upload inside a single agent run. The demonstrated exfiltration channel was an attacker-controlled image URL with the harvested data glued into the path, which the agent then fetched. Varonis presented the findings at DEF CON 34, with the public write-up and coverage dated around 7-8 August 2026. Per The Hacker News, the report went through Bugcrowd, Atlassian shipped a server-side fix on July 8, 2026, and the bounty was $6,000; no CVE had been assigned as of August 8. Rovo reaches Jira, Confluence, Bitbucket, Slack, Microsoft 365, Google Workspace and 50-plus other platforms through Rovo Connectors. Rovo is not removable as a platform component, but that is not the same as being unmanageable: Atlassian documents blocking Rovo access per app, which disables that app’s AI features including Chat and Agents.

TL;DR

  • Varonis’s RovoBlast turned a crafted rovoChatPrompt URL into a pre-seeded, trusted Rovo chat session: one click by a logged-in user could send the ResearchAgent to retrieve data that user was authorized to see and push it to an attacker server via an image-URL fetch. It was demonstrated against Confluence and against data reachable through Jira and connected SharePoint and Outlook surfaces, rather than as one run sweeping all four. Atlassian shipped a server-side fix on July 8, 2026 for $6,000, no CVE as of August 8.
  • This chain did not rely on an authorization failure. The agent acts within the human’s effective grants, across whichever connector surfaces the invoked Rovo feature can reach, so a post-incident access review finds nothing wrong. Abuse stays indistinguishable from routine AI-assisted use, and that is the part the patch did not touch.
  • Atlassian’s published Rovo Chat activities are Started chat with Rovo agent plus agent, bookmark, definition and connector CRUD, with no tool-call, retrieval or fetched-URL events for the in-product ResearchAgent path. Two adjacent surfaces are exceptions and are covered below: Rovo MCP’s Invoked tool, and an Invoked Rovo agent event announced for Guard Premium on 5 August 2026 that is not yet in the published activities catalog. Rovo logging is otherwise on all plans, contrary to what I first wrote; what sits behind Cloud Enterprise or Guard Premium is Jira and Confluence app user activity, where the Viewed Confluence page and Viewed Jira issue events live. Whether Rovo’s own reads generate or correlate with those events is undocumented.
  • The exfil fetch is issued by Rovo’s own retrieval capability inside Atlassian’s cloud, so inline proxy, DNS and egress controls should not be assumed to see it; API-based SaaS/CASB tooling is a separate case to evaluate on its own telemetry. PromptArmor’s document-embedded injection, which survives disabling web search because the search-result-opening tool remains, was unresolved when they published on 5 August, 74 days after disclosure.
  • Connector-side auditing is a promising independent surface, not a guaranteed one: SharePoint content is indexed into Atlassian and accessed at runtime, so do not assume one FileAccessed record per document Rovo consumes. Validate in your tenant, resolve the Application (client) ID rather than the object ID, and treat any document-count threshold as a hypothesis to baseline. MailItemsAccessed is Audit (Standard) on E3/E5, not E5-gated; Outlook Mail uses application permissions and is Search-only, not Chat or Agents. Microsoft’s audit schema now defines UserType 11, Agent, with the primary agent’s Entra object ID as UserKey: an explicit agent-versus-human primitive Rovo Chat’s records do not expose, though whether Atlassian connector activity populates it still needs validating.

The deputy is confused, the permissions are correct

There is no authorization failure anywhere in this chain. The user was authenticated. The agent inherited that user’s grants. Every page it read, the user could have opened by hand. If you run an access review against the affected tenant afterward you will find nothing wrong, because nothing was wrong. An entitlement model working exactly as designed produced a full data exfiltration because the intent arrived from a URL and the authority came from the session.

Varonis puts it plainly in the writeup: actions “executed under a legitimate user identity inherit existing access and blend into normal AI-assisted workflows,” leaving “little to distinguish abuse from routine use.” That is the whole problem stated in one sentence, and it is the part that survived the patch.

Resist the urge to turn that into assessment findings, which is what I did in the first draft of this post. Whether AC-3 or AC-6 is satisfied is not something one exploit write-up can settle. It depends on your authorization boundary, your implementation statements, your control parameters and your assessment evidence, and a mature Confluence tenant carrying eight years of inherited space permissions may have an AC-6 problem that has nothing to do with Rovo. What the incident supplies is a set of candidate control implications worth examining. Look at AC-3 and AC-6 for whether an inherited-authorization model is what you meant to authorize. Look at AU-2, AU-3 and AU-12 for whether agent activity generates attributable records at all. Then IA-9, for whether your implementation needs a distinct service identity, and CM-7, for what functionality you can actually restrict. Note also that AC-6(9) is specifically about auditing the execution of privileged functions, so ordinary user-authorized content retrieval does not automatically fall under it, so apply it where the Rovo operation in question is a designated privileged function, not as a catch-all for agent logging.

The thing worth wanting is still easy to state: a way for the platform to record that this read was initiated by an autonomous agent, in a field you can query. The most direct controls for that are AU-3 and AU-3(1). AU-3 requires audit records to establish, among other things, the source of the event and “the identity of any individuals, subjects, or objects/entities associated with the event,” and AU-3(1) covers the additional information you specify beyond that baseline. IA-9 comes into play where your implementation treats the agent or service as an entity that must itself be uniquely identified and authenticated, which is a design decision rather than an automatic consequence of the audit gap. It is hard when the service borrows the human’s principal wholesale, though, as the connector section gets to, Microsoft has started shipping exactly that primitive in its own audit schema, so “unimplementable” is not the right word for it any more.

Started chat with Rovo agent, and then nothing

For the audit log, here is what you actually get. Atlassian’s audit log activities database splits Rovo across three categories. Rovo user actions: Created definition in Rovo; Created, Updated and Deleted Rovo agent; and Started chat with Rovo agent, described as “initiated a direct conversation with a Rovo agent to request assistance or perform specific tasks through real-time interaction.” Rovo admin actions: Created, Updated and Deleted Rovo bookmark, plus the same three verbs for third-party Connector connections. Rovo MCP User Actions: one entry, Invoked tool.

One thing that is not the audit log deserves a sentence, so this section cannot be read as claiming Atlassian shows you nothing at all: Rovo Insights exposes aggregate Rovo-interaction and agent-run metrics, refreshed every 48 to 72 hours. That is adoption analytics on a multi-day delay, not a per-run record of which tools fired, which objects were retrieved, or which URLs were fetched, so it does not fill the forensic gap, but it is current first-party telemetry and worth knowing exists.

And one more thing that cuts against this post’s argument, which surfaced while a reviewer was checking it and which I would rather put in front of you than leave out. On 5 August 2026, eight days before this post, Atlassian announced in a community update that agent activity now appears in the audit log for Guard Premium customers: an Invoked Rovo agent event that, per that announcement, records who invoked the agent, which surface it was invoked from (Rovo Chat among them), what tools the agent used, and what permissions it ran under.

If that behaves as described, it is a large part of what this post says is missing. Three caveats keep it from closing the case, and I would hold all three loosely rather than pick one. First, this rests on a community announcement rather than support documentation. As of publication, the audit log activities database still lists no such activity, and the only Invoked entry in the catalog is MCP’s. That is the same documentation lag that made an earlier version of this post wrong in the other direction, so I am not treating either surface as automatically authoritative. Second, it is Guard Premium, which sharpens rather than resolves the entitlement complaint above: the visibility exists for organizations that buy the top tier. Third, and most important for the specific attack this post is about, an agent invocation is not obviously the same event as the built-in ResearchAgent doing retrievals inside an ordinary chat turn, and Atlassian’s own material notes that Rovo Chat prompts and responses remain outside the audit log even with Guard Premium. Whether an in-product ResearchAgent run produces this event, and how much tool detail it carries, is a question to settle in a tenant rather than from a changelog, including mine.

That is the published list, and the shape of it is still the story. Every Rovo Chat entry in the catalog describes a configuration change or the opening of a session. Not one of them describes the assistant doing anything, and the one announced event that would is gated, uncatalogued, and unverified against this path.

Started chat with Rovo agent tells you a session opened. It does not tell you which tools ran, which spaces got read, how many issues were enumerated, or which URL the agent fetched at the end. At that layer, a RovoBlast-style run and someone asking Rovo to summarize a sprint begin with the same event and produce no documented tool-call sequence after it.

I had this next part wrong in an earlier version and the correction matters, because it moves the complaint to a better target. Rovo logging is not the thing behind a paywall: Atlassian’s plan matrix lists the Rovo app user log, the Rovo app admin log and the Rovo MCP user log as available on all plans, Guard Standard and Guard Premium alike. What is gated is Jira and Confluence app user activity, which the same matrix marks available only with Cloud Enterprise or Guard Premium. Hold that thought for one paragraph, because it turns out to be the more expensive gap.

Now the part I got wrong, and it is the most important correction in this post: Confluence page reads and Jira issue views are org-audit-log activities. The same catalog lists Viewed Confluence page and Viewed Jira issue (“viewed the details of a work item in Jira”), alongside Viewed Confluence blog, database and whiteboard. I had claimed they do not exist. They do.

That changes the shape of the gap without closing it, and the residual question is the one worth putting to Atlassian. Nothing in the public documentation establishes whether a retrieval performed by Rovo on your behalf generates those ordinary view events at all, or, if it does, how you would tie them back to the chat that caused them. Those are two different unknowns and both matter: if Rovo’s reads never surface as view events, the content layer is blind to agent activity; if they do surface but are indistinguishable from the human’s own browsing, you have volume without attribution.

Which is where the query surface stops helping. ALQL gives you activity, actor, auth type, ip address, city/region/country, app, site, and correlation id, with created mandatory on every query. correlation id is the tantalizing one, because if a single correlation ID propagated from the chat-start event through every downstream retrieval you could reconstruct an agent run end to end. Atlassian does not document that it does. Until someone demonstrates the linkage in a real tenant, treat end-to-end reconstruction from the org audit log as unproven rather than impossible.

And mind the clock: Atlassian documents organization audit-log retention as a flat 180 days: “any activity older than 180 days is removed from the audit log and can’t be recovered.” That is not a tier setting you can buy your way out of. If your investigation or compliance window is longer, export or stream the records.

The separate MCP path behaves better, and the contrast is the cleanest evidence in this whole argument. Atlassian’s MCP server monitoring doc says every tool invocation through the Rovo MCP server writes an audit event with the tool name, the action, and the user. The activities catalog carries it as a first-class entry: Invoked tool, “triggered the execution of a designated tool to perform a specific action or workflow.” Same vendor, same product family, same quarter: one surface has a catalogued tool-invocation record and the other does not. This is not a limitation of what is technically possible for Atlassian to log. It is a difference in what got instrumented. And it is not a paywall either: MCP user-action logging sits on all plans too. Filter on “Rovo MCP User Actions” if you have external clients hitting the MCP server; it will not cover the in-product ResearchAgent.

The closest existing detection is Guard Detect’s unusual-activity category, which includes “Jira work item and Confluence page crawling” alongside high-volume attachment downloads and previews. Good signal, wrong subject. Atlassian names the detection but does not publish its threshold, so treat it as a volume signal that may catch a large agent run rather than one you can count on. If it does fire, look at how the underlying activity attributes the actor before you build a response around it. Atlassian does not publicly document whether Rovo-originated crawling surfaces under the human user, an Atlassian system identity, or some other actor representation, and that distinction decides whether the alert points at a person or at a platform.

Where the agent does have a distinguishable identity

The connectors, with more caveats than I first gave them, because “Rovo’s Microsoft 365 connector” is not one thing and does not have one authentication model.

Take Outlook Mail, which the RovoBlast write-up touched. Atlassian’s setup instructions tell an Entra global admin to create an app registration and “select Application permissions,” granting Domain.Read.All, User.Read.All, Group.Read.All, GroupMember.Read.All, Mail.Read and Mail.ReadBasic.All. Application permissions, not delegated. I had that backwards, and the direction matters: Microsoft’s Mail.Read application permission reaches all mailboxes by default, though RBAC for Applications in Exchange Online can bind an application grant to a resource scope covering a defined mailbox population (replacing the legacy application access policies). So check both the Entra grant and any Exchange-side scope before you describe its effective reach as tenant-wide. If no scope exists, that is the conversation to have with whoever consented. Two other things from that page are worth knowing before you build anything. Atlassian says email content “is never ingested or stored within Atlassian,” with searches performed in real time against Outlook’s APIs. And then the constraint that reorders this whole section: “Outlook Mail is only supported in Rovo Search, not in Chat or Agents.” So the historical PoC reaching Outlook-connected data stands as reported, but do not describe today’s Outlook connector as something Rovo Chat can drive.

SharePoint and OneDrive work differently again, and the difference is what undercuts the clean detection I originally proposed. Atlassian’s SharePoint connector documentation describes indexing content into Atlassian (the captured attributes include the document body) and says that “when you access SharePoint data through Rovo at runtime, your own SharePoint access is used.” Two paths, and only one of them necessarily touches SharePoint at the moment Rovo answers your question. A response satisfied from Atlassian’s own index may leave no contemporaneous FileAccessed or FilePreviewed record at all. So the honest framing is that connector-side auditing is a promising independent surface, not a reliable one-record-per-document mirror of what Rovo read. Establish which access paths actually generate source-system events in your tenant before you operationalize anything built on it.

If you do go looking, resolve the connector’s Entra Application (client) ID, not its directory object ID, which is a different identifier and the one I wrongly reached for first, and inspect representative records before you fix a field name in a rule. Application identity surfaces inconsistently across record types, and Microsoft’s own audit property reference documents an AppAccessContext for the application context of a service principal plus the app@sharepoint UserId convention for an application acting on a user’s behalf. SharePoint file records and Exchange mailbox records do not agree with each other. Sample your own index; do not trust a schema doc, including mine.

One genuinely encouraging thing turned up while checking that reference, and it cuts against this post’s own thesis in a way worth stating plainly. Microsoft’s UserType enumeration now includes 11 / Agent, defined simply as “an AI agent,” whose UserKey is “the Microsoft Entra Object ID of the primary agent,” sitting alongside the older 5 / Application. That is precisely the primitive I complain further down that nobody ships: a log field that says an autonomous agent did this, and here is which one. Microsoft has begun shipping it. Whether it populates for this particular connector path in your tenant is an empirical question, so go look, but the argument that distinguishing agent from human is unimplementable is now too strong, and I would rather flag the counter-evidence than write around it.

A worked query is still useful as a shape, provided nobody mistakes it for a tuned rule:

index=o365 sourcetype="o365:management:activity"
  Workload=SharePoint Operation IN (FileAccessed, FilePreviewed)
| search <resolved-application-client-id-field>="<rovo-connector-app-client-id>"
| bin _time span=10m
| stats dc(ObjectId) AS docs, values(SiteUrl) AS sites BY _time, UserId
| where docs > 40

Forty distinct documents in ten minutes is an illustrative starting hypothesis and nothing more. I have no measured basis for it, no source publishes a rate threshold for this, and a number invented in a blog post has a way of ending up in a production rule. Baseline the actual connector and user distributions in your tenant and derive your own.

Three things will break it, and note that the first one inherits the same uncertainty as everything else here. Initial indexing is a failure mode to test rather than assume: when a connector is first authorized it indexes, and if that indexing generates the same source-system events your rule counts, it will produce a large baseline-breaking burst. Measure whether it does before deciding that onboarding windows need suppression. The legitimate heavy user: “summarize everything in the Architecture space” is a real request that generates a real burst, and you will need a carve-out. And UAL delivery lag, which is real and variable, and bucketing on ingest time rather than event time silently splits bursts across windows and drops your dc() under threshold. Bin on _time, not _indextime.

Correct one more thing I had wrong: MailItemsAccessed is not E5-gated. Microsoft documents it as “part of Audit (Standard) functionality,” “enabled by default for users that are assigned an Office 365 E3/E5 or Microsoft 365 E3/E5 license.” E5 and Audit (Premium) buy longer retention and premium capability, not the existence of the event. On Google Workspace the same general approach applies, and here I have to correct myself twice over. An earlier version of this post named “the OAuth client” as the field; a later one said I could not verify any field name in Google’s published Drive audit reference. Both were wrong, and the second was wrong for an instructive reason. Google documents originating_app_id, defined as “the Google Cloud project number of the application that performed the action,” with the note to “use the Drive REST API to retrieve the app title.” It is right there in the Drive audit activity reference. My search missed it because Google’s docs insert break opportunities inside long snake_case identifiers, so a text search for the literal string finds nothing while the page plainly documents the field. Use it as the starting pivot, then confirm that Rovo-generated activity actually populates it the way you expect in your own Workspace logs.

The egress you cannot see

Here is the part that makes the usual answer useless. ResearchAgent’s browsing runs server-side in Atlassian’s cloud. The outbound fetch to the attacker’s URL leaves Atlassian’s infrastructure, not yours. Your Zscaler tenant, your Palo Alto egress rules, your DNS RPZ, your outbound DLP: none of them should be assumed to sit on that path, because the request is issued by Rovo’s own retrieval capability rather than by anything on your network. Be precise about the scope of that claim, though. It applies to inline, packet-path enforcement: proxy, DNS, firewall, endpoint egress. API-based SaaS security and CASB tooling operates on a different principle entirely, pulling activity and content from the vendor’s own APIs, so those should be evaluated on the telemetry they actually receive rather than dismissed along with the inline controls. The right question to a vendor is not “which packet are you inspecting” but “which API surface are you reading, and does it show Rovo’s retrievals.”

That also means SC-7 is the wrong control to declare dead. Customer-operated inline boundary controls are not an enforcement point for a fetch the SaaS originates, but that is a statement about where your authorization boundary ends and the shared-responsibility line falls, which is an SC-7 question, not proof that SC-7 is inapplicable.

Which is why PromptArmor’s finding matters more than its press coverage suggested. They embedded instructions in an uploaded document, and the agent exfiltrated through Rovo’s URL-retrieval tool. Their note that the attack still works with web search disabled, because turning off web search “fails to remove the tool for opening the search results,” means the obvious mitigation is not one. They disclosed on May 23, 2026, got a case number on May 25, followed up June 4 and July 29, and published on August 5 with the issue unresolved, 74 days from report to publication. Keep that status boundary where PromptArmor put it: what is established is that the path was unresolved when they published on August 5, not that it is exploitable as you read this. I have not found any public confirmation of a fix since, which is not the same as knowing there isn’t one.

And separate two things I ran together. Rovo may not be removable as a platform component, but it is not beyond your control either: Atlassian documents blocking Rovo access per app: add the app, select Block access, which disables that app’s AI features including Agents and Chat. There is a real catch worth reading twice if you run several Jira products: “certain AI features common across Jira family apps, such as Rovo AI-powered Search, Chat, and Create with Rovo, remain available as long as any Jira app on that site still has Rovo enabled.” So blocking one app is not blocking Rovo. Blocking the exposed surface means blocking it everywhere on the site that can serve it.

Connector scope is the blast radius

Connector scope is the highest-leverage lever, but start with the controls Atlassian actually ships rather than with the identity provider, which is where I pointed first and where the blast radius is hardest to shrink safely.

For SharePoint and OneDrive, Atlassian documents native scoping on the connector itself: a site allowlist or blocklist (“up to 50 items to your blocklist or allowlist for each connector”), Microsoft 365 Group IDs to include or exclude personal sites, a date limit that indexes only content created or modified after a date you set, and blocking content by Microsoft Information Protection sensitivity label. Those four compose, and each covers a different failure: the site list handles known-sensitive project spaces, the group scoping handles personal OneDrive sprawl, the date limit handles the archive nobody has looked at since 2019, and the label filter handles the documents your data-classification program already identified. Combine that with Rovo’s own access controls. Block it per app where a product does not need it, and on Enterprise tenants running Atlassian’s newer access-control experience you can also manage “which apps or user groups can access Rovo by enabling or disabling Rovo features, including Agents and Chat”: group allowlisting, with group blocking noted as a limited beta. Atlassian is rolling that experience out gradually and says you may see either the original or the new one, so check which you have before planning around it. Between connector scoping and access control you can reduce both the reachable data and the population able to invoke the exposed surface, using documented and supported mechanisms.

Only then go to Entra, and go with your eyes open. Look at what was consented for the connector’s app registration and who consented to it. For Outlook Mail that is an application-permission grant including tenant-wide Mail.Read, which deserves a named owner and a review date. Be clear about what each lever buys: trimming permissions limits what the connector can ever ask for, while app assignment limits who can connect it in the first place, and assignment does nothing to shrink what an already-connected user’s session can reach. Be equally clear about the risk: these are the permissions the connector’s setup expects, so narrowing them is a change to a supported configuration, and you should expect to break indexing if you get it wrong. On the Atlassian side, disconnect connectors nobody uses; the Bitbucket connector wired up during a 2024 evaluation and never touched since is pure blast radius. Keep legal, HR, finance, and IR content out of Rovo’s scope entirely; that is Varonis’s own recommendation and it is the right one, though enforcing it means your Confluence space permissions actually have to be correct, which is its own multi-quarter project.

Control What it covers here Honest status
AC-4 Information flow between the agent and external destinations No customer-operated inline enforcement point on the demonstrated Rovo-originated fetch; vendor-side and API-based controls may still apply
AC-6(9) Auditing execution of privileged functions, applies only where the Rovo operation is a designated privileged function No tool-call granularity in Rovo Chat either way
AU-2, AU-12 Selecting and generating agent-initiated content-read events No catalogued Rovo Chat tool or retrieval record; a Guard Premium agent-invocation event was announced 5 Aug 2026 but is uncatalogued and unverified for this path; Viewed-page/issue events exist with undocumented behavior for agent reads
AU-3(1) Additional detail (agent identity, prompt provenance) in records Not available
AU-6 Review and correlation across Atlassian + M365 + Workspace Potentially achievable where stable app or agent identifiers are actually emitted; validate coverage before relying on it
CA-7 Continuous monitoring of an assistant you cannot fully remove Define what you monitor and how often
CM-7 Least functionality: Rovo is not removable, but Chat and Agents can be blocked per app Restrict what you can, then document what remains
IA-9 Distinguishing the agent principal from the human The central question; Atlassian does not expose it, Microsoft’s audit schema has begun to
SA-9 External system service with connected access to your data; the authorization model varies by connector Reassess the connector inventory
SI-4 Monitoring for agent-driven bulk read patterns Partial: Guard Detect supplies Atlassian-side unusual-activity monitoring, and source-system telemetry may add coverage where records are emitted

If you are running an ATO package with Rovo in scope, CM-7 and IA-9 are the questions worth putting in front of your assessor, and “the vendor fixed the reported URL parameter” is not a response to either. Scope the connectors with the controls Atlassian ships, block Rovo where a product does not need it, and put whatever connector-side detection survives tenant validation into your ConMon plan with the threshold you measured rather than the one you read here.

The URL parameter was a bug and it got fixed for six grand. The agent still runs as you, and unless you are buying Guard Premium and the newly announced agent event turns out to cover this path, the Rovo log still stops at started chat.

Sources


This post was engineered and validated through a multi-agent AI workflow — drafted, adversarially reviewed by several independent models, checked against primary sources, and given a human review before publishing. See an inaccuracy, or found this useful? Leave a comment below — corrections and feedback are read and shape what comes next.

Leave a comment