# Frontend JavaScript sources `build.rs` concatenates the files listed in `APP_JS_MODULES` into one generated `app.bundle.js` in Cargo's `OUT_DIR`. The server exposes that bundle as `/app-.js`, so the browser downloads one application script and can cache it immutably. Source responsibilities: - `router.js` owns application URLs, browser history, route parsing and URL-to-view mapping. - `navigation.js` owns view/tab UI transitions and navigation-related controls. - the remaining files are split by feature or shared responsibility. The Rust HTTP router serves `index.html` only for the explicitly supported SPA routes. Unknown paths return the standalone `web/404.html` page with HTTP `404` instead of silently opening the dashboard. `web/app.js` is intentionally not used and should not exist. Do not recreate it manually; the bundle is generated at build time. Keep the module order in `build.rs` explicit. These files intentionally share one application scope and are bundled before being served to the browser.