All notable changes to the Dorian AI Agent Builder project.
- Decommissioned Model Error: Removed deprecated
mixtral-8x7b-32768from fallback models - Default Model Updated: Changed default from
llama-3.1-70b-versatiletollama-3.3-70b-versatile(latest) - Auto-Cache Refresh: Model cache is automatically cleared when decommissioned model errors are detected
- Better Error Detection: Added detection for
model_decommissionedandinvalid_request_errorcodes
Current supported models (as of Feb 2026):
llama-3.3-70b-versatile(default) ⭐llama-3.1-70b-versatilellama-3.1-8b-instantllama3-70b-8192llama3-8b-8192gemma2-9b-it
- Backend now filters out decommissioned models from API response
- Models sorted with newest versions first (llama-3.3 → llama-3.1 → others)
- Only shows LLaMA and Gemma models (excluded deprecated Mixtral variants)
- Better error messages for unsupported/decommissioned models
- Dependencies
- Removed unused dependency:
react-blockly@8.0.0 - Removed unused devDependency:
@types/react-dom@18.2.17
- Removed unused dependency:
- devDependencies
- Added
eslint-plugin-react@7.33.2 - Added
eslint-plugin-react-hooks@4.6.0 - Added
eslint-plugin-react-refresh@0.4.5
- Added
src/components/builder/BlockPalette.jsxand.css(unused component)src/components/builder/WorkflowBlock.jsxand.css(unused component)src/components/onboarding/index.js(unused barrel export)
- Dependencies
- Removed unused dependency:
uuid@13.0.0
- Removed unused dependency:
- Removed unused export
SCOPESfromsrc/config/gmail-config.js
- Completely removed all K2 Think AI provider code and references
- Removed
K2_THINK_APIenvironment variable from.env - Deleted
callK2ThinkAPI()function fromworkflowEngine.js
- Groq SDK Integration
- Installed
groq-sdk@0.37.0(already present in package.json, now actively used) - Created
callGroqAPI()function with proper error handling - Added support for dynamic model selection
- Default model:
llama-3.1-70b-versatile
- Installed
-
src/services/workflowEngine.js- Replaced K2 Think API calls with Groq SDK
- Added
selectedModelparameter to workflow execution - Enhanced error messages to show selected model in logs
- Added quota/capacity error detection and user-friendly messages
- Added input validation for messages, temperature, and maxTokens
-
src/routes/workflows.js- Added
selectedModelparameter to/executeendpoint - Added input validation for workflow execution requests
- Created new
/modelsGET endpoint to fetch available Groq models - Added fallback model list for offline/error scenarios
- Added
-
ModelSelector.jsx- Dropdown component for model selection- Fetches available models from Groq API
- Caches model list for 1 hour (localStorage)
- Displays current selected model in toolbar
- Matches existing UI/UX design (maroon theme, rounded corners, shadows)
- Supports keyboard navigation and accessibility
-
ModelSelector.css- Styling matching existing design system- Uses CSS variables from
global.css - Supports light/dark themes
- Responsive design for mobile/tablet
- Smooth animations with framer-motion
- Uses CSS variables from
-
BuilderPage.jsx- Added
ModelSelectorcomponent to toolbar (before Load button) - Imported and integrated into builder interface
- Added
-
builderStore.js- Updated
runWorkflow()to read selected model from localStorage - Added error handling for model quota errors
- Displays helpful message to select different model on capacity errors
- Updated
-
api.js- Added
get()helper function for GET requests - Exported
getin API object for use by components
- Added
- Model List Caching: 1-hour TTL to reduce API calls
- Fallback Models: Shows common models if API fetch fails
llama-3.1-70b-versatilellama-3.1-8b-instantmixtral-8x7b-32768gemma2-9b-it
- Error Handling: Graceful degradation when API is unavailable
- Quota Detection: Detects rate limit/capacity errors and prompts model switch
- Persistent Selection: Stores selected model in localStorage (
dorian_selected_model) - Visual Feedback: Shows loading, error, and fallback states
-
React Error Boundary
- Created
ErrorBoundary.jsxcomponent - Wrapped entire App with ErrorBoundary
- Shows user-friendly error page on crashes
- Displays error details in development mode
- Provides "Reload Page" button for recovery
- Created
-
Server-side Validation
-
Added input validation to
/executeendpoint- Validates
codeis non-empty string - Validates
selectedModelis string (if provided) - Returns structured error responses with
success: false
- Validates
-
Added input validation to
callGroqAPI()- Validates
messagesis non-empty array - Validates
temperatureis between 0 and 2 - Validates
maxTokensis positive number - Validates API response structure
- Validates
-
Added null/undefined checks
req.session?.googleTokens(optional chaining)error?.messagechecks throughoutresponse?.datavalidation in model fetchingcompletion?.choices?.[0]?.message?.contentvalidation
-
- Model capacity errors: "Model X is out of capacity. Please select another model."
- Invalid responses: Specific error for malformed API responses
- Input validation: Clear messages for invalid parameters
- Fallback behavior: Gracefully handles missing environment variables
-
✅ dorian-ui: Build successful
- Output:
dist/index.html(0.63 kB) - CSS:
102.23 kB(16.39 kB gzipped) - JS:
1,096.35 kB(304.67 kB gzipped) - No errors
- Output:
-
✅ server: Syntax validation passed
server.js: Validroutes/workflows.js: Validservices/workflowEngine.js: Valid- No syntax errors
-
✅ dorian-ui: 329 packages audited
- 2 moderate vulnerabilities (acceptable for dev environment)
- All new dependencies installed successfully
-
✅ server: 188 packages audited
- 0 vulnerabilities
- All dependencies installed successfully
All new UI components follow the existing design system:
- Colors: Maroon primary (
#6a041d), warm neutrals - Typography: DM Sans (body), Fraunces (headings)
- Spacing: Consistent with
--space-*variables - Shadows: Subtle shadows matching existing components
- Borders: Rounded corners (
--radius-lg,--radius-md) - Animations: Smooth transitions with framer-motion
- Themes: Full support for light/dark modes
None. All changes are backwards compatible. Existing workflows will continue to work with the default Groq model.
- No action required for existing users
- Default model (
llama-3.1-70b-versatile) is automatically selected - Users can change model via toolbar dropdown at any time
- Model selection persists across sessions (localStorage)
- Add model performance metrics in UI
- Add cost estimation per model
- Add user preferences for default model selection
- Add A/B testing for model recommendations
- Add analytics tracking for model usage
- Implement backend database for model selection per user account
Generated: 2026-02-09 Contributors: Claude Sonnet 4.5