feat: declare the dashboard and templates sub-pages in the interface manifest - #450
Merged
Conversation
Contributor
|
👋 This PR needs a couple of things fixed before OpenHands can review it:
Push an update once this is addressed and this check re-runs automatically. This is an automated check - no AI was used to generate this comment. |
Contributor
|
🚀 Released in v0.16.0. |
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.
Why
Brings the Automate Dashboard and Templates sub-pages (from the closed agent-canvas#1816) back as manifest-driven surfaces. This repo is the source of truth for automation-specific UI, so the page definitions — sub-page navigation, overview tiles, filters, sort, insight captions, and copy — must live here; Agent Canvas only gains generic primitives that render whatever an admitted manifest declares.
interface.jsonv1.0 had no vocabulary for any of this (the schema's closed key set deliberately rejected it), so this is the contract extension.Summary
automations/interface.json: declareroutes.templates,navigation.subPages(Dashboard / Templates with icon slugs),pages.list.{overview,filters,sort,insights}reproducing the agent-canvas#1816 product surface (4 tiles, status/trigger filters with an always-offered "all", 3 sorts defaulting to last-run, health and run-stat captions), andpages.templates; the list page identity becomes "Dashboard".automations/interface.schema.json: matching closed$defs(iconSlug,subPageNavItem,overview/overviewTilewith per-metric{{active}}placeholder enforcement andzeroDetail,statusFilter/triggerFilterrequiring thealloption,sort,insights,templatesPage);additionalProperties: falseeverywhere, all new keys required.automations/index.d.tsmirrors the new shapes; the README's interface-manifest section documents the keys and the host-derivation rules; four new schema-reject cases pin the new trust rules (unknown sub-page, unknown icon, unexposed placeholder, missingalloption).Issue Number
Resolves OpenHands/OpenHands#15466
How to Test
uv run --group test pytest— 516 passed (the interface suite grows from 12 to 16 cases; every pre-existing case is untouched, including the top-level unknown-key rejection).node --input-type=module -e "import('./automations/index.js').then(m => console.log(m.AUTOMATION_INTERFACE.navigation.subPages, m.AUTOMATION_INTERFACE.pages.templates))"— prints the declared sub-pages and templates identity.npm packthis branch and install the tarball into the Agent Canvas branch for OSS-5187 — its admission validator accepts the manifest whole (valid: true) and the Dashboard/Templates sub-pages render; with the pinned registry0.12.0(noAUTOMATION_INTERFACE) Canvas stays byte-identical to today.Video/Screenshots
OSS-5187.mov