Feat/support hybrid model selection rebase#80
Merged
Conversation
…fold)
Adds a 4th "Hybrid" option to the provider dropdown with a purple
"Mixed" badge and dark-mode fix, plus a Settings2 configure button
on the selected hybrid row. Passes new `defaultBackend` and
`backendLocked` (BrainForge) fields from `/api/config` personas
through AppConfigContext for the upcoming mapping UI.
Backend needs:
- `default_backend` + `brainforge` flags on persona config
- accept "hybrid" on POST /switch-provider
- GET/POST /hybrid-config for { orchestrator, personas{} } map
- per-persona inference routing; BrainForge hard-pinned
… and hybird (different llm per persona/orchestrator) modes.
- Added HybridConfigModal for configuring hybrid LLM settings. - Refactored state management to support both uniform and hybrid modes. -Each adviosr can now have its own model
…ing every 300 seconds.
…me screens and settigns pages once merges are completed.
…LLM provider config.
- Added functionality for updating user profile information (first name, last name). - Implemented password change and account deletion processes with confirmation. - Improved modal behavior to prevent accidental closure during text selection. - Updated ChatPage to integrate new SettingsModal features, including user update and sign-out callbacks.
…revent their underlying models from being changed.
NeonDaniel
requested changes
Jun 2, 2026
NeonDaniel
left a comment
Member
There was a problem hiding this comment.
Read through backend changes and left some comments
NeonDaniel
reviewed
Jun 2, 2026
Member
|
Couple front-end notes for @NeonRyan
|
NeonDaniel
reviewed
Jun 5, 2026
NeonDaniel
approved these changes
Jun 5, 2026
Merged
NeonDaniel
added a commit
that referenced
this pull request
Jun 10, 2026
# Changelog ## [2.0.1a11](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a11) (2026-06-09) [Full Changelog](2.0.1a10...2.0.1a11) **Fixed bugs:** - \[BUG\] Disable all advisors button throwing 400 error [\#83](#83) **Merged pull requests:** - Fix/disable all error [\#84](#84) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a10](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a10) (2026-06-09) [Full Changelog](2.0.1a9...2.0.1a10) **Fixed bugs:** - \[BUG\] Advisor images are broken in production [\#79](#79) **Merged pull requests:** - fixed path for bundled avatar URIs. [\#82](#82) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a9](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a9) (2026-06-09) [Full Changelog](2.0.1a8...2.0.1a9) **Implemented enhancements:** - \[FEAT\] Different Response Modes [\#50](#50) **Merged pull requests:** - Enhance chat functionality with response mode toggle [\#61](#61) ([NeonRyan](https://github.com/NeonRyan)) ## [2.0.1a8](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a8) (2026-06-05) [Full Changelog](2.0.1a7...2.0.1a8) **Implemented enhancements:** - \[FEAT\] Filter available LLM Backends based on config [\#71](#71) - \[FEAT\] Support "Hybrid" model selection [\#51](#51) **Merged pull requests:** - Feat/support hybrid model selection rebase [\#80](#80) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a7](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a7) (2026-05-30) [Full Changelog](2.0.1a6...2.0.1a7) **Implemented enhancements:** - \[FEAT\] Move all message persistence from frontend to backend [\#46](#46) **Merged pull requests:** - persist advisor responses to db in /chat-stream endpoint. [\#78](#78) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a6](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a6) (2026-05-29) [Full Changelog](2.0.1a5...2.0.1a6) **Implemented enhancements:** - \[FEAT\] Support BrainForge LLM Backend [\#49](#49) **Merged pull requests:** - BrainForge LLM Integration [\#62](#62) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a5](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a5) (2026-05-29) [Full Changelog](2.0.1a4...2.0.1a5) **Implemented enhancements:** - \[FEAT\] Evaluate old\_routes.py for deprecation [\#74](#74) **Merged pull requests:** - deprecated old\_routes.py [\#77](#77) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) ## [2.0.1a4](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a4) (2026-05-28) [Full Changelog](2.0.1a3...2.0.1a4) **Implemented enhancements:** - \[FEAT\] Disable Specific Personas [\#64](#64) - \[FEAT\] User Tutorial [\#29](#29) **Merged pull requests:** - Disable Specific User Personas [\#65](#65) ([NeonRyan](https://github.com/NeonRyan)) ## [2.0.1a3](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a3) (2026-05-21) [Full Changelog](2.0.1a2...2.0.1a3) **Merged pull requests:** - Add Onboarding tour [\#48](#48) ([NeonRyan](https://github.com/NeonRyan)) ## [2.0.1a2](https://github.com/NeonGeckoCom/CCAI-Demo/tree/2.0.1a2) (2026-05-19) [Full Changelog](33862e6...2.0.1a2) **Implemented enhancements:** - \[FEAT\] Clear User Data [\#52](#52) - \[FEAT\] Support tools [\#34](#34) - \[FEAT\] Add endpoint and UI for User Account updates [\#26](#26) - \[FEAT\] Support advisor avatar images [\#25](#25) - \[FEAT\] Configurable User Guide [\#24](#24) - \[FEAT\] Support vLLM endpoints [\#22](#22) - \[FEAT\] Improved persona configuration handling [\#8](#8) - \[FEAT\] Implement automatic color picker for personas [\#7](#7) - \[FEAT\] Validate configured icons [\#6](#6) - \[FEAT\] Improved Checks for "Clarification Needed" [\#5](#5) - \[FEAT\] Versioning and release automation [\#4](#4) **Fixed bugs:** - \[BUG\] Deleting a chat in the UI causes an empty chat to be created [\#45](#45) - \[BUG\] User inputs are sometimes repeated [\#42](#42) - \[BUG\] Improved method for LLM JSON Generation [\#13](#13) **Closed issues:** - Pin the requirements.txt to stable versions [\#37](#37) **Merged pull requests:** - feat/Added front end support for settings page [\#60](#60) ([NeonRyan](https://github.com/NeonRyan)) - Clear User Data [\#58](#58) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/improve clarification check [\#57](#57) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - UI Improvements [\#56](#56) ([NeonRyan](https://github.com/NeonRyan)) - Fix bug around chat deletion [\#54](#54) ([NeonRyan](https://github.com/NeonRyan)) - Add User Guide [\#53](#53) ([NeonRyan](https://github.com/NeonRyan)) - Add versioning automation [\#47](#47) ([NeonDaniel](https://github.com/NeonDaniel)) - Fix/dup first message [\#44](#44) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/persona avatars [\#43](#43) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/account management [\#41](#41) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Fix/json output [\#40](#40) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/advisor tools [\#38](#38) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/vllm endpoints [\#36](#36) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Refactor/unittests [\#33](#33) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Support Voice Interaction [\#32](#32) ([NeonDaniel](https://github.com/NeonDaniel)) - Fix/structured json output [\#30](#30) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/auto persona colors [\#23](#23) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Feat/validate lucide icons [\#21](#21) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Initial setup of GitHub Actions workflow [\#20](#20) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Refactor chat UI layout [\#19](#19) ([NeonDaniel](https://github.com/NeonDaniel)) - Stream LLM Responses [\#18](#18) ([NeonDaniel](https://github.com/NeonDaniel)) - Feat/improve persona config [\#16](#16) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Add Neon AI Branding [\#15](#15) ([NeonDaniel](https://github.com/NeonDaniel)) - Docs/update readme repo URL [\#14](#14) ([NeonCharlie-24](https://github.com/NeonCharlie-24)) - Improve backend logic around user input parsing [\#12](#12) ([NeonDaniel](https://github.com/NeonDaniel)) - Fix Home navigation to prevent logging out [\#11](#11) ([NeonDaniel](https://github.com/NeonDaniel)) - Add configuration for Undergrad Advisor Panel [\#10](#10) ([NeonDaniel](https://github.com/NeonDaniel)) - Add configuration support [\#3](#3) ([NeonDaniel](https://github.com/NeonDaniel)) - Docker optimization by Cursor [\#2](#2) ([NeonDaniel](https://github.com/NeonDaniel)) - Implement Docker deployment [\#1](#1) ([NeonDaniel](https://github.com/NeonDaniel)) \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds per-user LLM backend selection, allowing each user to configure which LLM provider (Gemini, Ollama, vLLM) powers the orchestrator and each individual advisor.
User configurations are persisted to the database via a new
llm_configfield on the User model. The backend resolves the correct LLM client per-persona at chat time based on the stored config. The frontend exposes this through anAdvisorConfigPanelcomponent in the Settings modal, with backend health checks running periodically to keep the available backends list current.Admins can now disable individual backends via
enabled: falseinconfig.yaml, and the default backend is resolved dynamically at startup — preferring Gemini but falling back to the first available. The frontend no longer hardcodes Gemini as a fallback; all UI selectors are driven by the available backends returned from the API.BrainForge advisors are excluded from model configuration since they are bound to their own LLM backend.
Issues
Closes #51
Closes #59
Closes #71
Other Notes
llm.health_check_intervalinconfig.py), which is currently set to 5 min.gemini,ollama,vllm) now supports anenabledflag — defaults totrue, set tofalseto hide from users.RuntimeErrorwith an actionable message rather than failing silently.