Skip to content

update actions.md#1086

Merged
wrenj merged 3 commits intogoogle:mainfrom
wrenj:dddd
Apr 7, 2026
Merged

update actions.md#1086
wrenj merged 3 commits intogoogle:mainfrom
wrenj:dddd

Conversation

@wrenj
Copy link
Copy Markdown
Collaborator

@wrenj wrenj commented Apr 7, 2026

No description provided.

@github-project-automation github-project-automation bot moved this to Todo in A2UI Apr 7, 2026
@wrenj wrenj requested a review from polina-c April 7, 2026 17:56
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the A2UI documentation to clarify the distinction between Agent-side Events and Renderer-side Functions, while also refining terminology and updating schema links. The review feedback suggests improving conciseness by removing redundant execution notes and correcting the "Function Validation" header to "Action Validation" to better reflect its scope. Additionally, it is recommended to restore the GitHub-specific alert syntax for critical security warnings and important notes to ensure they remain visually prominent for developers.

Comment on lines +9 to +10
1. **Events**: Dispatched to the Agent for processing (executed on Agent, e.g., clicking "Submit").
2. **Functions**: Executed entirely on the renderer using [`FunctionCall`](../../specification/v0_9/json/common_types.json#L200-L242) (executed on Renderer, e.g., opening a URL).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The parenthetical notes "(executed on Agent...)" and "(executed on Renderer...)" are redundant because the start of each definition already specifies the execution location. Removing these repetitions makes the list more concise.

Suggested change
1. **Events**: Dispatched to the Agent for processing (executed on Agent, e.g., clicking "Submit").
2. **Functions**: Executed entirely on the renderer using [`FunctionCall`](../../specification/v0_9/json/common_types.json#L200-L242) (executed on Renderer, e.g., opening a URL).
1. **Events**: Dispatched to the Agent for processing (e.g., clicking "Submit").
2. **Functions**: Executed entirely on the renderer using [`FunctionCall`](../../specification/v0_9/json/common_types.json#L200-L242) (e.g., opening a URL).

- **Formatting**: Using `formatString` to format a local display value.

### Basic Catalog Action Validation (Checks)
### Basic Catalog Function Validation (Checks)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The header "Function Validation" is misleading. In A2UI, "Functions" refers specifically to local renderer-side actions (functionCall). However, "Checks" are a general mechanism that applies to any component's action, including those that trigger an event (Agent-side). "Action Validation" or simply "Validation" would be more accurate.

Suggested change
### Basic Catalog Function Validation (Checks)
### Basic Catalog Action Validation (Checks)


> [!CAUTION]
> **Security Risk: State Scraping**: If an Orchestrator fails to strip the `a2uiClientDataModel`, a malicious or compromised sub-agent could potentially "scrape" the state of other active surfaces. For example, a weather sub-agent could read sensitive data from a banking surface if the orchestrator leaks the entire multi-surface data model. Stripping is a mandatory security requirement in multi-agent systems.
CAUTION: **Security Risk: State Scraping**: If an Orchestrator fails to strip the `a2uiClientDataModel`, a malicious or compromised sub-agent could potentially "scrape" the state of other active surfaces. For example, a weather sub-agent could read sensitive data from a banking surface if the orchestrator leaks the entire multi-surface data model. Stripping is a mandatory security requirement in multi-agent systems.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The removal of the GitHub-specific alert syntax (> [!CAUTION]) and the blockquote formatting reduces the visual prominence of this critical security warning. It is recommended to retain the alert syntax to ensure that mandatory security requirements like metadata stripping are easily noticed by developers. This applies to other notes and important callouts in the document as well (lines 60, 98, 138, 265).

Suggested change
CAUTION: **Security Risk: State Scraping**: If an Orchestrator fails to strip the `a2uiClientDataModel`, a malicious or compromised sub-agent could potentially "scrape" the state of other active surfaces. For example, a weather sub-agent could read sensitive data from a banking surface if the orchestrator leaks the entire multi-surface data model. Stripping is a mandatory security requirement in multi-agent systems.
> [!CAUTION]
> **Security Risk: State Scraping**: If an Orchestrator fails to strip the `a2uiClientDataModel`, a malicious or compromised sub-agent could potentially "scrape" the state of other active surfaces. For example, a weather sub-agent could read sensitive data from a banking surface if the orchestrator leaks the entire multi-surface data model. Stripping is a mandatory security requirement in multi-agent systems.

The basic catalog defines a limited set of checks that can be performed on the renderer. Interactive components can define a list of `checks` (using the [`Checkable`](../../specification/v0_9/json/common_types.json#L258-L270) schema in `common_types.json`). For a `Button`, if any check fails, the button is **automatically disabled** on the renderer.

- **UX Focus**: Action checks are designed to manage **UI State (User Experience)** by preventing invalid interactions before they happen. They are not a replacement for **Data Integrity** checks, which must still be performed on the agent.
- **UX Focus**: Validation checks are designed to manage **UI State (User Experience)** by preventing invalid interactions before they happen. They are not a replacement for **Data Integrity** checks, which must still be performed on the agent.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am lost between all kinds of validations. They appear gradually in the text and it is hard to track what kinds of validation are there.

It seems we are missing them in glossary.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they are a concept in the basic catalog, other catalogs don't use them, its why its confusing since its not a core part of a2ui, just something we added in basic catalog

Copy link
Copy Markdown
Member

@polina-c polina-c left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm with comments

wrenj and others added 2 commits April 7, 2026 12:48
Co-authored-by: Polina Cherkasova <polina.c@live.com>
@wrenj wrenj merged commit f017db3 into google:main Apr 7, 2026
9 of 10 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in A2UI Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants