spec: add OVOS-GUI-1 GUI display subsystem specification#63
Draft
JarbasAl wants to merge 2 commits into
Draft
Conversation
Formalize the GUI display subsystem that decouples voice applications from rendering technology. Applications declare what to display by naming a template from a closed, curated SYSTEM_* vocabulary and supplying its session data; interchangeable render backends (adapters) decide how. Covers: the closed template vocabulary with normative session-data keys (§3), the gui.value.set / gui.page.show wire protocol with reserved __from / __idle keys and the per-session namespace lifecycle (§4), session_id-only addressing with shared screens sharing a session_id (§5), the adapter contract — entry-point discovery, multi-modal fan-out, exception-safe non-blocking handlers, capability degradation (§6), the interaction path for media transport and confirm/select responses (§7), and conformance (§8). Raw-passthrough templates (SYSTEM_html / SYSTEM_url) are documented as discouraged escape hatches. Wire into README index, CHANGELOG, and GLOSSARY. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Add §6.9: the resting display is a property of the surface, not an application. Applications must not provide/register a home/resting screen; SYSTEM_idle only requests a return to the resting state. No subsystem-level home-screen concept, registry, or app type — a backend that wants one implements it privately.
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.
OVOS-GUI-1 — GUI Display Subsystem specification
Adds a formal, implementation-agnostic specification for the OVOS GUI display
subsystem, in the same style as the existing specs (MSG-1, SESSION-1/2, INTENT-*).
ovos-gui-1.md(OVOS-GUI-1, Draft) covers:the GUI service is a pure state-and-dispatch hub.
SYSTEM_*templates (consistencyacross a varying display surface), full catalogue of all 22 templates with normative
session-data keys/types; raw-passthrough (
SYSTEM_html/SYSTEM_url) marked discouraged.gui.value.set/gui.page.show(page_names,index,__from,__idle), reserved-key stripping, namespace lifecycle (builds on MSG-1).session_idonly; shared/multi-room screens share asession_id;no separate location dimension (builds on SESSION-1/2).
confirm/selectresponses carrying theoriginating
session_id.Also wires OVOS-GUI-1 into
README.md(index),CHANGELOG.md, andGLOSSARY.md.Normative text is implementation-agnostic; code/toolkit names appear only in the
non-normative example.