- Introduced AIAgentOwnerTeam and AIAgentOwnerUser models to manage team and user ownership of AI Agents.
- Created AIAgent API to fetch global AI agents.
- Added Handlebars template for notifications when a user is added as an AI agent owner.
- Implemented services for AIAgentOwnerTeam and AIAgentOwnerUser for database interactions.
- Updated database models to include necessary access control and metadata for new entities.
- Updated error messages in errors.ejs to use hyphens instead of em dashes.
- Modified meta description in index.ejs files to use hyphens.
- Adjusted WhatsApp setup instructions in Index.tsx to replace em dashes with hyphens.
- Changed footer description in footer.ejs to use hyphens.
- Updated various markdown and HTML files to replace em dashes with hyphens for uniformity.
- Introduced LlmLog model to track AI API calls, including details like provider, tokens used, cost, and status.
- Implemented AILogService to handle AI log creation and management, including billing checks and log updates.
- Created LlmLogsTable component for displaying AI logs in the dashboard with filtering and modal views for request/response details.
- Added new routes and pages for viewing AI logs in the context of incidents, alerts, and settings.
- Updated PageMap and RouteMap to include new AI log views.
- Enhanced error handling and logging for AI API interactions.
- Updated terminology from "LLMs" to "LLM Providers" across the application for clarity.
- Renamed related routes and page maps to reflect the new terminology.
- Removed deprecated LlmView and Llms components, replacing them with LlmProviderView and LlmProviders components.
- Introduced new settings page for managing global LLM Providers with appropriate UI components.
- Updated side menu and routing to accommodate the changes in naming and structure.
- Replaced all instances of LLM with LLM Provider in the codebase.
- Created a new LlmProvider model to manage LLM Provider configurations.
- Updated API endpoints and services to handle LLM Providers instead of LLMs.
- Modified UI components to reflect the changes from LLM to LLM Provider, including table names, descriptions, and messages.
- Removed the old LLM model and service files to streamline the codebase.
- Introduced new settings page for managing global LLM configurations.
- Added routes and permissions for LLM management in the admin dashboard.
- Implemented LLM model with necessary fields and access controls.
- Created API endpoints for fetching global LLMs.
- Developed UI components for displaying and editing LLM details.
- Integrated LLM settings into the existing admin dashboard structure.
- Added support for multiple LLM providers including OpenAI, Anthropic, and Ollama.
Replace generic "Only master admins can access this app." with
"Unauthorized: Only master admins can access the admin dashboard." to
provide clearer, more informative authorization errors.
Add ensureMasterAdminAccess in AdminDashboard/Serve.ts to decode JWT, validate
isMasterAdmin and return a NotAuthorized response when access is not allowed.
Wire this function into App.init as getVariablesToRenderIndexPage so the admin
frontend is protected.
Also add a res.headersSent guard in StartServer.ts to skip rendering the index
page if a response was already sent, avoiding duplicate responses.
- Add EditionLabel component to Common UI to show current edition and info modal
- Show edition label in Login page, Dashboard header and Footer
- Add IS_ENTERPRISE env var to config.example.env and export in Common UI Config
- Propagate IS_ENTERPRISE into docker-compose.base.yml service envs
- Update lockfiles for root, TestServer, Worker and Workflow
- Add new/top-level packages and types:
- @simplewebauthn/server, archiver, botbuilder
- @types/archiver
- Bump notable package versions:
- axios, nodemailer, playwright, react-syntax-highlighter
- Sync a large set of transitive dependency upgrades:
- @babel/* (code-frame, parser, template, types, helpers, helper-*), brace-expansion, braces, fill-range, micromatch, picocolors, cross-spawn, to-regex-range and others
- Remove/clean outdated lock entries (e.g. to-fast-properties removed where unnecessary)
- Add/fix license fields for several packages in the lockfiles
- General lockfile normalization to ensure consistent subdependency versions across packages
This keeps dependency trees aligned across monorepo packages and pulls in recent bug/security fixes from transitive upgrades.