Commit graph

144 commits

Author SHA1 Message Date
afb13cb397 Clean up mock Vibe UI 2026-02-26 12:40:44 -03:00
7c1deca8ae fix: resolve infinite WebSocket reconnection loop
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.
2026-02-25 10:15:47 -03:00
bfc8f4da77 fix: improve WebSocket reconnection logic and add debugging
- Add connection timeout (5s) to detect silent failures
- Log WebSocket close events with code and reason
- Prevent infinite reconnection loops after max attempts
- Clear connection timeout when WebSocket opens or closes
- Show user-friendly error after max reconnection attempts

This helps diagnose why WebSocket connections are failing
and prevents the infinite reconnection loop issue.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 22:11:26 -03:00
8bfe97e92e fix: allow anonymous chat connections when auth fails
- Modified chat auth failure handler to proceed with WebSocket connection
- Generates anonymous user_id and session_id using crypto.randomUUID()
- WebSocket handler already supports anonymous connections (creates UUIDs if not provided)
- Removes error notification and retry loop that prevented chat from working

This allows chat to work publicly without requiring authentication,
which is the expected behavior for public bots.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 21:47:09 -03:00
e89e87d2b2 fix: use full app paths for desktop icons (not partials)
- Reverted chat path from /suite/partials/chat.html to /suite/chat/chat.html (full app)
- Kept tasks path as /suite/tasks/tasks.html (full app, already correct)
- Kept vibe path as /suite/partials/vibe.html (no dedicated vibe directory exists yet)
- All other apps already using correct full app paths

The partials directory should only contain fragments for embedding in other pages,
not standalone apps. Desktop icons must load full apps into windows.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 21:20:58 -03:00
76e8df36ee fix: correct desktop icon app paths for suite apps
- Fixed tasks.html: replaced incomplete file with content from partials/tasks.html
- Fixed vibe icon: renamed from "Mantis (Vibe)" to "Vibe" and updated path to /suite/partials/vibe.html
- Fixed chat icon: updated path from /suite/chat/chat.html to /suite/partials/chat.html
- Fixed tasks icon: updated path from /suite/tasks/tasks.html to /suite/partials/tasks.html
- Verified all other app paths (terminal, drive, editor, browser) are correct

All desktop icons now point to the correct app fragment files for the Window Manager.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-24 20:32:46 -03:00
09bb9ee55d fix(ui): resolve Cannot read properties of null (reading 'appendChild') in window-manager.js
- Lazy load workspace and taskbar containers to prevent crashes when WindowManager is instantiated in the head before the body DOM is ready
2026-02-24 19:49:04 -03:00
6d07aa4bdd fix(ui): resolve 404 asset paths and replace missing icons with SVGs
- Fixed 404 errors on desktop shell assets by explicitly routing to /suite/ absolute paths
- Replaced missing FontAwesome icons in window-manager.js with inline SVGs since CDNs are banned
2026-02-24 19:20:41 -03:00
2f53b65aeb feat(ui): implement Window Manager desktop shell based on BUILD V3 design
- Built custom vanilla JS Window Manager (window-manager.js)
- Replaced default.gbui with new desktop.html featuring Windows 95 spatial metaphor + Tailwind aesthetics
- Redesigned icons, taskbar, sidebar, and workspace to exactly match the target PDF layout
- Migrated Chat, Tasks, and Terminal into pure HTMX fragments to load seamlessly inside floating panels
- Added missing CSS rules to handle window rendering without CDNs
2026-02-24 19:02:48 -03:00
6afeeb311f chore: update htmx and suite_app javascript
All checks were successful
BotUI CI / build (push) Successful in 2m51s
2026-02-22 15:56:05 -03:00
756da22dd5 fix(ui): robust contrast calculation for named colors and variables
All checks were successful
BotUI CI / build (push) Successful in 3m22s
2026-02-20 20:37:47 -03:00
093f417ff7 fix(ui): dynamic suggestion text and borders contrast, cache busting
Some checks failed
BotUI CI / build (push) Failing after 5s
2026-02-20 17:43:28 -03:00
84684c6687 fix(ui): dynamic text contrast for chat balloons and suggestion chips 2026-02-20 17:08:41 -03:00
138ad31a32 update: sync for alm 2026-02-20 12:59:02 -03:00
4987a15858 fix: Update chat UI theme management
Some checks failed
BotUI CI / build (push) Failing after 49m45s
2026-02-20 01:14:14 +00:00
785187868e fix(ui): prevent empty chat bubbles when message content is empty 2026-02-18 21:36:03 +00:00
68bb516ec2 fix(ui): disable dynamic theme dropdown injection entirely 2026-02-18 21:19:28 +00:00
ea8003e213 fix(ui): remove theme selector from suite layout and projector 2026-02-18 20:52:11 +00:00
a3747a794f fix(ui): remove floating menu button from minimal chat UI 2026-02-18 20:41:58 +00:00
e5796fa64c fix: remove theme selector button from minimal chat UI
- Non-logged users no longer see the theme toggle (⚙/🌙/☀️) button
- Theme still auto-detects based on system preference (light/dark)
- Logged-in users have a separate theme menu with preview in the suite
2026-02-18 20:31:50 +00:00
a8bff4e1a7 fix: Send tool display text instead of internal ID when clicking tools
All checks were successful
BotUI CI / build (push) Successful in 5m42s
Fixed issue where clicking a tool button sent the internal ID (e.g., "03-missa")
instead of the display text (e.g., " Agendar Missa") to the chat.

The bug was in chat.html where invoke_tool actions were sending action.tool
(the internal ID) instead of sugg.text (the user-friendly display text).

Now tool buttons work correctly on the first click without sending internal IDs.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16 00:04:37 +00:00
f0aba607e9 feat: Use typewriter theme for cristo and make suggestion buttons smaller
All checks were successful
BotUI CI / build (push) Successful in 4m31s
- Change cristo bot default theme from mellowgold to typewriter
- Reduce suggestion button size: padding 6px 12px (was 10px 18px)
- Reduce font size to 12px (was 14px)
- Reduce min-height to 30px (was 40px)
- Reduce border-radius to 20px (was 24px)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 23:48:40 +00:00
9b417bf4f2 fix: Remove body data-theme attribute to prevent CSS override
Some checks failed
BotUI CI / build (push) Has been cancelled
This fixes the issue where theme changes required a page refresh to apply
to the chat client area. The body element's data-theme attribute was
applying base.css theme rules that overrode the inline styles set by the
theme manager.

Changes:
- Add data-theme="sentient" to html element in base.html
- Remove body's data-theme attribute when loading themes in theme-manager.js
- This prevents base.css [data-theme="*"] selectors from overriding inline styles

Now both header and body background update immediately when switching themes.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 23:19:16 +00:00
8bb8f9d96a fix: Hide search bar and Drive/Tasks nav when logged out, improve theme switching
- Hide omnibox search bar when user is not logged in
- Hide Drive, Tasks, CRM, and Calendar navigation items when logged out
- Update theme manager to use correct CSS path (/suite/public/themes/)
- Improve theme switching to update all color variables including --color1/--color2
- Fix bot config color override logic to respect user's theme selection
- Add disconnect notification flag to prevent duplicate notifications

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 21:53:50 +00:00
ccee337522 chore: Bump asset versions for cache invalidation
Update JS asset version from 20260207 to 20260215 to force
browser cache reload after theme/logo fixes.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 21:34:59 +00:00
a29255c848 fix: Update theme selector to change chat colors and add login page logo
- Fix theme CSS path from /public/themes/ to /suite/public/themes/
- When user selects theme, update chat color variables to match
- Only apply bot config colors if user hasn't selected custom theme
- Add bot logo support to login page
- Add CSS styling for login logo image

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-15 21:33:18 +00:00
4f654dd95d fix(i18n): Invalidate cache to fix placeholder translations
All checks were successful
BotUI CI / build (push) Successful in 2m55s
- Increment CACHE_VERSION from v1 to v2
- Forces all users to fetch fresh translations from API
- Fixes issue where old cache with placeholders was overriding correct HTML
- Browser cache had stale translations from before i18n embed fix

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 20:05:28 +00:00
fb66708cdc Debug: Add warning for missing translation keys
All checks were successful
BotUI CI / build (push) Successful in 4m13s
2026-02-14 12:25:53 +00:00
be802201fd feat(i18n): Add cache versioning to prevent stale translations
All checks were successful
BotUI CI / build (push) Successful in 3m45s
- Add CACHE_VERSION constant (v1)
- Include version in cache key to auto-invalidate old caches
- Update clearCache to handle versioned keys
- Add comment explaining when to increment version
2026-02-14 12:09:26 +00:00
4164b75c89 fix(i18n): Add comprehensive cache and fetch logging
All checks were successful
BotUI CI / build (push) Successful in 4m13s
2026-02-14 12:04:33 +00:00
2bb7959666 fix(i18n): Add logging to debug translation loading
All checks were successful
BotUI CI / build (push) Successful in 5m12s
2026-02-14 11:54:08 +00:00
b68fc0aa85 Update chat UI
All checks were successful
BotUI CI / build (push) Successful in 4m42s
2026-02-14 10:13:40 +00:00
161012c6a6 Update submodule changes
Some checks failed
BotUI CI / build (push) Failing after 18m37s
2026-02-13 22:31:49 +00:00
af78f31565 Remove chat header and fix theming from config.csv
Some checks failed
BotUI CI / build (push) Has been cancelled
- Remove chat header (logo and title) from chat window since logo
  will be displayed in top bar from config.csv
- Update CSS to use --chat-color1 and --chat-color2 for all themed elements
- Remove hardcoded theme overrides that interfered with config colors
- Fix text contrast: bot messages now use color2 background with black text
- Update suggestion buttons to use theme colors from config.csv
- Clean up JavaScript to remove references to deleted header elements

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 14:07:23 +00:00
a8bc5530b0 Add config-colors.css and update UI components
- Add config-colors.css for dynamic color theming
- Update base.html, chat components for better UX
- Improve theme manager and HTMX app integration
2026-02-10 13:54:16 +00:00
123787378f Update suite_app.js for tool calling fixes 2026-02-09 15:12:19 +00:00
Claude Sonnet 4.5
1bf9510c7d WIP: Various UI updates from previous session
- Update UI server module
- Update suite index and JavaScript files
- Add public directory

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 12:21:11 +00:00
Claude Sonnet 4.5
6b1dcc9d3f Update default port from 8088 to 9000
- Update embedded/index.html WebSocket URL
- Update minimal/index.html BotServer URL

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-08 12:14:01 +00:00
5618ed4367 Update: UI files and add error-reporter.js 2026-02-04 13:54:26 -03:00
5e10222a94 Fix login redirect to use absolute URL
- Use window.location.origin for redirect to ensure it works from any path
- Redirects to chat (#chat) after successful authentication
- Maintains support for custom redirect parameter
2026-02-04 13:20:14 -03:00
375b457f48 Fix login redirect to chat after authentication
- Change default redirect from '/' to '/#chat' after successful login
- Ensures users go directly to chat interface instead of root
2026-02-04 12:52:47 -03:00
e135ebf2e6 Hide voice icon, use light theme, add cursor blink
- Hide voice input button in chat interface
- Change default theme from 'sentient' to 'light'
- Add blinking cursor animation to chat input field
2026-02-04 09:56:24 -03:00
b69ea06ad3 Fix logged-out user menu - show only Sign in button
Removed Profile, Settings, and Help & Support items from user menu
when user is not authenticated. Now only Sign in button is visible.
2026-02-04 08:57:31 -03:00
bd49ee3892 Add logged-out navigation menu component
- Simplified menu showing only Sign in button
- Uses HTMX for authentication redirect
- Follows existing UI component patterns
- Responsive design with CSS variables
2026-02-04 00:03:10 -03:00
34d55825bc feat: Hide omnibox and apps menu based on product configuration
- Hide omnibox search mechanism when search_enabled=false in product config
- Hide apps menu launcher when menu_launcher_enabled=false or when no apps are visible
- Check effectiveApps (after filtering by compiled features) to determine if menu should be shown
- Automatically hide the apps menu button when there are no apps to display

This provides UI controls that respect the new search_enabled and menu_launcher_enabled
directives added to the .product configuration.
2026-01-29 23:56:00 -03:00
27e839f22a Fix bot_id routing: Extract bot name from URL path
- Add bot_name field to WsQuery struct
- Extract bot_name from URL path (e.g., /edu, /chat/edu)
- Pass bot_name to backend WebSocket URL
- Use URL path for bot identification instead of relying on client message
2026-01-28 17:17:36 -03:00
db0f0c1178 fix(ui): Use absolute paths for CSS/JS assets in suite apps to resolve loading errors 2026-01-28 16:26:09 -03:00
5657e33006 refactor(suite): clean up base layout and modularize app scripts 2026-01-25 13:33:03 -03:00
97b96faa89 Update UI 2026-01-24 22:06:22 -03:00
1435d1016f Update PROMPT.md and UI changes 2026-01-22 20:24:16 -03:00