Skip to content

feat: declare the dashboard and templates sub-pages in the interface manifest - #450

Merged
hieptl merged 2 commits into
mainfrom
hieptl/oss-9051
Aug 4, 2026
Merged

feat: declare the dashboard and templates sub-pages in the interface manifest#450
hieptl merged 2 commits into
mainfrom
hieptl/oss-9051

Conversation

@hieptl

@hieptl hieptl commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
  • A human has tested these changes.

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.json v1.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: declare routes.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), and pages.templates; the list page identity becomes "Dashboard".
  • automations/interface.schema.json: matching closed $defs (iconSlug, subPageNavItem, overview/overviewTile with per-metric {{active}} placeholder enforcement and zeroDetail, statusFilter/triggerFilter requiring the all option, sort, insights, templatesPage); additionalProperties: false everywhere, all new keys required.
  • automations/index.d.ts mirrors 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, missing all option).

Issue Number

Resolves OpenHands/OpenHands#15466

How to Test

  1. 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).
  2. Export check: 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.
  3. Cross-repo: npm pack this 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 registry 0.12.0 (no AUTOMATION_INTERFACE) Canvas stays byte-identical to today.

Video/Screenshots

OSS-5187.mov

@hieptl hieptl self-assigned this Aug 4, 2026
@all-hands-bot

Copy link
Copy Markdown
Contributor

👋 This PR needs a couple of things fixed before OpenHands can review it:

  • the PR description's HUMAN: section needs at least 20 characters describing what you tested, not just the template placeholder

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.

@github-actions github-actions Bot added the type: feat A new feature label Aug 4, 2026

@tofarr tofarr left a comment

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.

🍰

@hieptl
hieptl merged commit b6351ab into main Aug 4, 2026
7 checks passed
@hieptl
hieptl deleted the hieptl/oss-9051 branch August 4, 2026 18:30
@openhands-release-bot openhands-release-bot Bot added the released: v0.16.0 Shipped in v0.16.0 label Aug 4, 2026
@openhands-release-bot

Copy link
Copy Markdown
Contributor

🚀 Released in v0.16.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released: v0.16.0 Shipped in v0.16.0 type: feat A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Add sub-pages to Automate

3 participants