Skip to content

v1.3.0

Choose a tag to compare

@inureyes inureyes released this 02 Mar 05:25

Backend.AI GO v1.3.0 — Plugin system, Companion AI, mDNS auto-discovery, new languages, and 30+ bug fixes.

Backend.AI GO v1.3.0

95 commits since v1.2.2.

New Features

  • Plugin system with SDK, permission-gated API surface, JS module loader with error isolation, UI slot system, management REST API, IPC commands, filesystem manager, manifest schema, settings persistence, zip installation, plugin store connection, and auto-registration
  • Companion AI with floating widget UI, chat bubble with streaming responses, persona presets, and Memory Bank integration (,,,)
  • Serper (Google Search) web search provider with abstraction layer
  • mDNS auto-discovery with stale node detection, direct node registration, and capability advertisement
  • Audio transcription built-in tool for speech-to-text
  • Built-in performance monitoring panel
  • Spanish (es) language support
  • Traditional Chinese (zh-TW) language support
  • Simplified Chinese (zh-CN) language support
  • Animated SVG splash screen during initial app loading
  • Windows AF_UNIX socket support via socket2
  • Keyboard shortcuts displayed with separate styled key badges
  • Expose Add Widget and Reset buttons directly without Customize mode
  • API key warning in ToolSelector when web_search is enabled
  • Dependency version update script and Claude command
  • Triage and resolve commands for user feedback workflow

Improvements

  • Consolidate custom dropdown menus to shared ContextMenu component
  • Hide plugins menu in production, show only in dev mode
  • Reorganize sidebar menu layout
  • Migrate plugin components to common UI primitives
  • Rename Chinese locale codes from script subtags to region-based codes
  • Improve UX feedback during slow prefill with memory context
  • Update Continuum Router version to v1.1.0
  • Refresh What's New content for changes since v1.2.2
  • Translate Cowork menu name to Korean
  • Translate Bliss theme name to Korean

Bug Fixes

  • Resolve TypeScript type errors and ESLint violations across test files
  • Repair 238 failing tests across 23 frontend files and 16 Rust doc tests
  • Show user-defined provider name instead of OPENAI for custom providers
  • Resolve composite model ID before title generation API call
  • Send clear flags when selecting "None" in default model settings
  • Auto-fetch plugins on app startup and re-render after async load
  • Refresh relative timestamps periodically in useFormattedTime hook
  • Replace AI-generated benchmark icons with provided SVG design
  • Rename status messages to reflect response generation phases
  • Add retry logic and path validation for engine update on Windows
  • Remove hardcoded FPS sparkline maxValue to support high-refresh-rate monitors
  • Escape Jinja2 comment syntax in troubleshooting heading anchors
  • Replace bash build-plugins script with cross-platform Node.js version
  • Add HTTP fallback when socket streaming fails on Windows
  • Exclude llama.cpp build artifacts from Vite dependency scan
  • Use hover overlay for Draw sidebar action buttons
  • Correct benchmark page header and title/subtitle text
  • Resolve chat title generation failures and add recovery
  • Convert custom provider env var names to uppercase with underscores
  • Add plugin build step to dev mode beforeDevCommand
  • Preserve other engines' update badges during single engine update
  • Complete Windows AF_UNIX socket support across all socket stubs
  • Add missing enable_performance_monitor field to Rust backend
  • Limit supervisor decisions timeline and add missing node i18n keys
  • Restart router when toggling external access to apply bind host change
  • Correct ServiceRemoved event matching in mDNS discovery
  • Filter out self-node from mDNS discovery results
  • Use Button icon prop instead of SVG children for correct flex layout
  • Correct API server toggle showing OFF on Windows when TCP is active

CI/CD Improvements

  • Auto-trigger publish workflows after successful builds

Technical Details

  • Plugin architecture with isolated JS module loading, permission-gated SDK, and filesystem storage backend
  • Companion AI system with persona management, memory persistence, and streaming chat interface
  • mDNS service discovery with automatic capability advertisement and stale node cleanup
  • Windows AF_UNIX socket support using socket2 crate with TCP fallback

Dependencies

  • Continuum Router updated to v1.1.0

Breaking Changes

None

Known Issues

None

What's Changed

  • feat: define plugin manifest schema and shared type definitions by @inureyes
  • feat: implement plugin filesystem manager and storage backend by @inureyes
  • feat: add audio_transcribe built-in tool for speech-to-text by @inureyes
  • feat(ci): auto-trigger publish workflows after successful builds by @inureyes
  • feat: implement plugin Tauri IPC commands by @inureyes
  • fix: correct API server toggle showing OFF on Windows when TCP is active by @inureyes
  • feat: add plugin management REST API endpoints by @inureyes
  • fix: use Button icon prop instead of SVG children for correct flex layout by @inureyes
  • feat: connect plugin store to real Tauri backend by @inureyes
  • fix: filter out self-node from mDNS discovery results by @inureyes
  • fix: correct ServiceRemoved event matching in mDNS discovery by @inureyes
  • feat: add stale node detection and periodic cleanup for discovered nodes by @inureyes
  • fix: restart router when toggling external access to apply bind host change by @inureyes
  • feat: advertise real engine and model capabilities via mDNS by @inureyes
  • feat: implement plugin JS module loader with error isolation by @inureyes
  • feat: implement Plugin SDK with permission-gated API surface by @inureyes
  • feat: implement direct node registration from discovered nodes by @inureyes
  • feat: implement UI slot system for plugin rendering by @inureyes
  • feat: display keyboard shortcuts with separate styled key badges by @inureyes
  • test: add comprehensive tests for mDNS auto-discovery system by @inureyes
  • docs: update auto-discovery documentation with mDNS details by @inureyes
  • i18n: translate Bliss theme name to Korean (푸르름) by @inureyes
  • feat: implement plugin installation from zip and improve uninstall flow by @inureyes
  • i18n: translate Cowork menu name to Korean (협업) by @inureyes
  • docs: add Supervisor Agent manual by @inureyes
  • feat: add built-in performance monitoring panel by @inureyes
  • feat: implement plugin settings persistence and runtime configuration by @inureyes
  • fix: limit supervisor decisions timeline and add missing node i18n keys by @inureyes
  • feat: add Windows AF_UNIX socket support via socket2 by @inureyes
  • fix: add missing enable_performance_monitor field to Rust backend by @inureyes
  • feat: add Serper (Google Search) web search provider with abstraction layer by @inureyes
  • feat: add companion plugin floating widget UI by @inureyes
  • feat: add companion chat bubble interface with streaming responses by @inureyes
  • feat: add companion persona system with presets by @inureyes
  • feat: add companion memory integration via Memory Bank by @inureyes
  • fix: preserve other engines' update badges during single engine update by @inureyes
  • refactor: apply code formatting and fix lint errors by @inureyes
  • feat: add built-in plugin build pipeline and auto-registration by @inureyes
  • feat: improve UX feedback during slow prefill with memory context by @inureyes
  • feat: add Traditional Chinese (zh-Hant) language support by @inureyes
  • fix: add plugin build step to dev mode beforeDevCommand by @inureyes
  • feat: add Simplified Chinese (zh-Hans) language support by @inureyes
  • feat: add Spanish (es) language support by @inureyes
  • fix: convert custom provider env var names to uppercase with underscores by @inureyes
  • fix: resolve chat title generation failures and add recovery by @inureyes
  • refactor: rename Chinese locale codes from script subtags to region-based codes by @inureyes
  • docs: enhance FAQ and Troubleshooting with macOS Gatekeeper guidance by @inureyes
  • feat: add animated SVG splash screen during initial app loading by @inureyes
  • fix: correct benchmark page header and title/subtitle text by @inureyes
  • fix: exclude llama.cpp build artifacts from Vite dependency scan by @inureyes
  • fix: use hover overlay for Draw sidebar action buttons by @inureyes
  • feat: add triage and resolve commands for user feedback workflow by @inureyes
  • chore: update Continuum Router version to v1.1.0 by @inureyes
  • fix: add HTTP fallback when socket streaming fails on Windows by @inureyes
  • feat: add dependency version update script and Claude command by @inureyes
  • refactor: migrate plugin components to common UI primitives by @inureyes
  • update: reorganize sidebar menu layout by @inureyes
  • fix: replace bash build-plugins script with cross-platform Node.js version by @inureyes
  • fix: escape Jinja2 comment syntax in troubleshooting heading anchors by @inureyes
  • fix: remove hardcoded FPS sparkline maxValue for high-refresh-rate monitors by @inureyes
  • fix: add retry logic and path validation for engine update on Windows by @inureyes
  • fix: rename status messages to reflect response generation phases by @inureyes
  • update: refresh What's New content for changes since v1.2.2 by @inureyes
  • docs: add OS-specific installation troubleshooting FAQ entries by @inureyes
  • feat: show API key warning in ToolSelector when web_search is enabled by @inureyes
  • update: hide plugins menu in production, show only in dev mode by @inureyes
  • fix: replace AI-generated benchmark icons with provided SVG design by @inureyes
  • feat: expose Add Widget and Reset buttons directly without Customize mode by @inureyes
  • fix: refresh relative timestamps periodically in useFormattedTime hook by @inureyes
  • fix: auto-fetch plugins on app startup and re-render after async load by @inureyes
  • fix: send clear flags when selecting "None" in default model settings by @inureyes
  • fix: resolve composite model ID before title generation API call by @inureyes
  • fix: show user-defined provider name instead of OPENAI for custom providers by @inureyes
  • fix: repair 238 failing tests across 23 frontend files and 16 Rust doc tests by @inureyes
  • fix: resolve TypeScript type errors and ESLint violations across test files by @inureyes
  • refactor: consolidate custom dropdown menus to shared ContextMenu component by @inureyes