docs(smart-forms): document the page-level browser tab title - #106
Open
yevhen-porechnyi wants to merge 2 commits into
Open
docs(smart-forms): document the page-level browser tab title#106yevhen-porechnyi wants to merge 2 commits into
yevhen-porechnyi wants to merge 2 commits into
Conversation
A CDU page config may now carry a root-level `title`, and `appGetPage` returns
it alongside the rest of the Page. Without this the agent has no way to know
the field exists: it would neither read it from a rendered page nor write it
when authoring one.
- `appGetPage` advertised the Page as `{ grid, forms[], notifications[], query,
language }`; `title` joins that list.
- The page protocol doc gains the field in the GET response shape and in the
page model tree.
- The smart-forms skill had no section for the root of a page `config` at all —
it went straight from the minimal example to `Grid`. Adds a compact one, with
`title` explained: omit it and the host names the tab `<page> - <script ref>`,
or the script ref alone on `index`; a form embedded into another screen never
renames the browser tab either way.
Backend side: pong-server resolves `[[locale]]` and `{{viewModel}}` inside the
title, so it can be localised or built at runtime.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
AI ReviewAdds documentation for the root-level Checklist
Issues foundNo issues found. This review was generated automatically. A human maintainer should still make the merge decision. |
The Page block added in this branch shows `query` as an object and
`notifications` as an array, which is only half the story: those values are
resolved server-side, so each may instead be a single `{{viewModel}}` or
`[[locale]]` token that arrives as an object or an array. Without saying so the
skill teaches the shape and quietly hides the mechanism.
Also names the positions that are *not* resolved — `grid.type`,
`grid.styleClass`, `grid.sideBar`, `grid.header.class` and the keys inside a
page-level `extra` — since a placeholder written there is left as literal text
with no error to explain it. Both lists come from running `renderPage` against
every position.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
AI ReviewRe-review after synchronize: extends the Checklist
Issues found
This review was generated automatically. A human maintainer should still make the merge decision. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A CDU page config may now carry a root-level
title, which becomes the browser tab title of the page, andappGetPagereturns it alongside the rest of the Page. Without this the agent has no way to know the field exists — it would neither read it from a rendered page nor write it when authoring one.Changes
appGetPagesummary advertised the Page as{ grid, forms[], notifications[], query, language }.titlejoins that list.docs/user-flows/cdu-page-protocol.md— the field in the GET response shape (§2.2) and in the page model tree (§3).skills/simulator-smart-forms/SKILL.md— the "Page Config Format" section had no block for the root of aconfigat all; it went straight from the minimal example toGrid. Adds a compact one covering the root-level keys, withtitleexplained.Behaviour being documented
titlenames the browser tab. Omit it and the host names the tab<page> - <script ref>, or the script ref alone on theindexpage. A Smart Form embedded into another screen (a modal, a section header) never renames the browser tab, whether a title is set or not.pong-server resolves
[[locale]]keys and{{viewModel}}values inside the title, so it can be localised or built at runtime —Order {{orderId}}.Platform side
Shipping with control-cdu
v0.51.8plus the matching pong-server and pong-front-end changes (internal, CE-15862). The field travels through the public/papi/1.0/pages/...route, which is why the tool surface needed updating.Checks
go build ./...andgo test ./internal/tools/pass; the drift test is unaffected, since no method, path or operationId changed.