- 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.
## 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>
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>
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
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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
- 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.
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.
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
- 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.
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
- 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.
- 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.
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.
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
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
- Refactored the new fine-tuned system prompt to heavily reduce token usage by removing redundent snippets and duplicate instructions while keeping the same strict rules in place.
- Default prompt now uses this system prompt to reduce token usage by default
Implement two different methods for fetching repository contents:
1. A new Cloudflare-compatible method using GitHub Contents API with batch processing
2. The existing zip-based method for non-Cloudflare environments
The changes include better error handling, environment detection, and support for GitHub tokens from both Cloudflare context and process.env. Also added size limits and filtering for large files while allowing lock files.