- Add height: 100vh !important to maximized window-element
- Add width: 100vw !important to maximized window-element
- Window now fills entire screen (1920x1080) when maximized
- Recovers 28px of vertical space previously lost to minibar offset
- Change window-element top from 28px to 0 when maximized
- Minibar is not present, so window should fill screen from top
- Removes blank space at top when window is maximized
- Add .toolbar to hide rule for maximized windows
- Toolbar was taking up 50px of space at the top even when maximized
- This removes the blank space before the window title
- Window title now shows current window name followed by 'General Bots'
- Title format: '{Window Name} - General Bots' (e.g., 'Chat - General Bots')
- Resets to 'General Bots Desktop' when all windows are closed
- Updated default title from 'BUILD V3 - Web Desktop Environment' to 'General Bots Desktop'
- Added cache-busting parameter to window-manager.js to ensure browser reloads updated code
- Update minibar brand title to use product name from .product configuration
- Replace hardcoded 'Agent Farm' text with 'General Bots'
- Improves brand consistency across the UI
- Fixed chat footer background to use var(--surface) CSS variable instead of hardcoded colors, ensuring proper theme adaptation
- Fixed theme dropdown background by changing from var(--input-bg) to var(--surface) in theme-sentient.css
- Added CSS override rules in desktop.css to ensure dropdown uses correct background
- Added JavaScript fix in theme-manager.js to automatically apply correct dropdown background on theme load
This resolves issues where theme dropdown and chat footer had black backgrounds in light themes.
- Fix window title hidden behind minibar when maximized
- Adjust window top position to account for 28px minibar height
- Adjust window height calculation to account for minibar
- Set maximized window z-index to 9998 (below minibar's 9999)
- Remove transparency from chat window
- Change window-header background from rgba to solid white
- Remove backdrop-filter blur effect
- Add explicit opacity rules to prevent transparency
- Hide background content when window is maximized
- Add 'window-maximized' class to body when window is maximized
- Add CSS rules to hide sidebar, desktop icons, and other background elements
- Hide initial suggestion buttons when dynamic suggestions displayed
- Add 'has-suggestions' class to footer when suggestions are rendered
- Add CSS rule to hide .quick-action-chip buttons when footer has 'has-suggestions' class
- Update CSS version parameter to force cache reload
The ui_server proxies WebSocket connections. It was accepting the client's WebSocket connection (ws.onopen triggered on the client), but if it couldn't connect to the backend (or if the backend disconnected), it would drop the client connection right away (ws.onclose triggered).
The issue was that reconnectAttempts was being reset to 0 inside the ws.onopen handler. Because the connection was briefly succeeding before failing, the reconnectAttempts counter was resetting to 0 on every attempt, completely circumventing the exponential backoff mechanism and causing a tight reconnection loop.
Modified the WebSocket logic across all relevant UI components to delay resetting reconnectAttempts = 0. Instead of resetting immediately upon the TCP socket opening, it now safely waits until a valid JSON payload {"type": "connected"} is successfully received from the backend.