Add a floating response panel that allows the agent to display messages
directly in the UI instead of through the terminal. Includes support for
info, success, warning, and error message types with auto-dismiss.
- Slim, transparent Aero Glass design with backdrop blur
- Draggable window from titlebar
- Resizable from corner handle
- Ctrl+E toggle to open at cursor position
- Remove minimize functionality (close returns to sidebar button)
- Add PWA dev-dist files and lock files
- Configure VitePWA with manifest, icons and service worker
- Add PwaInstallBanner component for install prompt in header
- Enable CORS for z590.interno.com access
- Use dynamic hostname for terminal WebSocket connection
- Add generate-icons script with sharp for PWA icons
- Fix theme-color to match header background
- Add ToolsPage for managing MCP tools activation and persistence
- Centralize all tool handlers in services/tools/handlers/
- toolRegistry.ts is now the single source of truth for tool state
- Add tools store for pinned tools (persisted in localStorage)
- Tools can be pinned to stay active across page navigation
- Remove old individual tool files, replaced by centralized handlers
- Add cell click-to-copy with visual feedback
- Add text filter to search across all columns
- Add column visibility toggle (click schema columns to show/hide)
- Add row selection with checkboxes
- Copy All respects visible columns and selected rows
- Auto-reset selections when changing table/page/query
Split monolithic index.ts (~1400 lines) into modular structure:
- config.ts: Server configuration and constants
- db/: Database initialization, migrations, and seeds
- routes/: API handlers by domain (themes, canvas, components, etc.)
- services/: Terminal WebSocket server
- utils/: CORS helpers
Entry point now only coordinates initialization.
- Add token API endpoint to server for storing/retrieving pending tokens
- Add token polling in frontend to auto-detect and connect with tokens
- Add xterm dependencies for terminal functionality
- Add terminal page support in toolRegistry
- Server keeps PTY sessions alive on client disconnect
- Output buffer replays history on reconnect
- FloatingTerminal component accessible from any page
- Responsive: floating window on desktop, fullscreen on mobile
- macOS-style header with traffic light buttons
Separates dynamic canvas from homepage to avoid conflicts with default canvas.
- Changed route from /dynamic-canvas to /dynamic/canvas
- Added toolbar button for quick access to dynamic canvas
- Updated navigate_to tool with dynamic-canvas option
- Add /source page with file explorer and code viewer
- Connect to Gitea API for repository browsing
- Implement MCP tools: get_repo_info, list_repo_files, read_repo_file, search_repo_code
- Default to nucleo000/agent-ui repository
- Support branch switching and file search
- Add project_canvas and canvas_components tables for persistent canvas storage
- Add ProjectCanvas store with full CRUD operations
- Add ProjectCanvasPage for rendering saved canvas with components
- Add ProjectsPage for managing canvas list (create, clone, delete)
- Add HomePage that loads default canvas or falls back to dynamic canvas
- Add toolbar support for displaying canvas as pages with custom icons
- Add component usage validation to prevent deletion of components in use
- Add MCP tools for canvas management (list, create, update, delete, clone)
- Update router with /canvas/:id and /projects routes
- Update Toolbar to show dynamic canvas pages from database
Backend:
- Add PUT /api/themes/:id endpoint for updating existing themes
Store:
- Add updateTheme method to theme store
MCP:
- Add update_theme tool to modify name, description, or save current variables
UI:
- Add edit button to ThemeListItem (custom themes only)
- Add edit modal with name and description fields
- Support editing from both desktop sidebar and mobile dropdown
- list_themes: List all available themes (system + custom)
- switch_theme: Change active theme by name or ID
- set_default_theme: Set a theme as the default startup theme
- delete_theme: Remove custom themes (protects system themes)
- reset_theme: Discard unsaved changes
- export_theme: Export theme as JSON for backup/sharing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add save_theme tool to save themes permanently to database
- Update set_theme_variable to track changes in store's previewTheme
- Enables full theme creation workflow via MCP tools
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ThemesPage: Custom dropdown with theme cards for mobile
- ThemesPage: Collapsible variables section
- ThemePreview: Responsive grid and compact layout
- VariableEditor: Separate radius preview with border-radius
- ColorPicker: Mobile-friendly dropdown positioning
- README: Complete theme system documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Backend: themes table and API endpoints (CRUD, export, design-tokens)
- Theme store with preview, apply, and persistence
- ThemesPage with collapsible variables editor and live preview
- Components: ColorPicker (HSL), VariableEditor, ThemePreview, ThemeListItem
- Integration: $theme helper for dynamic components, get_design_tokens MCP tool
- Navigation: /themes route with palette icon in toolbar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add dynamicComponents.ts service (~300 lines)
- CSS scoping with high specificity
- Async setup support with Suspense
- Event bus for inter-component communication
- Shared Pinia store with main app
- No app overhead (uses render + createVNode)
- Add MCP tools for Vue components
- render_vue_component
- save_vue_component
- load_vue_component
- list_vue_components
- delete_vue_component
- Add SQLite table for component persistence
- Add TypeScript declarations for webmcp
- Configure Vite for runtime template compilation
- Add comprehensive README with documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>