Commit Graph

1612 Commits

Author SHA1 Message Date
Stijnus
b5d9055851 🔧 Fix Token Limits & Invalid JSON Response Errors (#1934)
ISSUES FIXED:
-  Invalid JSON response errors during streaming
-  Incorrect token limits causing API rejections
-  Outdated hardcoded model configurations
-  Poor error messages for API failures

SOLUTIONS IMPLEMENTED:

🎯 ACCURATE TOKEN LIMITS & CONTEXT SIZES
- OpenAI GPT-4o: 128k context (was 8k)
- OpenAI GPT-3.5-turbo: 16k context (was 8k)
- Anthropic Claude 3.5 Sonnet: 200k context (was 8k)
- Anthropic Claude 3 Haiku: 200k context (was 8k)
- Google Gemini 1.5 Pro: 2M context (was 8k)
- Google Gemini 1.5 Flash: 1M context (was 8k)
- Groq Llama models: 128k context (was 8k)
- Together models: Updated with accurate limits

�� DYNAMIC MODEL FETCHING ENHANCED
- Smart context detection from provider APIs
- Automatic fallback to known limits when API unavailable
- Safety caps to prevent token overflow (100k max)
- Intelligent model filtering and deduplication

🛡️ IMPROVED ERROR HANDLING
- Specific error messages for Invalid JSON responses
- Token limit exceeded warnings with solutions
- API key validation with clear guidance
- Rate limiting detection and user guidance
- Network timeout handling

 PERFORMANCE OPTIMIZATIONS
- Reduced static models from 40+ to 12 essential
- Enhanced streaming error detection
- Better API response validation
- Improved context window display (shows M/k units)

🔧 TECHNICAL IMPROVEMENTS
- Dynamic model context detection from APIs
- Enhanced streaming reliability
- Better token limit enforcement
- Comprehensive error categorization
- Smart model validation before API calls

IMPACT:
 Eliminates Invalid JSON response errors
 Prevents token limit API rejections
 Provides accurate model capabilities
 Improves user experience with clear errors
 Enables full utilization of modern LLM context windows
2025-08-29 20:53:57 +02:00
Stijnus
85ce6af7b4 Merge pull request #1936 from Stijnus/feature/github-deployment-cleanup
feat: github deployment cleanup
2025-08-29 20:53:23 +02:00
Stijnus
10ac0ebd8a fix: final formatting and code quality improvements
- Apply final Prettier formatting to DeployButton.tsx
- Ensure GitHubDeploy.client.tsx meets code standards
- Complete code quality improvements for GitHub deployment feature
2025-08-29 20:48:44 +02:00
Stijnus
04da90f0c0 Merge upstream/main - resolve conflicts with GitHub deployment feature
- Resolved merge conflicts in DeployButton.tsx
- Kept upstream versions of GitHubDeploy.client.tsx and GitHubDeploymentDialog.tsx
- Fixed linting issues and formatting
- Maintained proper GitHub deployment functionality
- Ready for cleanup improvements
2025-08-29 20:47:38 +02:00
Chris Ijoyah
194e0d7209 feat: add GitHub deployment functionality (#1904)
- Add GitHubDeploy component to handle build and file preparation
- Create GitHubDeploymentDialog for repository selection and creation
- Update DeployButton to include GitHub deployment option
- Support both new and existing GitHub repositories
- Allow choosing between public and private repositories
2025-08-29 20:40:33 +02:00
Stijnus
8168b9b4db fix: additional linting fixes for GitHub deployment components
- Fix formatting issues in DeployButton.tsx
- Resolve linting errors in GitHubDeploy.client.tsx
- Ensure all components meet code quality standards
2025-08-29 20:32:23 +02:00
Stijnus
8ecb780cff refactor: remove redundant GitHub sync functionality
- Remove 'Push to GitHub' sync button from Workbench
- Clean up unused parameters and imports
- Improve UX by using only the proper GitHub deployment feature
- Fix ESLint and Prettier formatting issues
- Fix unused variable in GitHubDeploymentDialog

This removes the old sync functionality in favor of the comprehensive
GitHub deployment feature that builds projects before deployment.
2025-08-29 20:29:08 +02:00
Keoma Wright
1d26deadd0 fix: resolve code output to chat instead of files (#1797)
## Summary
Comprehensive fix for AI models (Claude 3.7, DeepSeek) that output code to chat instead of creating workspace files. The enhanced parser automatically detects and wraps code blocks in proper artifact tags.

## Key Improvements

### 1. Enhanced Message Parser
- Detects code blocks that should be files even without artifact tags
- Six pattern detection strategies for different code output formats
- Automatic file path extraction and normalization
- Language detection from file extensions

### 2. Pattern Detection
- File creation/modification mentions with code blocks
- Code blocks with filename comments
- File paths followed by code blocks
- "In <filename>" context patterns
- HTML/Component structure detection
- Package.json and config file detection

### 3. Intelligent Processing
- Prevents duplicate processing with block hashing
- Validates file paths before wrapping
- Preserves original content when invalid
- Automatic language detection for syntax highlighting

## Technical Implementation

The solution extends the existing StreamingMessageParser with enhanced detection:
- Falls back to normal parsing when artifacts are properly tagged
- Only applies enhanced detection when no artifacts found
- Maintains backward compatibility with existing models

## Testing
 Tested with various code output formats
 Handles multiple files in single message
 Preserves formatting and indentation
 Works with all file types and languages
 No performance impact on properly formatted messages

This fix ensures consistent file creation regardless of AI model variations.

🚀 Generated with human expertise

Co-Authored-By: Keoma Wright <founder@lovemedia.org.za>
2025-08-25 11:41:53 +00:00
Keoma Wright
39d0775b37 fix: auto-detect and convert code blocks to artifacts when missing tags
When AI models fail to use proper artifact tags, code blocks now get
automatically detected and converted to file artifacts, preventing code
from appearing in chat. The parser detects markdown code fences outside
artifacts and wraps them with proper artifact/action tags.

This fixes the issue where code would randomly appear in chat instead
of being generated as files in the workspace.

Fixes #1230

Co-Authored-By: Keoma Wright <founder@lovemedia.org.za>
2025-08-24 10:50:15 +00:00
Keoma Wright
56e602b7f4 fix: resolve .env.local not loading in docker compose
Fixes issue #1827 where Docker Compose wasn't properly loading .env.local file.

Problem:
- Docker Compose expects .env file for variable substitution but docs say to use .env.local
- This caused environment variables to not be loaded in Docker containers

Solution:
- Updated docker-compose.yaml to load both .env and .env.local files
- Created setup-env.sh script to help users sync .env.local to .env
- Updated documentation with clear instructions for Docker users
- Maintains backward compatibility with existing setups

Changes:
- Modified docker-compose.yaml to use array syntax for env_file
- Added scripts/setup-env.sh helper script
- Updated CONTRIBUTING.md and index.md documentation

This ensures environment variables work correctly in Docker while maintaining
the security best practice of using .env.local for sensitive data.

Contributed by: Keoma Wright
2025-08-24 10:31:23 +00:00
Chris Ijoyah
fdbf9ff1f7 feat: add GitHub deployment functionality
- Add GitHubDeploy component to handle build and file preparation
- Create GitHubDeploymentDialog for repository selection and creation
- Update DeployButton to include GitHub deployment option
- Support both new and existing GitHub repositories
- Allow choosing between public and private repositories
2025-08-12 15:46:44 +02:00
xKevIsDev
2ce58efe9c refactor: update styling and structure in ToolInvocations and ToolCallsList components
- Changed background classes for better visual consistency.
- Simplified the structure of ToolCallsList, enhancing readability and layout.
- Improved button styles for better user interaction and accessibility.
2025-07-25 01:23:32 +01:00
KevIsDev
bab9a64ab6 Merge pull request #1877 from xKevIsDev/main
fix: remove logging of messages from chat.client
2025-07-23 00:17:13 +01:00
xKevIsDev
5a344ccd4c fix: remove logging of messages from chat.client 2025-07-23 00:16:25 +01:00
KevIsDev
8f19ccc885 Merge pull request #1876 from xKevIsDev/electron-fix
fix: update dependencies and config to fix conflicts for electron build
2025-07-22 23:30:02 +01:00
xKevIsDev
c38752abf9 fix: update dependencies and config to fix conflicts for electron build
- Removed the `signDlls` option from the `electron-builder.yml` configuration.
- Updated `electron-store` to version 10.1.0 and `electron-builder` to version 26.0.12 in `package.json`. Ensuring compatibility and improved functionality.
2025-07-22 23:26:55 +01:00
KevIsDev
8f173e37d6 Merge pull request #1863 from xKevIsDev/main
fix: enhance UserMessage component to support image parts and improve rendering
2025-07-21 19:17:55 +01:00
KevIsDev
f6b0447411 Merge pull request #1860 from xKevIsDev/openrouter-filter
feat: add filter for free models in ModelSelector component for OpenRouter
2025-07-19 01:27:43 +01:00
xKevIsDev
1554e2b0ce fix: enhance UserMessage component to support image parts and improve rendering
- Updated UserMessage to accept a new `parts` prop for handling different message types, including images.
- Refactored image handling to extract and display images from the parts array, ensuring proper rendering of image content.
- Adjusted the layout and styling of the UserMessage component for better visual presentation.
2025-07-19 01:19:43 +01:00
xKevIsDev
26573277e1 feat: add filter for free models in ModelSelector component for OpenRouter
- Introduced a helper function `isModelLikelyFree` to identify models that are free based on their label or name.
- Added a toggle button to filter models, allowing users to view only free models when using the OpenRouter provider.
- Updated the model filtering logic to incorporate the free models filter and adjusted the UI to reflect the count of free models found.
- Reset the free models filter when the provider changes to ensure accurate results.
2025-07-17 23:57:24 +01:00
KevIsDev
897c08a8bd Merge pull request #1859 from xKevIsDev/groq-fix
fix: update Groq maxTokenAllowed calculation to enforce upper limit
2025-07-17 23:29:11 +01:00
xKevIsDev
e9e117c62f fix: update maxTokenAllowed calculation to enforce upper limit
- Changed the maxTokenAllowed property to use Math.min for limiting the value to a maximum of 16384 tokens, ensuring better control over context window size.
2025-07-17 23:26:19 +01:00
KevIsDev
8be9e6f622 Merge pull request #1849 from xKevIsDev/mcp-token-usage
fix: add text sanitization function to clean user and assistant messages of new parts object
2025-07-16 02:36:08 +01:00
KevIsDev
1af54ecda9 fix: add text sanitization function to clean user and assistant messages of new parts object
- Introduced a `sanitizeText` function to remove specific HTML elements and content from messages, enhancing the integrity of the streamed text.
- Updated the `streamText` function to utilize `sanitizeText` for both user and assistant messages, ensuring consistent message formatting.
- Adjusted message processing to maintain the structure while applying sanitization.
2025-07-16 02:29:51 +01:00
KevIsDev
ece763e4c9 Merge pull request #1843 from xKevIsDev/mcp-tweaks
refactor(chat): streamline AssistantMessage and ToolInvocations components
2025-07-13 09:39:45 +01:00
KevIsDev
c93f6d0d0a refactor(chat): streamline AssistantMessage and ToolInvocations components
- Moved the Markdown rendering for content in AssistantMessage to a new position for better structure.
- Updated ToolInvocations component to enhance UI with improved spacing and keyboard shortcut handling for tool execution.
- Added state management for expanded tool details and integrated keyboard shortcuts for approving and rejecting tool calls.
2025-07-12 10:40:49 +01:00
KevIsDev
7408fc7b42 Merge pull request #1839 from roaminro/feature/mcp
feat(mcp): add Model Context Protocol integration
2025-07-12 09:54:35 +01:00
Roamin
2b40b8af52 fix(chat): rename processedMessage to processedMessages for clarity 2025-07-11 04:08:34 +00:00
Roamin
c649e7982e style(icons): update icon for mcp 2025-07-10 20:12:45 +00:00
Roamin
9d82f7ecab chore(chat): remove duplicate type import 2025-07-10 19:12:30 +00:00
Roamin
2c82860ab2 Merge branch 'main' into feature/mcp 2025-07-10 15:03:25 -04:00
Roamin
715fade81e feat(mcp): add Model Context Protocol integration
Add  MCP integration including:
- New MCP settings tab with server configuration
- Tool invocation UI components
- API endpoints for MCP management
- Integration with chat system for tool execution
- Example configurations
2025-07-10 19:00:03 +00:00
xKevIsDev
56d43e6636 feat: add SolidJS starter template and update icon files
- Introduced a new SolidJS starter template with relevant metadata including description, tags, and GitHub repository link.
- Updated the FrameworkLink component to enhance the hover effect with grayscale transition.
- Replaced multiple SVG icons with updated versions for Angular, Astro, Qwik, React, Remix, Slidev, Svelte, TypeScript, Vite, and Vue, ensuring improved visuals and consistency across the application.
2025-07-10 18:57:48 +00:00
xKevIsDev
a84b1e7c63 chore: remove redundant features
- Remove getPackageJson and getGitInfo from vite config
- Remove Updates tab and all related logic as there was no true update logic in the codebase
2025-07-10 18:57:48 +00:00
xKevIsDev
26c46088bc feat: enhance error handling for LLM API calls
Add LLM error alert functionality to display specific error messages based on API responses. Introduce new LlmErrorAlertType interface for structured error alerts. Update chat components to manage and display LLM error alerts effectively, improving user feedback during error scenarios.
2025-07-10 18:54:12 +00:00
KevIsDev
590363cf6e refactor: remove developer mode and related components
add glowing effect component for tab tiles
improve tab tile appearance with new glow effect
add 'none' log level and simplify log level handling
simplify tab configuration store by removing developer tabs
remove useDebugStatus hook and related debug functionality
remove system info endpoints no longer needed
2025-07-10 18:53:33 +00:00
xKevIsDev
22cb5977be feat: enhance Vercel deployment process with framework detection and source file handling
- Implemented a function to detect project frameworks based on package.json and configuration files.
- Added support for including source files in the deployment request for frameworks that require building.
- Updated the action function to handle framework detection and adjust deployment configuration accordingly.
- Removed unnecessary console logs and improved error handling for file reading operations.
2025-07-10 18:43:52 +00:00
Roamin
5de162eec8 feat(mcp): add Model Context Protocol integration
Add  MCP integration including:
- New MCP settings tab with server configuration
- Tool invocation UI components
- API endpoints for MCP management
- Integration with chat system for tool execution
- Example configurations
2025-07-10 17:54:15 +00:00
KevIsDev
66c4fb69be Merge pull request #1836 from xKevIsDev/templates
feat: add SolidJS starter template and update icon files
2025-07-09 00:37:15 +01:00
xKevIsDev
bab2c66fa4 feat: add SolidJS starter template and update icon files
- Introduced a new SolidJS starter template with relevant metadata including description, tags, and GitHub repository link.
- Updated the FrameworkLink component to enhance the hover effect with grayscale transition.
- Replaced multiple SVG icons with updated versions for Angular, Astro, Qwik, React, Remix, Slidev, Svelte, TypeScript, Vite, and Vue, ensuring improved visuals and consistency across the application.
2025-07-09 00:24:07 +01:00
KevIsDev
a9b0ae682f Merge pull request #1826 from xKevIsDev/error-fix
fix: enhanced error handling for llm api, general cleanup
2025-07-08 02:11:37 +01:00
xKevIsDev
7535e16160 chore: remove redundant features
- Remove getPackageJson and getGitInfo from vite config
- Remove Updates tab and all related logic as there was no true update logic in the codebase
2025-07-08 02:08:32 +01:00
KevIsDev
8061156296 Merge pull request #1833 from xKevIsDev/deployment-fix
feat: enhance Vercel deployment process with framework detection and source file handling
2025-07-08 01:23:58 +01:00
xKevIsDev
b5d17f2d7e feat: enhance Vercel deployment process with framework detection and source file handling
- Implemented a function to detect project frameworks based on package.json and configuration files.
- Added support for including source files in the deployment request for frameworks that require building.
- Updated the action function to handle framework detection and adjust deployment configuration accordingly.
- Removed unnecessary console logs and improved error handling for file reading operations.
2025-07-08 01:20:58 +01:00
Roamin
591c84572d chore(deps): update ai package to 4.3.16 2025-07-05 22:11:06 +00:00
xKevIsDev
9d6ff741d9 feat: enhance error handling for LLM API calls
Add LLM error alert functionality to display specific error messages based on API responses. Introduce new LlmErrorAlertType interface for structured error alerts. Update chat components to manage and display LLM error alerts effectively, improving user feedback during error scenarios.
2025-07-03 11:43:58 +01:00
KevIsDev
46611a8172 refactor: remove developer mode and related components
add glowing effect component for tab tiles
improve tab tile appearance with new glow effect
add 'none' log level and simplify log level handling
simplify tab configuration store by removing developer tabs
remove useDebugStatus hook and related debug functionality
remove system info endpoints no longer needed
2025-07-01 14:26:42 +01:00
KevIsDev
ac9fba59f6 Merge pull request #1821 from xKevIsDev/main
feat: add terminal detachment
2025-07-01 11:09:53 +01:00
KevIsDev
7ce263e0f5 feat: add terminal detachment functionality
implement terminal cleanup when closing tabs or unmounting component

remove unused actionRunner prop across components

delete unused file-watcher utility
2025-07-01 10:53:09 +01:00
KevIsDev
a3fa024686 fix: update template selection prompt instructions
Add explicit instructions about Vite preference and shadcn templates requirement
This has been added due to current shadcn templates using extremely large amounts of tokens at the moment
2025-07-01 10:42:20 +01:00