feat(host): wire techdemo host capability flow

Route browser/PWA share and native-shell haptic host results through techdemo app code before returning normal hemx effects; serve the tiny browser host adapter as an app asset.

req: host/001

req: host/002

req: host/004

req: host/005

req: examples/001
This commit is contained in:
slhx agent
2026-06-11 19:43:50 +02:00
parent 2cc6c85e37
commit 3807306158
7 changed files with 243 additions and 2 deletions
@@ -5,6 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>hemx Techdemo</title>
<script +src="self.runtime_src" defer></script>
<script src="/hemx-browser-host.js" defer></script>
<script src="/island.js" defer></script>
<link rel="stylesheet" href="/app.css">
<link rel="stylesheet" href="/control_center.css">
@@ -32,6 +32,7 @@
<button type="button" data-hemx-handle="simulate_push">Simulate server push</button>
<button type="button" data-hemx-handle="reset_demo">Reset demo</button>
</div>
<div data-hemx-slot="host_panel">{+= self.host =+}</div>
<p data-hemx-slot="notice" class="notice">Every control posts through a generated handle and receives typed updates.</p>
</aside>
@@ -0,0 +1,10 @@
<div class="host-panel">
<p><strong>Typed host boundary</strong><br>{+ self.status +}</p>
<div class="quick-actions">
<button type="button" data-hemx-handle="request_browser_share">Request browser/PWA share</button>
<button type="button" data-hemx-handle="record_browser_share" name="completed" value="true">Record browser share result</button>
<button type="button" data-hemx-handle="request_native_haptic">Request native haptic</button>
<button type="button" data-hemx-handle="record_native_haptic_ack">Record native haptic ack</button>
</div>
<code>{+ self.boundary +}</code>
</div>