Files
shopify-ai-backup/windows-app/BUILD_FIX_CHECKLIST.md

4.9 KiB

Desktop Build Fix - Verification Checklist

All Changes Verified

1. tauri.conf.json

  • Fixed: distDir changed from "../ui-dist" to "./ui-dist"
  • Verified: UI dist directory exists at the correct path
  • Test: test -d "./ui-dist" passes

2. src-tauri/build.rs

  • Created: New file with tauri_build::build() call
  • Verified: File exists and contains correct code
  • Test: test -f src-tauri/build.rs passes

3. src-tauri/Cargo.toml

  • Removed: tauri-plugin-store dependency
  • Added: tauri-build in [build-dependencies]
  • Updated: Feature flags to reference tauri properly
  • Verified: No tauri-plugin-store dependency present

4. src-tauri/Cargo.lock

  • Generated: Using cargo generate-lockfile
  • Purpose: Lock dependency versions for consistent builds
  • Verified: File exists and contains 451 locked packages
  • Test: test -f src-tauri/Cargo.lock passes

5. src-tauri/src/main.rs

  • Removed: use tauri_plugin_store::StoreBuilder
  • Removed: .plugin(tauri_plugin_store::Builder::default().build())
  • Added: Custom SecureStore struct with HashMap-based storage
  • Verified: No references to tauri_plugin_store
  • Test: grep -i "plugin.*store" src-tauri/src/main.rs returns nothing

6. .github/workflows/windows-app.yml

  • Unchanged: Workflow was already correct
  • Verified: Uses Cargo.lock for cache key
  • Test: Workflow file exists and is valid

7. UI Preparation

  • Script: sync-ui.js unchanged
  • Test: npm run prepare-ui executes successfully
  • Result: Creates 54 files in ui-dist directory
  • Verified: tauri-bridge.js is injected into HTML files

Build Readiness

Windows (GitHub Actions)

  • All required files present
  • Configuration files updated
  • Dependencies compatible with Tauri 1.5
  • WebView2 integration (Windows native)
  • Build command: npm run build

Known Limitations

  • ⚠️ Linux builds will fail due to webkit2gtk-4.0 vs 4.1 incompatibility
    • This is expected and does not affect Windows builds
    • Windows uses WebView2, not webkit2gtk
    • GitHub Actions runs on windows-latest

Expected Build Output

When GitHub Actions runs, it should:

  1. Checkout code
  2. Setup Node.js 20 and Rust stable
  3. Cache cargo dependencies
  4. Install npm dependencies
  5. Verify chat/public exists
  6. Prepare UI to windows-app/ui-dist
  7. Verify ui-dist was created
  8. Build Tauri app
  9. Generate NSIS and MSI installers
  10. Upload artifacts

Testing Commands

Verify UI Preparation

cd windows-app
npm install
npm run prepare-ui
test -d ui-dist && echo "✅ UI prepared" || echo "❌ UI preparation failed"

Verify Configuration

cd windows-app
grep '"distDir"' tauri.conf.json | grep -q './ui-dist' && echo "✅ distDir correct" || echo "❌ distDir incorrect"
test -f src-tauri/build.rs && echo "✅ build.rs exists" || echo "❌ build.rs missing"
test -f src-tauri/Cargo.lock && echo "✅ Cargo.lock exists" || echo "❌ Cargo.lock missing"

Verify Dependencies

cd windows-app/src-tauri
grep -q tauri-plugin-store Cargo.toml && echo "❌ Still has plugin dependency" || echo "✅ Plugin dependency removed"
grep -q tauri-build Cargo.toml && echo "✅ tauri-build present" || echo "❌ tauri-build missing"

Next Steps

  1. Commit Changes: All changes are ready to be committed
  2. Push to Branch: Push to fix-desktop-build-ui-sync-tauri-gh-actions
  3. Trigger Workflow: Run the GitHub Actions workflow manually
  4. Verify Build: Check that artifacts are generated
  5. Test Binary: Download and test the generated .exe file

Files Modified

  • /windows-app/tauri.conf.json - Fixed distDir path
  • /windows-app/src-tauri/Cargo.toml - Updated dependencies
  • /windows-app/src-tauri/src/main.rs - Replaced plugin with custom store
  • .github/workflows/windows-app.yml - Cache key (already correct)

Files Created

  • /windows-app/src-tauri/build.rs - Required Tauri build script
  • /windows-app/src-tauri/Cargo.lock - Dependency lock file
  • /DESKTOP_BUILD_FIX_SUMMARY.md - Detailed fix documentation
  • /windows-app/BUILD_FIX_CHECKLIST.md - This file

Success Criteria

  • UI preparation completes without errors
  • No tauri-plugin-store dependencies
  • Custom SecureStore implementation working
  • build.rs file present
  • Cargo.lock generated
  • distDir points to correct location
  • GitHub Actions build completes successfully
  • Windows installer (.exe) is generated
  • Installer can be downloaded from artifacts

Support

If the GitHub Actions build fails, check:

  1. Is chat/public directory present in the repository?
  2. Is BACKEND_BASE_URL secret configured (if required)?
  3. Are there any new dependency conflicts?
  4. Does the error mention missing files or directories?

Refer to /DESKTOP_BUILD_FIX_SUMMARY.md for detailed troubleshooting.