Commit graph

4671 commits

Author SHA1 Message Date
e7475125b7 ci: re-trigger CI for #495 switcher testing on stage 2026-04-27 11:19:58 +00:00
75ca8cf513 Update botserver: Add bot access control with org membership check (#499) 2026-04-26 19:53:03 -03:00
7d2d8a5674 feat: Add bot access control with org membership check (#499)
All checks were successful
Botlib CI / build (push) Successful in 53s
BotServer CI / build (push) Successful in 19m23s
Bottest CI / build (push) Successful in 45s
BotUI CI / build (push) Successful in 58s
- Add is_public column to bots table (migration 6.3.2-01)
- Add user_organizations to Diesel schema for org membership lookup
- Implement check_bot_access(): public bots allow all users, private bots
  require user membership in the bot's organization via user_organizations
- Wire access check into websocket_handler before WS upgrade
- Read is_public from bots table instead of bot_configuration
- Add database_name field to Bot model
2026-04-26 19:45:30 -03:00
0911448548 feat: Add switcher toggle functionality
- Added SWITCHER_TOGGLE message type (8) for reprocessing last user message with active switchers
- Backend: Handler fetches last user question from DB, mutates message in-place, injects switcher prompts into system_prompt
- Backend: Switcher replays skip message_history save to avoid duplication
- Frontend: toggleSwitcher() sends SWITCHER_TOGGLE when input empty, sendMessage() when text present
- Frontend: Added TOOL_EXEC and SWITCHER_TOGGLE to MessageType constants
- Fixed session_id shadowing bug in DB query (used session_id_for_query)
- Preserves conversation history for LLM context when reprocessing with switchers
2026-04-26 16:36:03 -03:00
6a64756bfd ci: re-trigger deploy for #495 ADD SWITCHER fix
Some checks failed
Botlib CI / build (push) Successful in 5s
Bottest CI / build (push) Successful in 37s
BotUI CI / build (push) Failing after 20s
2026-04-25 21:45:59 +00:00
bd113323c7 fix: ADD SWITCHER parse_parameters handles AS keyword split (3-param case)
Some checks failed
Botlib CI / build (push) Successful in 24s
BotServer CI / build (push) Failing after 3m42s
Bottest CI / build (push) Successful in 41s
BotUI CI / build (push) Failing after 27s
2026-04-25 21:24:14 +00:00
f7a7b111ff ci: add path filters to botserver workflow for auto-trigger
All checks were successful
Botlib CI / build (push) Successful in 21s
BotServer CI / build (push) Successful in 7m21s
Bottest CI / build (push) Successful in 34s
BotUI CI / build (push) Successful in 15s
2026-04-25 15:09:38 +00:00
8a7792a984 ci: trigger CI for #495 ADD SWITCHER fix 2026-04-25 14:30:51 +00:00
c93cc69f2f ci: trigger CI for #495 ADD SWITCHER fix 2026-04-25 14:20:55 +00:00
867c5c5be4 fix: ADD SWITCHER keyword - use register_custom_syntax instead of register_fn
The compiler outputs ADD_SWITCHER "x" as "y" format but the keyword
was registered as a plain Rhai function expecting add_switcher(x, y).
Changed to register_custom_syntax matching the output format, consistent
with ADD_SUGGESTION and CLEAR SWITCHERS patterns.

Fixes #495
2026-04-25 13:15:24 +00:00
28c48eeabf feat: Split chat.html into modular JS modules for #495 switcher support
- Split partials/chat.html (1513→70 lines) into 8 JS modules:
  chat-state.js, chat-switchers.js, chat-mentions.js,
  chat-messages.js, chat-suggestions.js, chat-theme.js,
  chat-websocket.js, chat-init.js
- Centralized state in ChatState global object
- Switcher chips auto-activate on switch_context suggestion action
- active_switchers sent in every WS message payload
- Removed old chat-main.js (merged into modules)
- Split vibe.html into vibe/ module directory with CSS extraction
- Updated standalone chat/chat.html to use same modules
2026-04-25 07:03:26 -03:00
1bb96f1923 fix: Add switcher support to chat page - render switcher chips from BotResponse, auto-activate on switch_context suggestion click, include active_switchers in WS payload (#495)
All checks were successful
Botlib CI / build (push) Successful in 6s
BotServer CI / build (push) Successful in 3m11s
Bottest CI / build (push) Successful in 29s
BotUI CI / build (push) Successful in 1m30s
2026-04-24 18:17:29 -03:00
c34b719515 Fix: remove .expect() from register_fn call in add_switcher_keyword
All checks were successful
Botlib CI / build (push) Successful in 2s
BotServer CI / build (push) Successful in 5m56s
Bottest CI / build (push) Successful in 29s
BotUI CI / build (push) Successful in 13s
2026-04-24 16:48:35 -03:00
21bcde15a6 Merge remote changes
Some checks failed
Botlib CI / build (push) Successful in 10s
BotServer CI / build (push) Failing after 1m25s
Bottest CI / build (push) Successful in 27s
BotUI CI / build (push) Successful in 16s
2026-04-24 16:45:26 -03:00
3e885d63b8 Fix: Correct YAML indentation in botserver.yaml workflow - Fix line 27 syntax error for CI 2026-04-24 16:43:55 -03:00
ab97e2da5d Fix: ADD SWITCHER keyword registration - Change from custom_syntax to register_fn to match multiword conversion pattern - Allows ADD SWITCHER "x" as "y" to convert to add_switcher("x", "y") 2026-04-24 16:42:08 -03:00
9f7da0a291 fix: ADD_SWITCHER keyword syntax - special handling for 'as' keyword format
All checks were successful
Botlib CI / build (push) Successful in 7s
Bottest CI / build (push) Successful in 31s
BotUI CI / build (push) Successful in 18s
The ADD_SWITCHER keyword was generating comma-separated params (ADD_SWITCHER(id, label))
instead of the expected Rhai custom syntax (ADD_SWITCHER id as label).

This fix adds special handling in the multiword processor to output the correct
format when processing ADD_SWITCHER with 2 parameters.

Fixes #495
2026-04-24 18:53:20 +00:00
3048832a2d feat: Add simple form of ADD SWITCHER keyword without AS clause
All checks were successful
Botlib CI / build (push) Successful in 13s
Bottest CI / build (push) Successful in 31s
BotUI CI / build (push) Successful in 15s
- ADD_SWITCHER "tables" now works (label defaults to switcher ID)
- ADD_SWITCHER "tables" AS "Tabelas" still works (custom label)
- Follows same pattern as ADD_SUGGESTION simple/AS forms
- Fixes #495
2026-04-24 18:22:17 +00:00
8a97c0517f Fix: Correct YAML syntax in botserver workflow - Remove blank line in multi-line block (line 27) - Fix indentation for all run commands - Use proper tar extraction syntax for deployment
All checks were successful
Botlib CI / build (push) Successful in 8s
Bottest CI / build (push) Successful in 33s
BotUI CI / build (push) Successful in 11s
2026-04-24 17:12:56 +00:00
d453eef57d fix: Use event delegation for switcher clicks
All checks were successful
Botlib CI / build (push) Successful in 7s
BotServer / build (push) Successful in 3m56s
Bottest CI / build (push) Successful in 35s
BotUI CI / build (push) Successful in 45s
- Event listeners were lost when renderSwitchers() re-created DOM
- Now using event delegation on parent container
- Listener attached once, persists across re-renders
- Added logging to verify active_switchers payload

Fixes switcher toggle not persisting and LLM modifier not being sent.
2026-04-24 16:57:30 +00:00
840175d540 fix: Correct YAML indentation in botserver workflow
All checks were successful
Botlib CI / build (push) Successful in 8s
BotServer / build (push) Successful in 5m49s
Bottest CI / build (push) Successful in 35s
BotUI CI / build (push) Successful in 16s
2026-04-24 16:40:50 +00:00
2d715b2650 refactor: Split chat.html into modular JS files
All checks were successful
Botlib CI / build (push) Successful in 12s
Bottest CI / build (push) Successful in 32s
BotUI CI / build (push) Successful in 44s
- chat.html reduced from 1623 lines to 59 lines
- Created chat-switchers.js for switcher state management
- Created chat-messages.js for message rendering
- Created chat-main.js for initialization and coordination
- Added console logging to debug switcher toggle functionality
- Follows AGENTS.md 450-line limit rule
2026-04-24 16:22:08 +00:00
6ad3ebff00 debug: Add logging for switcher prompt injection
All checks were successful
Botlib CI / build (push) Successful in 9s
Bottest CI / build (push) Successful in 34s
BotUI CI / build (push) Successful in 17s
2026-04-24 15:46:26 +00:00
02aaf528a9 Merge branch 'main' of https://alm.pragmatismo.com.br/GeneralBots/generalbots
All checks were successful
Botlib CI / build (push) Successful in 18s
Bottest CI / build (push) Successful in 40s
BotUI CI / build (push) Successful in 20s
2026-04-24 15:37:47 +00:00
6f9fdf5edb fix: Change DriveMonitor logging to trace level - Only log to info when actual changes occur in gbdialog, gbkb, or gbot - Reduces log noise from每秒 scans 2026-04-24 15:37:11 +00:00
9f250e7428 Remove incorrect UI sync step from botserver workflow
All checks were successful
Botlib CI / build (push) Successful in 9s
Bottest CI / build (push) Successful in 26s
BotUI CI / build (push) Successful in 15s
- BotUI has its own CI/CD pipeline
- BotServer should not deploy BotUI files
- UI files are managed by botui workflow only
2026-04-24 10:55:35 -03:00
6211e51d28 Fix: Remove invalid DriveConfig::from_vault() call
Some checks are pending
Bottest CI / build (push) Waiting to run
BotUI CI / build (push) Waiting to run
Botlib CI / build (push) Successful in 5s
BotServer CI / build (push) Successful in 6m4s
- DriveConfig::default() already loads from Vault
- No need for separate from_vault() method
- CI should compile now
2026-04-24 10:51:25 -03:00
85d93fd88b Merge branch 'main' of github.com:generalbots/generalbots 2026-04-24 10:44:28 -03:00
3c5c0949c3 Fix: Remove hardcoded defaults, require Vault for production config
Some checks failed
Botlib CI / build (push) Successful in 12s
BotServer CI / build (push) Failing after 1m49s
Bottest CI / build (push) Successful in 35s
BotUI CI / build (push) Successful in 16s
- AppConfig::default() and from_env() now read PORT from environment
- DriveConfig loads from Vault first, falls back to env vars for development
- DATABASE_URL must be set (from Vault via .env in production)
- No more hardcoded 8080 - reads from PORT env var
- Removed hardcoded paths like /opt/gbo/data, now from env or reasonable defaults
- Development still works with defaults, production requires Vault via .env
2026-04-24 10:43:34 -03:00
53867a3ef6 Fix: Read PORT from environment variable instead of hardcoded 8080
- Changed AppConfig::from_env() to read PORT from std::env
- Falls back to 8080 if PORT not set
- Also reads HOST, SITE_PATH, DATA_DIR from environment
- Fixes issue where botserver ignored .env PORT=5858 setting
2026-04-24 10:36:33 -03:00
5c3c941bc1 fix(ci): sync UI without sudo, botserver reads from /opt/gbo/botui/ui/ 2026-04-24 10:15:01 +00:00
3829645cef fix(ci): sync UI without sudo, botserver reads from /opt/gbo/botui/ui/
All checks were successful
Botlib CI / build (push) Successful in 7s
BotServer CI / build (push) Successful in 39s
Bottest CI / build (push) Successful in 36s
BotUI CI / build (push) Successful in 19s
2026-04-24 10:14:27 +00:00
77257b9f56 fix(ci): restore simple build + sync UI to /opt/gbo/bin/ui/ 2026-04-24 10:11:11 +00:00
39ee2c18f2 fix(ci): restore simple build + sync UI to /opt/gbo/bin/ui/
Some checks failed
Botlib CI / build (push) Successful in 6s
BotServer CI / build (push) Failing after 49s
Bottest CI / build (push) Successful in 32s
BotUI CI / build (push) Successful in 21s
2026-04-24 10:09:53 +00:00
171a6466ac fix(ci): copy botui/ui to botserver/ui before build with embed-ui 2026-04-24 10:03:05 +00:00
f0275f9941 fix(ci): remove UI sync from botui workflow 2026-04-24 10:03:04 +00:00
7f7fa80c2a fix(ci): build with embed-ui feature instead of syncing files 2026-04-24 10:03:04 +00:00
86be26b9e0 fix(ci): sync UI to /opt/gbo/bin/ui/ path for STAGE-GBO project 2026-04-24 10:03:04 +00:00
38d5a046f5 fix(ci): add defaults.working-directory and prepare-workspace to both workflows 2026-04-24 10:03:04 +00:00
98fbc49861 feat(ci): add UI file sync to stage in botui workflow 2026-04-24 10:03:04 +00:00
181137695b fix(ci): add prepare-workspace step to create dirs and clone if missing 2026-04-24 10:03:04 +00:00
424fe4752f fix(ci): debug UI sync paths and botserver CWD on stage 2026-04-24 10:03:04 +00:00
b87d58dc5b fix(ci): sync botui UI to both /opt/gbo/botui/ui and /opt/gbo/bin/botui/ui paths 2026-04-24 10:03:04 +00:00
76c2318290 fix(ci): copy botui/ui to botserver/ui before build with embed-ui
Some checks failed
BotUI CI / build (push) Waiting to run
Botlib CI / build (push) Successful in 45s
BotServer CI / build (push) Has been cancelled
Bottest CI / build (push) Successful in 47s
2026-04-24 10:01:42 +00:00
c960461eb5 fix(ci): remove UI sync from botui workflow
Some checks failed
Botlib CI / build (push) Successful in 2s
BotServer CI / build (push) Failing after 4m29s
Bottest CI / build (push) Successful in 19s
BotUI CI / build (push) Successful in 10s
2026-04-24 01:31:28 +00:00
1e96b18c81 fix(ci): build with embed-ui feature instead of syncing files
Some checks failed
Bottest CI / build (push) Waiting to run
BotUI CI / build (push) Waiting to run
Botlib CI / build (push) Successful in 2s
BotServer CI / build (push) Has been cancelled
2026-04-24 01:30:49 +00:00
0f7fe82523 fix(ci): sync UI to /opt/gbo/bin/ui/ path for STAGE-GBO project
Some checks failed
Botlib CI / build (push) Successful in 8s
BotServer CI / build (push) Failing after 25s
Bottest CI / build (push) Successful in 21s
BotUI CI / build (push) Failing after 11s
2026-04-24 01:28:50 +00:00
ef949885c7 fix(ci): add defaults.working-directory and prepare-workspace to both workflows
Some checks failed
Botlib CI / build (push) Successful in 6s
BotServer CI / build (push) Failing after 27s
Bottest CI / build (push) Successful in 26s
BotUI CI / build (push) Failing after 13s
2026-04-24 00:58:00 +00:00
3a1e4b9507 feat(ci): add UI file sync to stage in botui workflow
Some checks failed
Botlib CI / build (push) Successful in 4s
BotServer CI / build (push) Failing after 29s
Bottest CI / build (push) Successful in 25s
BotUI CI / build (push) Failing after 15s
2026-04-24 00:35:01 +00:00
1090f92926 fix(ci): add prepare-workspace step to create dirs and clone if missing
Some checks failed
Botlib CI / build (push) Successful in 10s
BotServer CI / build (push) Failing after 39s
Bottest CI / build (push) Successful in 35s
BotUI CI / build (push) Successful in 15s
2026-04-24 00:17:45 +00:00