# Comprehensive Audit: JavaScript Loading Issues on HuggingFace Spaces
**Created:** 2025-12-09
**Status:** P0 - Critical
**Issue:** HF Spaces stuck on "Loading..." forever despite "Running on T4"
---
## Executive Summary
The NiiVue 3D viewer fails to load on HuggingFace Spaces due to a combination of JavaScript loading issues, timing race conditions, and architectural problems. This document catalogs EVERY potential issue found in the codebase.
---
## ROOT CAUSES IDENTIFIED
### 1. Module Script Timing Race Condition (CRITICAL)
**Location:** `src/stroke_deepisles_demo/ui/viewer.py:64-68`
```python
loader_content = f"""...
"""
```
**Problem:** `
```
### P3: Bundle NiiVue into a Single IIFE
Create a self-contained bundle that doesn't need ES module import.
---
## FILES TO AUDIT BEFORE ANY FIX
1. `src/stroke_deepisles_demo/ui/viewer.py` - All JS constants
2. `src/stroke_deepisles_demo/ui/components.py` - js_on_load usage
3. `src/stroke_deepisles_demo/ui/app.py` - .then(js=) usage, launch config
4. `app.py` - launch config
5. `.gitignore` - niivue-loader.html entry
6. `Dockerfile` - CMD entry point
---
## VERSION HISTORY
| Date | Change | Result |
|------|--------|--------|
| Pre-bc1d8e8 | Inline `