- 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
- 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
- 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
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>
Remove actions/checkout with custom path that causes multiple workspace
roots error. Clone botui repository directly in Setup Workspace step
instead of using checkout action.
Fixes error: "multiple workspace roots found in the same workspace"
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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>
- 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>
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>
- 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>
- 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>
- 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
- 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>
Removed root-level static routes (/:dir/*path) that conflicted with
bot name prefixes like /edu. Now all assets are served under /suite/
path, allowing the fallback handler to properly detect and strip
bot prefixes before resolving file paths.
Fixes:
- /edu/suite/js/api-client.js now returns 200 OK
- /edu/suite/css/apps-extended.css now returns 200 OK
- /edu/suite/admin/admin.js now returns 200 OK
- Base href injection working correctly for bot prefixes
- Remove 'paths' filter from push/pull_request triggers
- Path filters like 'botui/**' only work in main gb repo
- In standalone botui repo, files are at root level (src/, Cargo.toml, etc.)
- CI will now run on all pushes to main branch
- Fix RustEmbed folder path to use $CARGO_MANIFEST_DIR/ui
- Remove duplicate interpolate-folder-path feature (now in workspace)
- Verified: 13 HTML files embedded, binary works from any directory
- Changed rust-embed folder from '../ui' to 'ui' (relative to crate root)
- Added conditional imports to eliminate unused import warnings
- Now UI files properly embed into botui binary during compilation
- Resolves production error: 'Asset suite/index.html not found in embedded binary'