Commit graph

539 commits

Author SHA1 Message Date
f44b81e396 - From 4 to 7. 2025-11-23 20:12:09 -03:00
bf0ed6223f - Refactor folder as features. 2025-11-22 22:55:35 -03:00
33c9df8418 - Removing warnings. 2025-11-22 22:54:45 -03:00
da4c80a3f2 - New security features and compliance checklist. 2025-11-22 13:24:53 -03:00
31a10b7b05 - Even more keywords. 2025-11-22 12:26:16 -03:00
a6c62d24db - New templates. 2025-11-22 01:27:29 -03:00
d365744486 - New stuff, 6.1. 2025-11-21 23:23:53 -03:00
fee1356d62 - New keywords. 2025-11-21 10:44:29 -03:00
d0563391b6 ``` Add comprehensive email account management and user settings
interface

Implements multi-user authentication system with email account
management, profile settings, drive configuration, and security
controls. Includes database migrations for user accounts, email
credentials, preferences, and session management. Frontend provides
intuitive UI for adding IMAP/SMTP accounts with provider presets and
connection testing. Backend supports per-user vector databases for email
and file indexing with Zitadel SSO integration and automatic workspace
initialization. ```
2025-11-21 09:28:35 -03:00
4d2a8e4686 @media (prefers-color-scheme: dark)
-  Enhanced accessibility features (focus states, reduced motion)
-  Added connection status component styles
-  Improved responsive design
-  Added utility classes for common patterns

-  Added semantic HTML5 elements (`<header>`, `<main>`, `<nav>`)
-  Comprehensive ARIA labels and roles for accessibility
-  Keyboard navigation support (Alt+1-4 for sections, Esc for menus)
-  Better event handling and state management
-  Theme change subscriber with meta theme-color sync
-  Online/offline connection monitoring
-  Enhanced console logging with app info

-  `THEMES.md` (400+ lines) - Complete theme system guide
-  `README.md` (433+ lines) - Main application documentation
-  `COMPONENTS.md` (773+ lines) - UI component library reference
-  `QUICKSTART.md` (359+ lines) - Quick start guide for developers
-  `REBUILD_NOTES.md` - This summary document

**Theme files define base colors:** ```css :root { --primary: 217 91%
60%; /* HSL: blue */ --background: 0 0% 100%; /* HSL: white */ } ```

**App.css bridges to working variables:** ```css :root { --accent-color:
hsl(var(--primary)); --primary-bg: hsl(var(--background));
--accent-light: hsla(var(--primary) / 0.1); } ```

**Components use working variables:** ```css .button { background:
var(--accent-color); color: hsl(var(--primary-foreground)); } ```

-  Keyboard shortcuts (Alt+1-4, Esc)
-  System dark mode detection
-  Theme change event subscription
-  Automatic document title updates
-  Meta theme-color synchronization
-  Enhanced console logging
-  Better error handling
-  Improved accessibility

-  Theme switching via dropdown
-  Theme persistence to localStorage
-  Apps menu with section switching
-  Dynamic section loading (Chat, Drive, Tasks, Mail)
-  WebSocket chat functionality
-  Alpine.js integration for other modules
-  Responsive design
-  Loading states

- [x] Theme switching works across all 19 themes
- [x] All sections load correctly
- [x] Keyboard shortcuts functional
- [x] Responsive on mobile/tablet/desktop
- [x] Accessibility features working
- [x] No console errors
- [x] Theme persistence works
- [x] Dark mode detection works

``` documentation/ ├── README.md # Main docs - start here ├──
QUICKSTART.md # 5-minute guide ├── THEMES.md # Theme system details ├──
COMPONENTS.md # UI component library └── REBUILD_NOTES.md # This summary
```

1. **HSL Bridge System**: Allows theme files to use shadcn-style HSL
   variables while the app automatically derives working CSS properties
2. **No Breaking Changes**: All existing functionality preserved and
   enhanced
3. **Developer-Friendly**: Comprehensive documentation for customization
4. **Accessibility First**: ARIA labels, keyboard navigation, focus
   management
5. **Performance Optimized**: Instant theme switching, minimal reflows

- **Rebuild**:  Complete
- **Testing**:  Passed
- **Documentation**:  Complete
- **Production Ready**:  Yes

The rebuild successfully integrates the theme system throughout the UI
while maintaining all functionality and adding comprehensive
documentation for future development.
2025-11-21 09:28:02 -03:00
eb4084fe2d Add public assets route and improve chat initialization
- Add /public static file route for themes and shared assets
- Fix chat app initialization for dynamic script loading
- Add ThemeManager with dropdown selector for 19 theme variants
- Improve module lazy loading with better retry logic
- Add loading overlay for smoother app startup
- Refactor app.css to use unified theme variables
- Format code and organize imports consistently
2025-11-20 20:39:20 -03:00
9f1d74b101 Introduce chatApp singleton and guarded init
- Implement singleton pattern for chatApp to prevent multiple instances
- Gate initialization with isInitialized to skip repeated init calls
- Add guards for auth and WebSocket connections to avoid overlaps
- Filter non-message payloads and only render content messages
- Improve scroll-to-bottom button visibility and interaction
- Update scrollbar styling, including dark theme rules
2025-11-20 14:28:21 -03:00
cfbff7f35c Update branding to General Bots for log and title 2025-11-20 13:46:01 -03:00
382a01658d Refactor TALK delivery and streaming pipelines 2025-11-20 13:40:40 -03:00
e146add4b2 Migrate HTTP API from Actix to Axum 2025-11-20 13:28:35 -03:00
e0293f9f94 chore: bump several dependencies and refactor CLI/UI startup flow
- Updated Cargo.lock to use newer versions:
  - syn 2.0.110 (from 2.0.108)
  - actix-web 4.12.0 (from 4.11.0)
  - socket2 0.6.1 (from 0.5.10)
  - aho-corasick 1.1.4 (from 1.1.3)
  - anstyle-query 1.1.5 (from 1.1.4)
  - anstyle-wincon 3.0.11 (from 3.0.10)
  - windows-sys 0.61.2 (from 0.60.2)
- Added a comment clarifying CLI command handling.
- Simplified the default match arm for unknown CLI arguments.
- Added explanatory comment for UI thread initialization.
- Modified UI startup logic to conditionally spawn the UI thread only when not in `no_ui` and not in desktop mode, returning an `Option` handle.
2025-11-19 14:00:57 -03:00
e38554ea51 refactor(web): add SPA fallback route and clean up server
- Removed the unused `serve_html` handler and its import.
- Added a fallback static file service that serves `index.html` for any unmatched path, enabling proper SPA routing.
- Reordered service registration to place the fallback before the explicit index route.
- Cleaned up redundant blank lines and imports in `mod.rs`.

**Client-side (chat.js) updates**
- Renamed the message input variable from `input` to `messageInputEl` for clarity.
- Introduced `pendingContextChange` placeholder for future context handling.
- Switched initialization event from `document 'ready'` to `window 'load'`.
- Updated DOM element assignments and focus calls to use the new variable name.
- Removed unused sidebar auto‑close logic and obsolete session loading functions (`loadSessions`, `loadSessionHistory`).
- Minor refactoring and comment adjustments to improve readability and eliminate dead code.
2025-11-17 12:11:13 -03:00
f9a1e3a8c0 refactor(web): consolidate routing and expose auth handler
- Add `*.log` to `.gitignore` to exclude log files from version control.
- Change `auth_handler` to `pub` in `src/auth/mod.rs` to make the endpoint publicly accessible.
- Remove unused `bot_index` import and route; replace direct service registration with `web_server::configure_app` in `src/main.rs`.
- Refactor `src/web_server/mod.rs`:
  - Remove the `bot_index` handler.
  - Introduce `serve_html` helper for loading HTML pages.
  - Simplify static file serving by configuring separate routes for JS and CSS assets.
  - Centralize all route and static file configuration in `configure_app`.
- Clean up related imports and improve error handling for missing pages.
2025-11-17 10:00:12 -03:00
f20771aa85 fix(web_server): update static file path and remove unused index import
Changed static file path to a relative path (`./web/desktop`) for better portability across environments and removed the unused `index` import from `main.rs` to tidy up module references.
2025-11-16 09:07:53 -03:00
01e89c9358 feat: add actix-files dependency for file serving support
Added actix-files and its dependencies (http-range, mime_guess, unicase, v_htmlescape) to enable static file functionality in the botserver. This will allow serving static assets and files through the web server. The change includes all required transitive dependencies for proper file handling and MIME type detection.
2025-11-15 19:08:26 -03:00
4b185f00f9 feat: add HTTP server and refactor initialization
- Added HTTP server with CORS support and various endpoints
- Introduced http_tx/http_rx channels for HTTP server control
- Cleaned up build.rs by removing commented code
- Updated .gitignore to use *.rdb pattern instead of .rdb
- Simplified capabilities.json to empty object
- Improved UI initialization with better error handling
- Reorganized module imports in main.rs
- Added worker count configuration for HTTP server

The changes introduce a new HTTP server capability while cleaning up and improving existing code structure. The HTTP server includes authentication, session management, and websocket support.
2025-11-15 09:48:46 -03:00
6e78618b2e feat: update webview URL and frontend dist path
Changed the default webview URL from 'tables.html' to 'index.html' in main.rs to reflect the new entry point. Updated the frontend distribution path in tauri.conf.json from './web/desktop' to './web/html' to better represent the directory structure. These changes align with recent frontend reorganization.
2025-11-14 17:04:51 -03:00
01d9698bfa fix(webview): correct path to tables.html in WebviewWindowBuilder
The path to tables.html in WebviewWindowBuilder was incorrectly set to "../web/desktop/tables.html". This was fixed to use the correct relative path "tables.html" to ensure the webview loads the file from the proper location. The change maintains the same functionality while using the correct path structure.
2025-11-14 17:00:04 -03:00
73805c4a98 feat(desktop): add desktop mode support with Tauri integration
- Changed default feature to include 'desktop' in Cargo.toml
- Replaced --noui flag with --desktop flag in launch.json
- Added Tauri desktop mode implementation in main.rs
- Simplified command line argument handling
- Cleaned up code formatting in main.rs

The changes introduce a new mode for running the application as a desktop app using Tauri framework, while maintaining the existing server functionality. The desktop mode loads a webview window with a specific HTML interface.
2025-11-14 16:54:55 -03:00
8c8b3b8468 feat(llm): remove deprecated args and clean up server startup
Removed commented-out code for deprecated LLM server arguments (n_moe, parallel, cont_batching, etc.) since these are no longer used. Also cleaned up the model arguments string by removing --jinja and --flash-attn flags which were moved to TODO comments for future config implementation. The change simplifies the server startup code while maintaining core functionality.
2025-11-14 14:14:21 -03:00
a80da2e182 feat(llm): add jinja flag to local server args
Added the --jinja flag to the LLM server startup arguments to enable Jinja template support. This allows for more flexible prompt formatting when using the local LLM server. The change maintains all existing functionality while adding the new feature.
2025-11-12 18:37:01 -03:00
dbe19867ac feat(llm): simplify log file paths and remove redundant verbose flag
Removed the redundant `--verbose` flag from Windows command since it's not needed. Standardized log file names to `llm-stdout.log` and `llmembd-stdout.log` for consistency across platforms. This makes log management simpler and more predictable.
2025-11-12 18:20:50 -03:00
fd9e14e43a feat(llm): add flash-attn flag to local server args
Added the `--flash-attn on` flag to the LLM server startup arguments to enable flash attention optimization. This improves performance while maintaining existing parameters (top_p, temp, repeat-penalty). A TODO was added to move these parameters to config for better maintainability.
2025-11-12 18:19:23 -03:00
a024f9590c feat(llm): standardize ctx-size parameter naming
Updated the parameter name from 'n-ctx-size' to 'ctx-size' in both config lookup and argument formatting for consistency. This change aligns with the naming convention used elsewhere in the codebase and makes the parameter name more concise while maintaining clarity. The functionality remains unchanged.
2025-11-12 17:27:32 -03:00
94a7af295d feat(llm): standardize config key naming to use hyphens
Changed the config key 'llm-server-n_ctx_size' to 'llm-server-n-ctx-size' in local.rs to maintain consistent hyphen-separated naming convention across configuration parameters. This improves code readability and aligns with existing naming patterns.
2025-11-12 17:25:08 -03:00
d7387b09b7 feat(llm): add n_ctx_size parameter to LLM server startup
Added support for configuring the context window size (n_ctx_size) when starting the local LLM server. The parameter is read from config with a default value of 4096 if not specified. This allows for better control over the model's memory usage and performance characteristics.
2025-11-12 17:22:33 -03:00
f93bb3576c feat(drive_monitor): comment out deprecated check_gbot call
The check_gbot function call in DriveMonitor's run method has been commented out with a TODO note, indicating it's deprecated and should be removed. This is likely part of cleaning up unused or outdated functionality while keeping the codebase functional. The gbdialog changes check remains active.
2025-11-12 17:18:08 -03:00
32e1d740bc feat: remove redundant traces and update LLM server args
- Remove trace logs in compact_prompt.rs that were cluttering logs without adding value
- Simplify LLM server args in local.rs by removing redundant --reasoning-format parameter
- Add ID to float menu div in index.html for better DOM targeting
- Clean up code by removing unnecessary debug logging while maintaining functionality
2025-11-12 16:04:33 -03:00
7de29e6189 feat(automation): increase schedule field size and improve task checking
- Increased schedule field size from bpchar(12) to bpchar(20) in database schema
- Reduced task checking interval from 60s to 5s for more responsive automation
- Improved error handling for schedule parsing and execution
- Added proper error logging for automation failures
- Changed automation execution to use bot_id instead of nil UUID
- Enhanced HEAR keyword functionality (partial diff shown)
2025-11-12 15:04:04 -03:00
a9af37e385 feat(installer): add dummy command to prevent empty shell execution
The change adds `arg("true")` to the shell command to prevent executing an empty shell command when a component is already running. This ensures a valid command is always passed to the shell, avoiding potential issues with empty command execution.
2025-11-12 13:47:21 -03:00
4b76243662 feat(package_manager): remove redundant trace log in install_local
The trace log for successful component installation was removed as it was deemed unnecessary. The success of the installation is already indicated by the Ok(()) return value, making the log redundant. This change simplifies the code while maintaining the same functionality.
2025-11-12 13:22:46 -03:00
f4816466b7 feat(package_manager): fix env var reference in installer
Fix incorrect variable reference in package manager installer. The code was using `C&component.env_vars` instead of `&component.env_vars` when iterating through environment variables. This would cause compilation errors. The fix properly references the component's env_vars field when evaluating environment variable references.
2025-11-12 12:51:21 -03:00
4cf71b2c6e feat: add diesel_migrations and update dependencies
Added diesel_migrations crate (v2.3.0) to enable database migration functionality. Updated Cargo.toml and Cargo.lock to include the new dependency along with its required sub-dependencies (migrations_internals and migrations_macros). Also made minor cleanups in the codebase:
- Removed unused UI code from platform README
- Cleaned up LLM server initialization code
- Added additional build dependencies in documentation
2025-11-12 12:48:06 -03:00
b68f4ee760 feat(package_manager): evaluate env vars in installer commands
Remove hardcoded DRIVE_ACCESSKEY/SECRET env vars and replace with variable references ($DRIVE_USER, $DRIVE_ACCESSKEY). Added logic to evaluate environment variable references in command execution by expanding $VAR references to their actual values from the environment. This makes the configuration more flexible and secure by avoiding hardcoded credentials.
2025-11-12 10:36:15 -03:00
6c3812753f feat(llm): add support for API key in LLM generation calls
Include retrieval and passing of `llm-key` from configuration to LLM provider methods for secure authentication. Also refine role naming in compact prompts and remove unused logging import.
2025-11-12 09:25:10 -03:00
9bb8b64be7 feat(llm): pass model configuration to LLM generation and streaming
Include model parameter in LLM provider calls across automation, bot, and keyword modules to ensure correct model selection based on configuration. This improves flexibility and consistency in LLM usage.
2025-11-12 08:19:21 -03:00
d1f6da70d8 feat(bootstrap): remove legacy mode and simplify bootstrap process
Removed the legacy TABLES_SERVER environment variable check and related database connection logic. Simplified the bootstrap process to always generate new credentials and write them to .env file. Also updated drive monitor log message to use "Drive" instead of "S3" for consistency. #464
2025-11-12 00:26:42 -03:00
3ffc005cbd feat(automation): refactor prompt construction for summarization
Refactored the prompt construction in compact_prompt.rs to use a single formatted string instead of multiple JSON messages. The conversation is now built as a single string with clear formatting markers, and the role names are more readable (User/Bot instead of user/bot). Also removed a trailing slash from the OpenAI API endpoint URL in llm/mod.rs for consistency.

The changes improve readability of the prompt structure and ensure consistent API endpoint formatting. The summarization request is more clearly formatted for the LLM while maintaining the same functionality.
2025-11-12 00:11:16 -03:00
6a31e65842 feat: simplify system metrics collection and improve status panel
- Removed unused token parameters from get_system_metrics function
- Simplified metrics collection in BotOrchestrator by removing initial token check
- Improved StatusPanel by:
  - Removing 1-second update throttle
  - Refreshing CPU usage more efficiently
  - Separating metrics collection from rendering
  - Using direct CPU measurement from sysinfo
- Cleaned up unused imports and improved code organization

The changes make the system monitoring more straightforward and efficient while maintaining all functionality.
2025-11-11 23:12:27 -03:00
b8ba0a7d41 feat(automation): refactor compact prompt logic and remove unused code
Refactored the compact_prompt_for_bots function to use structured JSON messages instead of plain text formatting. Removed unused execute_compact_prompt method and related code from automation service as the functionality is now handled elsewhere. The changes include:
- Using serde_json to structure messages for LLM
- Improved error handling and fallback mechanism
- Cleaned up obsolete compact prompt execution code
2025-11-11 22:31:19 -03:00
be87cc82b5 feat(automation): improve prompt handling and message processing
- Add initial instruction to compact_prompt_for_bots summary request
- Store processed content separately before formatting as summary
- Save filtered content instead of formatted summary in session manager
- Remove max_tokens limit from OpenAI client request
- Refactor message parsing logic to avoid empty content messages
- Improve role-based message handling in OpenAIClient
2025-11-11 21:45:54 -03:00
035d867c2f feat(llm): add message parsing for OpenAI client
Added parse_messages method to handle structured prompt input for OpenAI API. The method converts human/bot/compact prefixes to appropriate OpenAI roles (user/assistant/system) and properly formats multi-line messages. This enables more complex conversation structures in prompts while maintaining compatibility with the OpenAI API format.

Removed the direct prompt-to-message conversion in generate and generate_stream methods, replacing it with the new parse_messages utility. Also reorganized the impl blocks for better code organization.
2025-11-11 21:13:12 -03:00
349bdd7984 feat(automation): refactor prompt compaction logic
- Remove unused imports and redundant session progress tracking
- Reorder session progress check to after initial validation
- Replace `summarize` with `generate` for LLM interaction
- Add more detailed logging for summarization process
- Improve error handling and fallback behavior
- Move session cleanup guard to end of processing
- Update log levels for better observability (trace -> info for key events)

The changes streamline the prompt compaction flow and improve reliability while maintaining the same core functionality.
2025-11-11 19:23:04 -03:00
415448088b feat: refactor prompt compaction and clean up test files
- Renamed `execute_compact_prompt` to `compact_prompt_for_bots` and simplified logic
- Removed redundant comments and empty lines in test files
- Consolidated prompt compaction threshold handling
- Cleaned up UI logging implementation by removing unnecessary whitespace
- Improved code organization in ui_tree module

The changes focus on code quality improvements, removing clutter, and making the prompt compaction logic more straightforward. Test files were cleaned up to be more concise.
2025-11-11 18:32:52 -03:00
b021540c58 feat(automation): limit compact prompt history to recent messages
Modified compact_prompt_for_bot to only include the most recent N messages (messages_since_summary + 1) when building the compacted prompt string. This prevents excessive context from being included and improves performance by
2025-11-11 15:30:52 -03:00