Skip to content

v3.1.0 - Public Beta 2

Pre-release
Pre-release

Choose a tag to compare

@luc-github luc-github released this 24 Apr 05:56

This release enhances web connectivity with secure protocol support, improves resource management through compression, and adds flexibility for language and theme customization.

📋 Table of Contents

🚀 New Features

HTTPS and WSS Protocol Support

Added automatic detection and support for secure HTTPS and WebSocket Secure (WSS) connections when available. The webui now seamlessly switches to encrypted communication protocols for enhanced security.

Language and Theme Pack Manifests

Implemented manifest system for language packs and theme packs, enabling better organization and management of multi-language support and custom UI themes.

Configurable Content Visibility

Added ability to select visibility on startup for each extra content item individually, providing more granular control over the interface layout on first load.

Brotli Compression Support

Integrated brotli compression support into the build toolchain for more efficient package compression, reducing the size of web assets delivered to the pendant.

Theme Support for Custom Fonts and JavaScript

Themes can now include custom fonts and JavaScript, allowing much richer visual and behavioral customization. All theme assets and exports are made available to extensions, so extension developers can rely on the active theme's fonts, styles, and scripts without bundling them separately.

🐛 Bug Fixes

  • WebSocket Connection Without Port Specification: Fixed an issue where WebSocket connections would fail when no explicit port was provided. The pendant now correctly handles default port assignment.

💪 Improvements

  • Package Size Calculation: Updated size calculation logic to account for brotli-compressed packages, providing more accurate estimates of web asset sizes during the build process.
  • CI/CD Pipeline Updates: Updated build CI workflow to support the new compression and manifest systems.

📝 Other Changes

  • Documentation Cleanup: Removed working documentation files as part of repository maintenance.
  • Package Rebuild: Rebuilt packages to include the latest secure protocol support.
  • Theme Documentation (docs/themes.md): Complete documentation covering the new bundle format and all theme capabilities, with application examples:
    • Example 1 — Custom font (offline base64, online via @import, multi-format self-hosted fallback)
    • Example 2 — Variables and JS coupled: dynamic accent colour (declarative variables, runtime JS, CDN animation library via scripts)
    • Example 3 — Replace the ESP3D logo (CSS-only colour override, full SVG replacement via JS with MutationObserver)
    • CSS-only legacy theme and full bundle theme reference examples
  • Language Pack Documentation (docs/languagepack.md): Documentation updated to cover the new _manifest fields, including custom font loading for scripts requiring specific typefaces (Arabic, CJK, etc.) and RTL reading direction mode (rtl: true sets dir="rtl" on <html> and propagates into extension iframes automatically), with application examples:
    • Example 1 — RTL language (Arabic) with online font
    • Example 2 — CJK language (Japanese) with offline font
    • Example 3 — Standard LTR language (no font needed)
  • Extension Developer Documentation (docs/extensions.md): New complete reference guide for creating extensions, covering: file format and naming, manifest fields (target, icons, version filtering), postMessage communication, sending GCode/ESP commands, HTTP requests (query/upload/download) through the WebUI, UI helpers (toast, sound, modal), WebUI information (capabilities, translation, icon), persistent settings, inter-extension communication, and using WebUI CSS components inside an extension.

Generated by Release Agent on 2026-04-24 12:01