Files
XZBT-NGN/.labyricorn/devlog/step-6-surface-discovery/contents.lr
T

28 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
_model: devlog-entry
---
schema_version: 1
---
title: Step 6.3: Generic Contract 5.3 Surface Discovery
---
date: 2026-09-14
---
author: cgcha
---
summary: Implemented normative Contract 5.3 Part 8 presentation-surface discovery, catalog validation, and descriptor-driven UI rendering with 88 automated tests passing.
---
tags: step6, contract-5-3, surfaces, discovery
---
source_commit: dcae56a4b639697176fbe9638e76df00e2870b32
---
body: |
This devlog entry marks the completion of Step 6.3, introducing generic presentation-surface discovery under XZBT Exhibit Contract 5.3.
Contract 5.3 introduces Part 8 presentation surfaces, allowing exhibits to declare supplementary secondary displays (such as ambient screens, observatories, or cast views) alongside their primary interaction console.
Key additions in this milestone:
- **Catalog Validation:** Added alidateSurfaceCatalog() in src/validation.js, implementing Contract 5.3 §§31.2–31.5 normative validation order (evaluating individual descriptors, discarding malformed entries, and enforcing the single primary invariant).
- **Host Integration:** src/host.js emits the xzbt: '5.3' advisory envelope on hello, tracks contractMinor, and parses advertised surfaces on initial connection and dynamic
egistry.changed notifications.
- **Generic UI Rendering:** src/ui.js dynamically renders discovered presentation surfaces with metadata badges and opening controls.
- **Test Suite:** Added 45 comprehensive automated tests covering all Part 8 malformed surface cases, lifecycle events, and Contract 5.2 backward compatibility, bringing the automated test suite to 88/88 passing tests.