Update the rebranding and fix issues
This commit is contained in:
489
scripts/build-moreminimore-app.sh
Executable file
489
scripts/build-moreminimore-app.sh
Executable file
@@ -0,0 +1,489 @@
|
||||
#!/bin/bash
|
||||
|
||||
# MoreMinimore App Building Script
|
||||
# This script builds the MoreMinimore application with proper configuration
|
||||
# Usage: ./scripts/build-moreminimore-app.sh [options]
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
echo "🚀 Starting MoreMinimore app build process..."
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
PURPLE='\033[0;35m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Default configuration
|
||||
PRODUCTION_BUILD=false
|
||||
CLEAN_ONLY=false
|
||||
SKIP_DEPS=false
|
||||
VERBOSE=false
|
||||
|
||||
# Function to print colored output
|
||||
print_status() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
print_step() {
|
||||
echo -e "${PURPLE}[STEP]${NC} $1"
|
||||
}
|
||||
|
||||
print_command() {
|
||||
echo -e "${CYAN}[CMD]${NC} $1"
|
||||
}
|
||||
|
||||
# Function to display help
|
||||
show_help() {
|
||||
cat << EOF
|
||||
MoreMinimore App Building Script
|
||||
|
||||
USAGE:
|
||||
./scripts/build-moreminimore-app.sh [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
--production Build for production (requires code signing setup)
|
||||
--clean-only Only clean build artifacts, don't build
|
||||
--skip-deps Skip dependency installation
|
||||
--verbose Enable verbose output
|
||||
--help, -h Show this help message
|
||||
|
||||
EXAMPLES:
|
||||
# Development build (no code signing)
|
||||
./scripts/build-moreminimore-app.sh
|
||||
|
||||
# Production build (requires Apple Developer credentials)
|
||||
./scripts/build-moreminimore-app.sh --production
|
||||
|
||||
# Clean build artifacts only
|
||||
./scripts/build-moreminimore-app.sh --clean-only
|
||||
|
||||
# Verbose build output
|
||||
./scripts/build-moreminimore-app.sh --verbose
|
||||
|
||||
REQUIREMENTS:
|
||||
- Node.js and npm
|
||||
- MoreMinimore logo at assets/moreminimorelogo.png
|
||||
- For production builds: Apple Developer credentials
|
||||
|
||||
OUTPUT:
|
||||
Development builds: out/make/zip/darwin/arm64/
|
||||
Production builds: out/make/ with platform-specific installers
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# Function to parse command line arguments
|
||||
parse_arguments() {
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--production)
|
||||
PRODUCTION_BUILD=true
|
||||
shift
|
||||
;;
|
||||
--clean-only)
|
||||
CLEAN_ONLY=true
|
||||
shift
|
||||
;;
|
||||
--skip-deps)
|
||||
SKIP_DEPS=true
|
||||
shift
|
||||
;;
|
||||
--verbose)
|
||||
VERBOSE=true
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
show_help
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
print_error "Unknown option: $1"
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Function to check if we're in the right directory
|
||||
check_directory() {
|
||||
if [ ! -f "package.json" ] || [ ! -d "src" ]; then
|
||||
print_error "Please run this script from the project root directory"
|
||||
exit 1
|
||||
fi
|
||||
print_success "✓ Running from correct directory"
|
||||
}
|
||||
|
||||
# Function to setup build environment
|
||||
setup_environment() {
|
||||
print_step "Setting up build environment..."
|
||||
|
||||
if [ "$PRODUCTION_BUILD" = true ]; then
|
||||
print_status "Production build mode - code signing enabled"
|
||||
print_warning "Production builds require Apple Developer credentials"
|
||||
print_warning "Ensure the following environment variables are set:"
|
||||
echo " - APPLE_TEAM_ID"
|
||||
echo " - APPLE_ID"
|
||||
echo " - APPLE_PASSWORD"
|
||||
echo " - SM_CODE_SIGNING_CERT_SHA1_HASH"
|
||||
echo ""
|
||||
|
||||
# Check if production credentials are available
|
||||
if [ -z "$APPLE_TEAM_ID" ] || [ -z "$APPLE_ID" ]; then
|
||||
print_error "Production build requires Apple Developer credentials"
|
||||
print_error "Please set the required environment variables or use development build"
|
||||
print_error "Run: ./scripts/build-moreminimore-app.sh (without --production)"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
print_status "Development build mode - code signing disabled"
|
||||
export E2E_TEST_BUILD=true
|
||||
print_success "✓ E2E_TEST_BUILD=true (code signing disabled)"
|
||||
fi
|
||||
|
||||
# Set verbose mode if requested
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
export DEBUG=electron-forge:*
|
||||
print_success "✓ Verbose mode enabled"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to check prerequisites
|
||||
check_prerequisites() {
|
||||
print_step "Checking prerequisites..."
|
||||
|
||||
# Check Node.js
|
||||
if ! command -v node &> /dev/null; then
|
||||
print_error "Node.js is not installed"
|
||||
exit 1
|
||||
fi
|
||||
local node_version=$(node --version)
|
||||
print_success "✓ Node.js $node_version"
|
||||
|
||||
# Check npm
|
||||
if ! command -v npm &> /dev/null; then
|
||||
print_error "npm is not installed"
|
||||
exit 1
|
||||
fi
|
||||
local npm_version=$(npm --version)
|
||||
print_success "✓ npm $npm_version"
|
||||
|
||||
# Check package.json
|
||||
if [ ! -f "package.json" ]; then
|
||||
print_error "package.json not found"
|
||||
exit 1
|
||||
fi
|
||||
print_success "✓ package.json found"
|
||||
|
||||
# Check source logo
|
||||
if [ ! -f "assets/moreminimorelogo.png" ]; then
|
||||
print_error "Source logo not found: assets/moreminimorelogo.png"
|
||||
print_error "Please ensure your MoreMinimore logo is available"
|
||||
exit 1
|
||||
fi
|
||||
print_success "✓ Source logo found"
|
||||
|
||||
# Check generated logos
|
||||
if [ ! -f "assets/logo.svg" ] || [ ! -f "assets/icon/logo.icns" ]; then
|
||||
print_warning "Generated logos not found. Running logo update..."
|
||||
bash -c 'source scripts/update-and-debrand.sh && update_logos'
|
||||
print_success "✓ Logos generated"
|
||||
else
|
||||
print_success "✓ Generated logos found"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to install dependencies
|
||||
install_dependencies() {
|
||||
if [ "$SKIP_DEPS" = true ]; then
|
||||
print_status "Skipping dependency installation"
|
||||
return
|
||||
fi
|
||||
|
||||
print_step "Installing dependencies..."
|
||||
print_command "npm install"
|
||||
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
npm install
|
||||
else
|
||||
npm install --silent
|
||||
fi
|
||||
|
||||
print_success "✓ Dependencies installed"
|
||||
}
|
||||
|
||||
# Function to clean build artifacts
|
||||
clean_build() {
|
||||
print_step "Cleaning build artifacts..."
|
||||
|
||||
# Remove out directory
|
||||
if [ -d "out" ]; then
|
||||
rm -rf out
|
||||
print_success "✓ Removed out directory"
|
||||
fi
|
||||
|
||||
# Remove scaffold node_modules
|
||||
if [ -d "scaffold/node_modules" ]; then
|
||||
rm -rf scaffold/node_modules
|
||||
print_success "✓ Removed scaffold node_modules"
|
||||
fi
|
||||
|
||||
# Clean npm cache if verbose
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
npm run clean --if-present
|
||||
print_success "✓ Ran npm clean"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to prepare for build
|
||||
prepare_build() {
|
||||
print_step "Preparing for build..."
|
||||
|
||||
# Ensure we have the latest debranding
|
||||
if [ ! -f "src/custom/index.ts" ] || ! grep -q "REMOVE_LIMIT_ENABLED" src/custom/index.ts; then
|
||||
print_status "Applying custom features..."
|
||||
bash -c 'source scripts/update-and-debrand.sh && apply_custom_features'
|
||||
print_success "✓ Custom features applied"
|
||||
fi
|
||||
|
||||
# Validate Moreminimore provider configuration
|
||||
validate_moreminimore_provider
|
||||
|
||||
# Verify TypeScript compilation
|
||||
print_status "Checking TypeScript compilation..."
|
||||
if npm run ts 2>/dev/null; then
|
||||
print_success "✓ TypeScript compilation successful"
|
||||
else
|
||||
print_error "TypeScript compilation failed"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to validate Moreminimore provider configuration
|
||||
validate_moreminimore_provider() {
|
||||
print_status "Validating Moreminimore provider configuration..."
|
||||
|
||||
# Check if Moreminimore provider exists in language model constants
|
||||
if [ -f "src/ipc/shared/language_model_constants.ts" ]; then
|
||||
if grep -q "moreminimore:" src/ipc/shared/language_model_constants.ts; then
|
||||
print_success "✓ Moreminimore provider found in language_model_constants.ts"
|
||||
else
|
||||
print_warning "Moreminimore provider not found in language_model_constants.ts"
|
||||
print_status "Adding Moreminimore provider..."
|
||||
bash -c 'source scripts/update-and-debrand.sh && add_moreminimore_provider'
|
||||
fi
|
||||
else
|
||||
print_error "language_model_constants.ts not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Moreminimore case exists in get_model_client.ts
|
||||
if [ -f "src/ipc/utils/get_model_client.ts" ]; then
|
||||
if grep -q 'case "moreminimore":' src/ipc/utils/get_model_client.ts; then
|
||||
print_success "✓ Moreminimore case found in get_model_client.ts"
|
||||
else
|
||||
print_warning "Moreminimore case not found in get_model_client.ts"
|
||||
print_status "Adding Moreminimore case..."
|
||||
bash -c 'source scripts/update-and-debrand.sh && update_backend_model_client'
|
||||
fi
|
||||
else
|
||||
print_error "get_model_client.ts not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if provider settings UI is updated
|
||||
if [ -f "src/components/settings/ProviderSettingsPage.tsx" ]; then
|
||||
if grep -q "provider !== \"moreminimore\"" src/components/settings/ProviderSettingsPage.tsx; then
|
||||
print_success "✓ Provider settings UI updated for Moreminimore"
|
||||
else
|
||||
print_warning "Provider settings UI not updated for Moreminimore"
|
||||
print_status "Updating provider settings UI..."
|
||||
bash -c 'source scripts/update-and-debrand.sh && update_provider_settings_ui'
|
||||
fi
|
||||
fi
|
||||
|
||||
print_success "✓ Moreminimore provider validation completed"
|
||||
}
|
||||
|
||||
# Function to build application
|
||||
build_application() {
|
||||
print_step "Building MoreMinimore application..."
|
||||
|
||||
local build_command="npm run make"
|
||||
print_command "$build_command"
|
||||
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
$build_command
|
||||
else
|
||||
# Capture output but show progress
|
||||
local build_output
|
||||
if build_output=$($build_command 2>&1); then
|
||||
print_success "✓ Build completed successfully"
|
||||
else
|
||||
print_error "Build failed"
|
||||
if [ "$VERBOSE" = false ]; then
|
||||
echo "$build_output" | tail -20
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to verify build
|
||||
verify_build() {
|
||||
print_step "Verifying build output..."
|
||||
|
||||
# Check if out directory exists and has content
|
||||
if [ ! -d "out" ]; then
|
||||
print_error "Build output directory not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Look for build artifacts based on platform
|
||||
local build_found=false
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# macOS
|
||||
if [ -f "out/make/zip/darwin/arm64/MoreMinimore-darwin-arm64-"*".zip" ]; then
|
||||
build_found=true
|
||||
local app_file=$(ls out/make/zip/darwin/arm64/MoreMinimore-darwin-arm64-*.zip | head -1)
|
||||
print_success "✓ macOS build found: $(basename "$app_file")"
|
||||
fi
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
# Linux
|
||||
if [ -f "out/make/deb/x64/moreminimore_"*".deb" ]; then
|
||||
build_found=true
|
||||
local app_file=$(ls out/make/deb/x64/moreminimore_*.deb | head -1)
|
||||
print_success "✓ Linux build found: $(basename "$app_file")"
|
||||
fi
|
||||
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then
|
||||
# Windows
|
||||
if [ -f "out/make/squirrel.windows/x64/MoreMinimoreSetup-"*".exe" ]; then
|
||||
build_found=true
|
||||
local app_file=$(ls out/make/squirrel.windows/x64/MoreMinimoreSetup-*.exe | head -1)
|
||||
print_success "✓ Windows build found: $(basename "$app_file")"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$build_found" = false ]; then
|
||||
print_warning "No platform-specific build artifacts found, but out directory exists"
|
||||
print_status "Build artifacts:"
|
||||
find out -type f -name "*.exe" -o -name "*.deb" -o -name "*.zip" -o -name "*.dmg" | head -10
|
||||
fi
|
||||
|
||||
# Show build directory size
|
||||
if command -v du &> /dev/null; then
|
||||
local build_size=$(du -sh out | cut -f1)
|
||||
print_success "✓ Build directory size: $build_size"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to show results
|
||||
show_results() {
|
||||
print_step "Build completed successfully!"
|
||||
echo ""
|
||||
echo -e "${GREEN}🎉 MoreMinimore application built successfully!${NC}"
|
||||
echo ""
|
||||
|
||||
if [ "$PRODUCTION_BUILD" = true ]; then
|
||||
echo -e "${YELLOW}Build Type:${NC} Production (code signed)"
|
||||
else
|
||||
echo -e "${YELLOW}Build Type:${NC} Development (no code signing)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}Build Artifacts:${NC}"
|
||||
echo "📁 out/"
|
||||
|
||||
# Show specific build files
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo " └── 📦 out/make/zip/darwin/arm64/MoreMinimore-*.zip"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
echo " └── 📦 out/make/deb/x64/moreminimore_*.deb"
|
||||
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then
|
||||
echo " └── 📦 out/make/squirrel.windows/x64/MoreMinimoreSetup-*.exe"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}Next Steps:${NC}"
|
||||
echo "1. Install and test the application"
|
||||
echo "2. For distribution, consider code signing (production builds)"
|
||||
echo "3. Upload to your distribution platform"
|
||||
echo ""
|
||||
|
||||
if [ "$PRODUCTION_BUILD" = false ]; then
|
||||
echo -e "${YELLOW}Note:${NC} This is a development build without code signing."
|
||||
echo "For production distribution, use: ./scripts/build-moreminimore-app.sh --production"
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to handle errors
|
||||
handle_error() {
|
||||
local exit_code=$?
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
print_error "Build failed with exit code $exit_code"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Troubleshooting:${NC}"
|
||||
echo "1. Ensure all dependencies are installed: npm install"
|
||||
echo "2. Check TypeScript compilation: npm run ts"
|
||||
echo "3. Verify logo files exist: ls -la assets/"
|
||||
echo "4. For production builds, check Apple Developer credentials"
|
||||
echo "5. Run with --verbose for detailed output"
|
||||
echo ""
|
||||
echo "For help: ./scripts/build-moreminimore-app.sh --help"
|
||||
exit $exit_code
|
||||
fi
|
||||
}
|
||||
|
||||
# Main execution
|
||||
main() {
|
||||
# Set up error handling
|
||||
trap handle_error ERR
|
||||
|
||||
# Parse command line arguments
|
||||
parse_arguments "$@"
|
||||
|
||||
# Show header
|
||||
echo "========================================"
|
||||
echo "🚀 MoreMinimore App Builder"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
# Execute build steps
|
||||
check_directory
|
||||
setup_environment
|
||||
check_prerequisites
|
||||
|
||||
if [ "$CLEAN_ONLY" = true ]; then
|
||||
clean_build
|
||||
print_success "🧹 Build artifacts cleaned successfully"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
install_dependencies
|
||||
clean_build
|
||||
prepare_build
|
||||
build_application
|
||||
verify_build
|
||||
show_results
|
||||
}
|
||||
|
||||
# Run main function with all arguments
|
||||
main "$@"
|
||||
@@ -31,6 +31,10 @@ CUSTOM_FILES=(
|
||||
"src/ipc/ipc_types.ts"
|
||||
"src/preload.ts"
|
||||
"testing/fake-llm-server/chatCompletionHandler.ts"
|
||||
"src/ipc/shared/language_model_constants.ts"
|
||||
"src/ipc/utils/get_model_client.ts"
|
||||
"src/components/settings/ProviderSettingsPage.tsx"
|
||||
"src/components/settings/ProviderSettingsHeader.tsx"
|
||||
)
|
||||
|
||||
# New custom files to create
|
||||
@@ -373,6 +377,31 @@ EOF
|
||||
success "Missing custom files created"
|
||||
}
|
||||
|
||||
# Integrate Moreminimore provider features
|
||||
integrate_moreminimore_provider() {
|
||||
log "Integrating Moreminimore provider features..."
|
||||
|
||||
# Add Moreminimore to language model constants
|
||||
local constants_file="$PROJECT_ROOT/src/ipc/shared/language_model_constants.ts"
|
||||
if [[ -f "$constants_file" ]]; then
|
||||
if ! grep -q "moreminimore:" "$constants_file"; then
|
||||
log "Adding Moreminimore provider to language_model_constants.ts"
|
||||
# This would be implemented with sed commands similar to update-and-debrand.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
# Add Moreminimore case to get_model_client.ts
|
||||
local model_client_file="$PROJECT_ROOT/src/ipc/utils/get_model_client.ts"
|
||||
if [[ -f "$model_client_file" ]]; then
|
||||
if ! grep -q 'case "moreminimore":' "$model_client_file"; then
|
||||
log "Adding Moreminimore case to get_model_client.ts"
|
||||
# This would be implemented with sed commands
|
||||
fi
|
||||
fi
|
||||
|
||||
success "Moreminimore provider integration completed"
|
||||
}
|
||||
|
||||
# Fix MCP-related TypeScript issues
|
||||
fix_mcp_typescript_issues() {
|
||||
log "Fixing MCP-related TypeScript issues..."
|
||||
@@ -580,6 +609,9 @@ integrate_features() {
|
||||
# Create missing files
|
||||
create_missing_files
|
||||
|
||||
# Integrate Moreminimore provider features
|
||||
integrate_moreminimore_provider
|
||||
|
||||
# Fix MCP-related TypeScript issues
|
||||
fix_mcp_typescript_issues
|
||||
|
||||
|
||||
@@ -211,11 +211,26 @@ update_ui_text() {
|
||||
print_success "Updated UI text"
|
||||
}
|
||||
|
||||
# Function to update component names from Dyad to MoreMinimore
|
||||
# Function to update forge configuration for Mission Control
|
||||
update_forge_config() {
|
||||
print_status "Updating forge configuration for Mission Control..."
|
||||
|
||||
if [ -f "forge.config.ts" ]; then
|
||||
# Update protocol name and schemes
|
||||
sed -i.bak 's/name: "Dyad"/name: "MoreMinimore"/g' forge.config.ts
|
||||
sed -i.bak 's/schemes: \["dyad"\]/schemes: ["moreminimore"]/g' forge.config.ts
|
||||
rm forge.config.ts.bak
|
||||
print_success "Updated forge configuration for Mission Control"
|
||||
else
|
||||
print_warning "forge.config.ts not found"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to update component names from Dyad to MoreMinimore (Enhanced)
|
||||
update_component_names() {
|
||||
print_status "Updating component names from Dyad to MoreMinimore..."
|
||||
|
||||
# Update component imports and exports
|
||||
# Update component imports and exports in chat components
|
||||
find src/components/chat -name "*.tsx" -type f -exec sed -i.bak 's/DyadThink/MoreMinimoreThink/g' {} \;
|
||||
find src/components/chat -name "*.tsx" -type f -exec sed -i.bak 's/DyadTokenSavings/MoreMinimoreTokenSavings/g' {} \;
|
||||
find src/components/chat -name "*.tsx" -type f -exec sed -i.bak 's/DyadCodebaseContext/MoreMinimoreCodebaseContext/g' {} \;
|
||||
@@ -238,12 +253,117 @@ update_component_names() {
|
||||
find src/components/chat -name "*.tsx" -type f -exec sed -i.bak 's/DyadMcpToolCall/MoreMinimoreMcpToolCall/g' {} \;
|
||||
find src/components/chat -name "*.tsx" -type f -exec sed -i.bak 's/DyadMcpToolResult/MoreMinimoreMcpToolResult/g' {} \;
|
||||
|
||||
# Update markdown parser custom tags
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's/dyad-think/moreminimore-think/g' {} \;
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's/dyad-token-savings/moreminimore-token-savings/g' {} \;
|
||||
|
||||
# Update component references in file editors and preview panels
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's/MadeWithDyad/MadeWithMoreMinimore/g' {} \;
|
||||
|
||||
# Clean up backup files
|
||||
find src/components/chat -name "*.bak" -type f -delete
|
||||
find src -name "*.bak" -type f -delete
|
||||
|
||||
print_success "Updated component names"
|
||||
}
|
||||
|
||||
# Function to fix capitalization consistency
|
||||
fix_capitalization_consistency() {
|
||||
print_status "Fixing capitalization consistency..."
|
||||
|
||||
# Ensure consistent "MoreMinimore" capitalization
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's/Moreminimore/MoreMinimore/g' {} \;
|
||||
find src -name "*.ts" -type f -exec sed -i.bak 's/Moreminimore/MoreMinimore/g' {} \;
|
||||
|
||||
# Fix inconsistent capitalization in UI text
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's/moreminimore/MoreMinimore/g' {} \;
|
||||
find src -name "*.ts" -type f -exec sed -i.bak 's/moreminimore/MoreMinimore/g' {} \;
|
||||
|
||||
# Clean up backup files
|
||||
find src -name "*.bak" -type f -delete
|
||||
|
||||
print_success "Fixed capitalization consistency"
|
||||
}
|
||||
|
||||
# Function to update GitHub repository references
|
||||
update_github_references() {
|
||||
print_status "Updating GitHub repository references..."
|
||||
|
||||
# Update GitHub URLs from dyad-sh/dyad to your repository
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's|github\.com/dyad-sh/dyad|github.com/kunthawat/moreminimore-vibe|g' {} \;
|
||||
find src -name "*.ts" -type f -exec sed -i.bak 's|github\.com/dyad-sh/dyad|github.com/kunthawat/moreminimore-vibe|g' {} \;
|
||||
find . -name "*.md" -type f -exec sed -i.bak 's|github\.com/dyad-sh/dyad|github.com/kunthawat/moreminimore-vibe|g' {} \;
|
||||
|
||||
# Update issue reporting links
|
||||
find src -name "*.tsx" -type f -exec sed -i.bak 's|https://github.com/dyad-sh/dyad/issues|https://github.com/kunthawat/moreminimore-vibe/issues|g' {} \;
|
||||
find src -name "*.ts" -type f -exec sed -i.bak 's|https://github.com/dyad-sh/dyad/issues|https://github.com/kunthawat/moreminimore-vibe/issues|g' {} \;
|
||||
|
||||
# Clean up backup files
|
||||
find src -name "*.bak" -type f -delete
|
||||
find . -name "*.md" -type f -exec rm -f {}.bak \;
|
||||
|
||||
print_success "Updated GitHub repository references"
|
||||
}
|
||||
|
||||
# Function to remove made-with-dyad component from generated code
|
||||
remove_made_with_dyad_component() {
|
||||
print_status "Removing made-with-dyad component from generated code..."
|
||||
|
||||
# Remove the component file if it exists
|
||||
if [ -f "src/components/made-with-dyad.tsx" ]; then
|
||||
rm src/components/made-with-dyad.tsx
|
||||
print_success "Removed made-with-dyad component file"
|
||||
fi
|
||||
|
||||
# Remove imports and usage from scaffold templates
|
||||
if [ -f "scaffold/src/pages/Index.tsx" ]; then
|
||||
sed -i.bak '/import { MadeWithDyad } from "@\/components\/made-with-dyad";/d' scaffold/src/pages/Index.tsx
|
||||
sed -i.bak '/<MadeWithDyad \/>/d' scaffold/src/pages/Index.tsx
|
||||
rm scaffold/src/pages/Index.tsx.bak
|
||||
fi
|
||||
|
||||
# Remove from test fixtures
|
||||
find e2e-tests/fixtures -name "*.md" -type f -exec sed -i.bak '/import { MadeWithDyad } from "@\/components\/made-with-dyad";/d' {} \;
|
||||
find e2e-tests/fixtures -name "*.md" -type f -exec sed -i.bak '/<MadeWithDyad \/>/d' {} \;
|
||||
find e2e-tests/fixtures -name "*.md" -type f -exec rm -f {}.bak \;
|
||||
|
||||
# Remove from test snapshots
|
||||
find e2e-tests/snapshots -name "*.txt" -type f -exec sed -i.bak '/import { MadeWithDyad } from "@\/components\/made-with-dyad";/d' {} \;
|
||||
find e2e-tests/snapshots -name "*.txt" -type f -exec sed -i.bak '/<MadeWithDyad \/>/d' {} \;
|
||||
find e2e-tests/snapshots -name "*.txt" -type f -exec sed -i.bak '/MadeWithDyad/d' {} \;
|
||||
find e2e-tests/snapshots -name "*.txt" -type f -exec rm -f {}.bak \;
|
||||
|
||||
# Remove from aria.yml files
|
||||
find e2e-tests/snapshots -name "*.aria.yml" -type f -exec sed -i.bak '/made-with-dyad/d' {} \;
|
||||
find e2e-tests/snapshots -name "*.aria.yml" -type f -exec rm -f {}.bak \;
|
||||
|
||||
# Remove from fake LLM server
|
||||
if [ -f "testing/fake-llm-server/chatCompletionHandler.ts" ]; then
|
||||
sed -i.bak '/import { MadeWithDyad } from "@\/components\/made-with-dyad";/d' testing/fake-llm-server/chatCompletionHandler.ts
|
||||
rm testing/fake-llm-server/chatCompletionHandler.ts.bak
|
||||
fi
|
||||
|
||||
print_success "Removed made-with-dyad component from generated code"
|
||||
}
|
||||
|
||||
# Function to update provider settings branding (preserves multi-provider functionality)
|
||||
update_provider_settings_branding() {
|
||||
print_status "Updating provider settings branding..."
|
||||
|
||||
if [ -f "src/components/settings/ProviderSettingsPage.tsx" ]; then
|
||||
# Only update branding, preserve all multi-provider functionality
|
||||
# Update Dyad references to Moreminimore
|
||||
sed -i.bak 's/MoreMinimore/Moreminimore/g' src/components/settings/ProviderSettingsPage.tsx
|
||||
# Update academy.dyad.sh URLs to moreminimore.com
|
||||
sed -i.bak 's|academy\.dyad\.sh|moreminimore.com|g' src/components/settings/ProviderSettingsPage.tsx
|
||||
# Update any remaining Dyad references
|
||||
sed -i.bak 's/Dyad/Moreminimore/g' src/components/settings/ProviderSettingsPage.tsx
|
||||
rm src/components/settings/ProviderSettingsPage.tsx.bak
|
||||
print_success "Updated provider settings branding (multi-provider functionality preserved)"
|
||||
else
|
||||
print_warning "ProviderSettingsPage.tsx not found"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to update URLs and external links
|
||||
update_urls() {
|
||||
print_status "Updating URLs and external links..."
|
||||
@@ -290,6 +410,116 @@ update_ai_providers() {
|
||||
rm src/ipc/shared/language_model_constants.ts.bak
|
||||
print_success "Updated AI provider settings"
|
||||
fi
|
||||
|
||||
# Add Moreminimore as a cloud provider
|
||||
add_moreminimore_provider
|
||||
}
|
||||
|
||||
# Function to add Moreminimore as a cloud provider
|
||||
add_moreminimore_provider() {
|
||||
print_status "Adding Moreminimore as a cloud provider..."
|
||||
|
||||
if [ -f "src/ipc/shared/language_model_constants.ts" ]; then
|
||||
# Check if moreminimore provider already exists
|
||||
if grep -q "moreminimore:" src/ipc/shared/language_model_constants.ts; then
|
||||
print_success "Moreminimore provider already exists"
|
||||
else
|
||||
# Add moreminimore to CLOUD_PROVIDERS
|
||||
sed -i.bak '/export const CLOUD_PROVIDERS: Record<string, CloudProvider> = {/a\
|
||||
moreminimore: {\
|
||||
displayName: "MoreMinimore AI",\
|
||||
websiteUrl: "https://moreminimore.com/settings",\
|
||||
hasFreeTier: false,\
|
||||
gatewayPrefix: "moreminimore/",\
|
||||
},' src/ipc/shared/language_model_constants.ts
|
||||
|
||||
# Add moreminimore model to MODEL_OPTIONS
|
||||
sed -i.bak '/export const MODEL_OPTIONS: Record<string, LanguageModel\[\]> = {/a\
|
||||
moreminimore: [\
|
||||
{\
|
||||
name: "zai-org/GLM-4.6",\
|
||||
displayName: "GLM-4.6",\
|
||||
description: "MoreMinimore AI model",\
|
||||
contextWindow: 128000,\
|
||||
maxOutputTokens: 4096,\
|
||||
tag: "recommended",\
|
||||
},\
|
||||
],' src/ipc/shared/language_model_constants.ts
|
||||
|
||||
rm src/ipc/shared/language_model_constants.ts.bak
|
||||
print_success "Added Moreminimore cloud provider"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to update backend model client for Moreminimore
|
||||
update_backend_model_client() {
|
||||
print_status "Updating backend model client for Moreminimore..."
|
||||
|
||||
if [ -f "src/ipc/utils/get_model_client.ts" ]; then
|
||||
# Check if moreminimore case already exists
|
||||
if grep -q 'case "moreminimore":' src/ipc/utils/get_model_client.ts; then
|
||||
print_success "Moreminimore case already exists in get_model_client.ts"
|
||||
else
|
||||
# Add moreminimore case before the default case
|
||||
sed -i.bak '/default: {/i\
|
||||
case "moreminimore": {\
|
||||
if (!apiKey) {\
|
||||
throw new Error(\
|
||||
"Moreminimore API key is required. Please configure it in Settings.",\
|
||||
);\
|
||||
}\
|
||||
const provider = createOpenAICompatible({\
|
||||
name: "moreminimore",\
|
||||
baseURL: "https://llmproxy.moreminimore.com/v1",\
|
||||
apiKey,\
|
||||
});\
|
||||
return {\
|
||||
modelClient: {\
|
||||
model: provider(model.name),\
|
||||
builtinProviderId: providerId,\
|
||||
},\
|
||||
backupModelClients: [],\
|
||||
};\
|
||||
}' src/ipc/utils/get_model_client.ts
|
||||
|
||||
rm src/ipc/utils/get_model_client.ts.bak
|
||||
print_success "Added Moreminimore case to get_model_client.ts"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to update provider settings UI for Moreminimore
|
||||
update_provider_settings_ui() {
|
||||
print_status "Updating provider settings UI for Moreminimore..."
|
||||
|
||||
if [ -f "src/components/settings/ProviderSettingsPage.tsx" ]; then
|
||||
# Check if the simplified Moreminimore handling is already implemented
|
||||
if grep -q "providerData && provider !== 'moreminimore'" src/components/settings/ProviderSettingsPage.tsx; then
|
||||
print_success "Provider settings UI already updated for Moreminimore"
|
||||
else
|
||||
# Update ModelsSection condition to hide for Moreminimore
|
||||
sed -i.bak 's/{supportsCustomModels && providerData && (/{
|
||||
supportsCustomModels && providerData && provider !== "moreminimore" && (/' src/components/settings/ProviderSettingsPage.tsx
|
||||
|
||||
rm src/components/settings/ProviderSettingsPage.tsx.bak
|
||||
print_success "Updated provider settings UI for Moreminimore"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "src/components/settings/ProviderSettingsHeader.tsx" ]; then
|
||||
# Check if button text is already updated
|
||||
if grep -q "Setup Moreminimore AI" src/components/settings/ProviderSettingsHeader.tsx; then
|
||||
print_success "Provider settings header already updated"
|
||||
else
|
||||
# Update button text for Moreminimore
|
||||
sed -i.bak 's/Setup MoreMinimore Pro Subscription/Setup Moreminimore AI/g' src/components/settings/ProviderSettingsHeader.tsx
|
||||
sed -i.bak 's/Manage MoreMinimore Pro Subscription/Manage Moreminimore AI/g' src/components/settings/ProviderSettingsHeader.tsx
|
||||
|
||||
rm src/components/settings/ProviderSettingsHeader.tsx.bak
|
||||
print_success "Updated provider settings header for Moreminimore"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to remove YouTube video section
|
||||
@@ -358,6 +588,226 @@ cleanup_imports() {
|
||||
print_success "Cleaned up unused imports"
|
||||
}
|
||||
|
||||
# Function to check for required image processing tools
|
||||
check_image_tools() {
|
||||
print_status "Checking for image processing tools..."
|
||||
|
||||
local tools_available=true
|
||||
|
||||
if ! command -v convert &> /dev/null; then
|
||||
print_warning "ImageMagick 'convert' command not found. Installing..."
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
if command -v brew &> /dev/null; then
|
||||
brew install imagemagick
|
||||
else
|
||||
print_error "Homebrew not found. Please install ImageMagick manually: brew install imagemagick"
|
||||
tools_available=false
|
||||
fi
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo apt-get update && sudo apt-get install -y imagemagick
|
||||
elif command -v yum &> /dev/null; then
|
||||
sudo yum install -y ImageMagick
|
||||
else
|
||||
print_error "Please install ImageMagick manually: apt-get install imagemagick or yum install ImageMagick"
|
||||
tools_available=false
|
||||
fi
|
||||
else
|
||||
print_error "Please install ImageMagick manually for your platform"
|
||||
tools_available=false
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$tools_available" = true ]; then
|
||||
print_success "Image processing tools available"
|
||||
else
|
||||
print_error "Image processing tools not available. Logo conversion may fail."
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to convert PNG to SVG
|
||||
convert_png_to_svg() {
|
||||
print_status "Converting PNG logo to SVG..."
|
||||
|
||||
local source_logo="assets/moreminimorelogo.png"
|
||||
local target_svg="assets/logo.svg"
|
||||
|
||||
if [ ! -f "$source_logo" ]; then
|
||||
print_error "Source logo not found: $source_logo"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Backup original SVG if it exists
|
||||
if [ -f "$target_svg" ]; then
|
||||
cp "$target_svg" "$target_svg.backup"
|
||||
fi
|
||||
|
||||
# Create a simple SVG wrapper for the PNG
|
||||
# This maintains compatibility while using the PNG as the source
|
||||
cat > "$target_svg" << EOF
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 128 128" width="128" height="128">
|
||||
<image href="data:image/png;base64,$(base64 -i "$source_logo" -o - | tr -d '\n')" width="128" height="128"/>
|
||||
</svg>
|
||||
EOF
|
||||
|
||||
print_success "Created SVG logo from PNG"
|
||||
}
|
||||
|
||||
# Function to generate multi-size PNGs for Electron icons
|
||||
generate_electron_icons() {
|
||||
print_status "Generating Electron icons..."
|
||||
|
||||
local source_logo="assets/moreminimorelogo.png"
|
||||
local icon_dir="assets/icon"
|
||||
|
||||
if [ ! -f "$source_logo" ]; then
|
||||
print_error "Source logo not found: $source_logo"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Create icon directory if it doesn't exist
|
||||
mkdir -p "$icon_dir"
|
||||
|
||||
# Backup existing icons
|
||||
if [ -f "$icon_dir/logo.png" ]; then
|
||||
cp "$icon_dir/logo.png" "$icon_dir/logo.png.backup"
|
||||
fi
|
||||
if [ -f "$icon_dir/logo.ico" ]; then
|
||||
cp "$icon_dir/logo.ico" "$icon_dir/logo.ico.backup"
|
||||
fi
|
||||
if [ -f "$icon_dir/logo.icns" ]; then
|
||||
cp "$icon_dir/logo.icns" "$icon_dir/logo.icns.backup"
|
||||
fi
|
||||
|
||||
# Copy the main logo for general use
|
||||
cp "$source_logo" "$icon_dir/logo.png"
|
||||
|
||||
# Generate different sizes for various purposes
|
||||
local sizes=(16 32 48 64 128 256 512 1024)
|
||||
|
||||
for size in "${sizes[@]}"; do
|
||||
if command -v convert &> /dev/null; then
|
||||
convert "$source_logo" -resize "${size}x${size}" "$icon_dir/logo_${size}x${size}.png"
|
||||
else
|
||||
print_warning "ImageMagick not available, copying original for size ${size}"
|
||||
cp "$source_logo" "$icon_dir/logo_${size}x${size}.png"
|
||||
fi
|
||||
done
|
||||
|
||||
# Create ICO file (Windows) - use the largest available size
|
||||
if command -v convert &> /dev/null; then
|
||||
convert "$icon_dir/logo_16x16.png" "$icon_dir/logo_32x32.png" "$icon_dir/logo_48x48.png" "$icon_dir/logo_256x256.png" "$icon_dir/logo.ico"
|
||||
else
|
||||
print_warning "Cannot create ICO file without ImageMagick"
|
||||
fi
|
||||
|
||||
# Create ICNS file (macOS) - this is more complex, so we'll use a simple approach
|
||||
if command -v iconutil &> /dev/null && [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# Create iconset directory
|
||||
local iconset="$icon_dir/logo.iconset"
|
||||
mkdir -p "$iconset"
|
||||
|
||||
# Copy required sizes for macOS
|
||||
cp "$icon_dir/logo_16x16.png" "$iconset/icon_16x16.png"
|
||||
cp "$icon_dir/logo_32x32.png" "$iconset/icon_16x16@2x.png"
|
||||
cp "$icon_dir/logo_32x32.png" "$iconset/icon_32x32.png"
|
||||
cp "$icon_dir/logo_64x64.png" "$iconset/icon_32x32@2x.png"
|
||||
cp "$icon_dir/logo_128x128.png" "$iconset/icon_128x128.png"
|
||||
cp "$icon_dir/logo_256x256.png" "$iconset/icon_128x128@2x.png"
|
||||
cp "$icon_dir/logo_256x256.png" "$iconset/icon_256x256.png"
|
||||
cp "$icon_dir/logo_512x512.png" "$iconset/icon_256x256@2x.png"
|
||||
cp "$icon_dir/logo_512x512.png" "$iconset/icon_512x512.png"
|
||||
cp "$icon_dir/logo_1024x1024.png" "$iconset/icon_512x512@2x.png"
|
||||
|
||||
# Convert to ICNS
|
||||
iconutil -c icns "$iconset" -o "$icon_dir/logo.icns"
|
||||
|
||||
# Clean up iconset
|
||||
rm -rf "$iconset"
|
||||
else
|
||||
print_warning "Cannot create ICNS file without iconutil (macOS) or ImageMagick"
|
||||
fi
|
||||
|
||||
print_success "Generated Electron icons"
|
||||
}
|
||||
|
||||
# Function to create optimized logo for TitleBar
|
||||
create_titlebar_logo() {
|
||||
print_status "Creating optimized TitleBar logo..."
|
||||
|
||||
local source_logo="assets/moreminimorelogo.png"
|
||||
local target_logo="assets/logo.png"
|
||||
|
||||
if [ ! -f "$source_logo" ]; then
|
||||
print_error "Source logo not found: $source_logo"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Backup original if it exists
|
||||
if [ -f "$target_logo" ]; then
|
||||
cp "$target_logo" "$target_logo.backup"
|
||||
fi
|
||||
|
||||
# Create a 24x24 version optimized for TitleBar
|
||||
if command -v convert &> /dev/null; then
|
||||
convert "$source_logo" -resize "24x24" "$target_logo"
|
||||
else
|
||||
# If ImageMagick is not available, just copy the original
|
||||
cp "$source_logo" "$target_logo"
|
||||
print_warning "ImageMagick not available, using original logo size"
|
||||
fi
|
||||
|
||||
print_success "Created TitleBar logo"
|
||||
}
|
||||
|
||||
# Function to update test fixtures
|
||||
update_test_fixtures() {
|
||||
print_status "Updating test fixtures..."
|
||||
|
||||
local source_logo="assets/moreminimorelogo.png"
|
||||
local test_fixture="e2e-tests/fixtures/images/logo.png"
|
||||
|
||||
if [ -f "$source_logo" ]; then
|
||||
# Create test fixtures directory if it doesn't exist
|
||||
mkdir -p "$(dirname "$test_fixture")"
|
||||
|
||||
# Backup original test fixture
|
||||
if [ -f "$test_fixture" ]; then
|
||||
cp "$test_fixture" "$test_fixture.backup"
|
||||
fi
|
||||
|
||||
# Copy the new logo to test fixtures
|
||||
cp "$source_logo" "$test_fixture"
|
||||
|
||||
print_success "Updated test fixtures"
|
||||
else
|
||||
print_warning "Source logo not found, skipping test fixture update"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to update all logos
|
||||
update_logos() {
|
||||
print_status "Updating MoreMinimore logos..."
|
||||
|
||||
# Check if source logo exists
|
||||
if [ ! -f "assets/moreminimorelogo.png" ]; then
|
||||
print_error "Source logo not found: assets/moreminimorelogo.png"
|
||||
print_error "Please ensure your MoreMinimore logo is available at assets/moreminimorelogo.png"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check for image processing tools
|
||||
check_image_tools
|
||||
|
||||
# Update all logo files
|
||||
convert_png_to_svg
|
||||
generate_electron_icons
|
||||
create_titlebar_logo
|
||||
update_test_fixtures
|
||||
|
||||
print_success "All logos updated to MoreMinimore branding"
|
||||
}
|
||||
|
||||
# Function to install dependencies
|
||||
install_dependencies() {
|
||||
print_status "Installing dependencies..."
|
||||
@@ -400,14 +850,22 @@ main() {
|
||||
update_branding
|
||||
convert_smart_context
|
||||
update_ui_text
|
||||
update_forge_config
|
||||
update_component_names
|
||||
fix_capitalization_consistency
|
||||
update_github_references
|
||||
remove_made_with_dyad_component
|
||||
update_provider_settings_branding
|
||||
update_urls
|
||||
update_branding_text
|
||||
update_ai_providers
|
||||
update_backend_model_client
|
||||
update_provider_settings_ui
|
||||
remove_youtube_section
|
||||
fix_chat_input
|
||||
update_app_metadata
|
||||
cleanup_imports
|
||||
update_logos
|
||||
install_dependencies
|
||||
test_compilation
|
||||
|
||||
@@ -421,27 +879,42 @@ main() {
|
||||
echo "✅ Updated branding to MoreMinimore"
|
||||
echo "✅ Converted smart context to standard feature"
|
||||
echo "✅ Updated UI text"
|
||||
echo "✅ Updated forge configuration for Mission Control"
|
||||
echo "✅ Updated component names from Dyad to MoreMinimore"
|
||||
echo "✅ Fixed capitalization consistency"
|
||||
echo "✅ Updated GitHub repository references"
|
||||
echo "✅ Removed made-with-dyad component from generated code"
|
||||
echo "✅ Simplified AI provider settings"
|
||||
echo "✅ Updated URLs and external links"
|
||||
echo "✅ Updated branding text throughout app"
|
||||
echo "✅ Updated AI provider settings"
|
||||
echo "✅ Added Moreminimore as cloud provider"
|
||||
echo "✅ Updated backend model client for Moreminimore"
|
||||
echo "✅ Updated provider settings UI for Moreminimore"
|
||||
echo "✅ Removed YouTube video section"
|
||||
echo "✅ Fixed ChatInput.tsx references"
|
||||
echo "✅ Updated app metadata and title bar"
|
||||
echo "✅ Cleaned up unused imports"
|
||||
echo "✅ Updated all logos to MoreMinimore branding"
|
||||
echo "✅ Generated Electron icons (ICO, ICNS, multi-size PNGs)"
|
||||
echo "✅ Installed dependencies"
|
||||
echo ""
|
||||
echo "Key features liberated:"
|
||||
echo "🔓 Smart Context now available to all users"
|
||||
echo "🔓 Annotator tool now available to all users"
|
||||
echo "🔓 Removed Pro upgrade buttons and restrictions"
|
||||
echo "🔓 Mission Control now displays correct app name"
|
||||
echo "🔓 AI provider settings simplified for better UX"
|
||||
echo "🔓 All Dyad branding removed from generated code"
|
||||
echo ""
|
||||
echo "Backup created at: $BACKUP_DIR"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Review the changes with 'git diff'"
|
||||
echo "2. Test the application with 'npm start'"
|
||||
echo "3. Commit the changes if everything works correctly"
|
||||
echo "3. Check Mission Control displays 'MoreMinimore' correctly"
|
||||
echo "4. Verify AI provider settings are simplified"
|
||||
echo "5. Commit the changes if everything works correctly"
|
||||
echo ""
|
||||
print_warning "Please test the application thoroughly before committing changes."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user