feat(spec): ActionSchema — opensInNewTab + newTabUrl zero-roundtrip new-tab contract#1787
Merged
Merged
Conversation
…ip contract
Documents the existing opensInNewTab renderer behavior in the schema and
adds newTabUrl: a direct new-tab URL template ({recordId} placeholder)
the renderer navigates the pre-opened tab to immediately on click,
skipping the action POST. The target endpoint must enforce all
auth/authz itself (e.g. the cloud /sso-open endpoint, which re-runs
every check the POST half would have done).
Removes one full network round trip of white-screen latency from
click-to-popup on actions like sys_environment sso_as_owner.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
xuyushun441-sys
added a commit
that referenced
this pull request
Jun 14, 2026
* docs(skills): sync objectstack-* skills with 9.0→9.4 changes Audited all changes from @objectstack/types@9.0.1 to 9.4.0 and updated the six skills whose documented contracts had drifted or gained capabilities: - ui: fix matrix report example (rows down × columns across, ADR-0021 D2) + drilldown; add Action opensInNewTab/newTabUrl (#1787); App.hidden (ADR-0045); userFilters toggle deprecation - platform: correct namespace prose — manifest.namespace is enforced (ADR-0048, validateNamespacePrefix/NamespaceConflictError); split-app boot sequence; os package install/publish; cloud-connection; sys_metadata opt-in - automation: inbound webhook (api) triggers + queue prerequisite (ADR-0041); ADR-0044 send-back-for-revision (revise/back edges, maxRevisions) - api: document the /meta REST surface — ?preview=draft (#1763), ?package= (ADR-0048), /meta/doc content omission (ADR-0046) - ai: built-in data_chat assistant + visualize_data + query-only gate (ADR-0040); fix stale guardrails example keys; model-registry providers - data: seed lookup id-fallback (#1814) query/formula/i18n skills required no changes (no contract drift in range). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore: add empty changeset for docs-only skills sync Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
opensInNewTab(documents the existing renderer convention: pre-open the tab synchronously on click, popup-blocker-safe, then drive it to the handler'sredirectUrl) toActionSchemanewTabUrl: a direct new-tab URL template ({recordId}placeholder). When set together withopensInNewTab, the renderer navigates the pre-opened tab to it immediately on click — no action POST. The target endpoint must perform all auth/authz itself.Motivation
The cloud console's environment Open button felt laggy: the click paid a full POST round trip before the popup started navigating, even though
GET /sso-openre-runs every check server-side (defense in depth). This contract lets metadata declare the zero-roundtrip path. Renderer support: objectui PR (app-shell fast path); first consumer: cloudsys_environment.sso_as_owner.Test plan
pnpm --filter @objectstack/spec build✓pnpm --filter @objectstack/spec test— 240 files / 6529 tests ✓🤖 Generated with Claude Code