Skill Assets and Icons Roadmap
Skill UI resources must not require a browser rebuild. The current client still registers a fixed Ionicons set at compile time, so missing icon names can produce runtime warnings and empty icons. The immediate rule is to register commonly used built-in Ionicons in the client, but the target model is resource publication by skills.
Target
Skills should be able to publish UI assets through the assistant runtime:
- icons and small SVG assets
- thumbnails and preview images
- panel templates and metadata
- localized labels and descriptions
- optional external asset URLs for larger files
The browser should resolve these resources through a stable manifest, cache them locally, and fall back gracefully when a resource is unavailable.
Runtime Shape
Recommended projection:
skill_assets:
skill_id: skill:weather
version: 1
icons:
weather.current:
kind: svg
url: /api/node/skills/weather/assets/icons/current.svg
cache_key: sha256:...
images:
preview:
kind: image
url: /api/node/skills/weather/assets/preview.webp
cache_key: sha256:...
The client should cache by cache_key and invalidate when the manifest version or hash changes.
Phases
- Register missing built-in Ionicons and validate icon names during projection materialization.
- Add a skill asset manifest endpoint served by the hub/member runtime.
- Add client-side asset resolution and caching for skill-owned resources.
- Allow skills to publish external storage URLs for large assets, while keeping the subnet-hosted manifest as the source of truth.
- Add diagnostics for missing assets so phone layouts still provide usable controls and modal close actions.