generated from Labyricorn/labyricorn-project-template
28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
_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.
|