- Code implementation
- Test suite created
- Changes committed to git
- Pushed to GitHub
Yes, you need to build after pushing to GitHub.
# Build the frontend
npm run buildThis will:
- Compile Svelte components
- Bundle JavaScript/CSS
- Generate production-ready assets
- Include the new Mermaid optimization code
# Check for build errors
npm run build 2>&1 | grep -i error
# If successful, you should see:
# - Build completed
# - No TypeScript errors
# - Assets generated in .svelte-kit/# Start dev server to verify
npm run dev
# Test Mermaid rendering:
# 1. Open browser
# 2. Create a chat with Mermaid diagram
# 3. Verify diagram renders
# 4. Check browser console for Mermaid logs
# 5. Verify cache is working (second render should be instant)# Push triggers automatic build
# Monitor build:
oc get builds -n rit-genai-naga-dev --watch
# Check build logs:
oc logs -f build/<build-name> -n rit-genai-naga-dev# Build Docker image
docker build -t your-registry/mermaid-optimized:latest .
# Push to registry
docker push your-registry/mermaid-optimized:latest
# Update deployment
oc set image deployment/open-webui open-webui=your-registry/mermaid-optimized:latest -n rit-genai-naga-devAfter deployment, verify:
-
Application starts successfully
oc get pods -n rit-genai-naga-dev oc logs -f deployment/open-webui -n rit-genai-naga-dev
-
Mermaid rendering works
- Open application in browser
- Create/test Mermaid diagram
- Check browser console for:
[Mermaid] Global initialization successful[Mermaid] Cache hit(on second render)[Mermaid] Render completed
-
Performance metrics
- Open browser DevTools → Console
- Look for Mermaid performance logs
- Verify cache hit rate > 70% after warmup
Watch for:
- ✅ Mermaid diagrams rendering correctly
- ✅ Cache working (faster second renders)
- ✅ No console errors
- ✅ Memory usage stable
- ✅ IndexedDB persisting across refreshes
If issues occur:
# Rollback to previous deployment
oc rollout undo deployment/open-webui -n rit-genai-naga-dev
# Or revert git commit
git revert HEAD
git push
# Rebuild and redeployNo new environment variables required. All configuration is in code:
MERMAID_CONFIGinsrc/lib/constants.ts- Can be adjusted if needed
If needed, adjust in src/lib/constants.ts:
export const MERMAID_CONFIG = {
MEMORY_CACHE_SIZE: 100, // Adjust cache size
INDEXEDDB_MAX_SIZE: 5 * 1024 * 1024, // Adjust IndexedDB limit
DEBOUNCE_DELAY: 300, // Adjust debounce timing
// ... other settings
};- Check browser console for errors
- Verify Mermaid 11.12.2 is installed:
npm list mermaid - Check service initialization: Look for
[Mermaid] Global initializationlog
- Check IndexedDB in DevTools → Application → IndexedDB
- Verify
mermaid_cache_dbexists - Check console for cache hit/miss logs
- Check metrics logs:
[Mermaid] Metrics: ... - Verify cache hit rate
- Check render times in console
✅ Deployment successful when:
- Application starts without errors
- Mermaid diagrams render correctly
- Cache works (second render is instant)
- No console errors
- Performance metrics show improvement
Order of Operations:
- ✅ Code pushed to GitHub
- → Build application (
npm run build) - → Deploy to OpenShift (via BuildConfig or manual)
- → Verify deployment (check logs, test rendering)
- → Monitor (first 24 hours)
Build is required - The new code needs to be compiled before deployment.