Commit graph

210 commits

Author SHA1 Message Date
7a06f954fb fix: final pass of hardcoded CSS colors for seamless window manager theme support 2026-02-28 11:20:40 -03:00
8075f9701c fix: remove black frame caused by hardcoded window wrapper colors 2026-02-28 11:08:54 -03:00
4a2c28e252 fix: resolve background grid hardcoded colours and stray inline hex values 2026-02-28 11:06:40 -03:00
76ec8f9bb5 fix: resolve background grid hardcoded colours and stray inline hex values 2026-02-28 10:58:17 -03:00
a570d7bd11 fix: make desktop icons themable instead of hardcoded green squares 2026-02-28 10:26:44 -03:00
9444d3892c fix: make suite UI elements fully themable and resolve black frame on desktop-inner 2026-02-28 10:05:36 -03:00
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
a7991dd3dc trigger ci on main branch for alm 2026-02-20 15:27:25 -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
cbbcc58ad7 fix: Avoid workspace conflict in Forgejo CI
All checks were successful
BotUI CI / build (push) Successful in 4m41s
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>
2026-02-15 23:26:37 +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
8732738622 chore: Remove CI workflow
All checks were successful
BotUI CI / build (push) Successful in 3m19s
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 19:57:42 +00:00
8611472d4e ci: Add GitHub Actions CI workflow
All checks were successful
BotUI CI / build (push) Successful in 3m42s
- Add basic CI pipeline for Rust project
- Build, test, format check, and clippy

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 17:39:33 +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
root
607ad076d9 Fix email module integration - update build and UI server 2026-02-07 16:28:36 +00:00
661edc09fa Fix 404 errors for static assets with bot name prefixes
All checks were successful
BotUI CI / build (push) Successful in 3m42s
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
2026-02-06 16:24:56 -03:00