webui: Move static build output from repo code to HF Bucket#22937
Conversation
fe1e1e3 to
8fe5cbe
Compare
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Moves the WebUI static build output out of the repo and into a versioned Hugging Face Bucket, adding build-time fallback logic (local → HF download → no WebUI), plus CI workflow updates to build/distribute WebUI as an artifact.
Changes:
- Add CMake logic to embed WebUI assets from local
tools/server/public/or download prebuilt assets from an HF Bucket. - Restructure GitHub Actions workflows to build WebUI once and reuse it across server/release jobs via artifacts.
- Rename/rebrand WebUI identifiers/docs from
llama.cpp/llama-server-webuitollama-ui.
Reviewed changes
Copilot reviewed 27 out of 31 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/server/webui/vite.config.ts | Removes custom esbuild settings from WebUI build config |
| tools/server/webui/tests/stories/Introduction.mdx | Updates Storybook intro naming/wording |
| tools/server/webui/svelte.config.js | Renames SvelteKit app version name |
| tools/server/webui/src/routes/(chat)/chat/[id]/+page.svelte | Uses APP_NAME in page title and adjusts constants import |
| tools/server/webui/src/lib/services/chat.service.ts | Updates service docstring to new server naming |
| tools/server/webui/src/lib/constants/ui.ts | Changes default app name to llama-ui |
| tools/server/webui/src/lib/components/app/server/ServerLoadingSplash.svelte | Updates loading splash default message |
| tools/server/webui/scripts/install-git-hooks.sh | Stops staging generated tools/server/public/ output in pre-commit |
| tools/server/webui/scripts/dev.sh | Updates script header/comment formatting |
| tools/server/webui/package.json | Renames package to llama-ui |
| tools/server/webui/README.md | Renames and updates WebUI README wording |
| tools/server/server-http.cpp | Adjusts “server not ready” middleware behavior for WebUI/non-WebUI builds |
| tools/server/public/loading.html | Deletes committed static asset (moved out of repo) |
| tools/server/public/index.html | Deletes committed static asset (moved out of repo) |
| tools/server/README.md | Removes legacy Web UI/extension documentation section |
| tools/server/CMakeLists.txt | Adds local-first + HF Bucket download fallback for WebUI assets |
| grammars/README.md | Removes reference to legacy WebUI JS grammar tool path |
| common/common.h | Makes common_params.webui default depend on compile-time macro |
| CMakeLists.txt | Adds LLAMA_USE_PREBUILT_WEBUI option and formats option block |
| .gitignore | Ignores tools/server/public directory now that it’s generated/downloaded |
| .github/workflows/webui-build.yml | New reusable workflow to build and upload WebUI artifacts |
| .github/workflows/server.yml | Adds dependency on WebUI build artifact for server jobs |
| .github/workflows/server-webui.yml | Refactors to call reusable WebUI build workflow and reorganizes tests |
| .github/workflows/server-self-hosted.yml | Adds dependency on WebUI build artifact for self-hosted server builds |
| .github/workflows/release.yml | Adds dependency on WebUI build artifact for release jobs and sets LLAMA_BUILD_TAG |
| .github/labeler.yml | Removes tools/server/public/** from label rules |
| .gitattributes | Removes diff suppression for deleted generated WebUI file |
| .editorconfig | Removes formatting overrides for deleted tools/server/public/** files |
Files not reviewed (1)
- tools/server/webui/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Okay, perf. All worked on my fork:
|
|
I've removed all previous test uploads to HF Bucket and left only the |
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
|
Seems downloading |
It took this URL So it seems it got I'll investigate further |
It took |
Sorry, was checking this on GH Mobile and must have missed other rows in the log 😅 regardless, I'll see into that and let you know |
Though, it should have been |
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
Re-enables svelte/no-unused-props, @typescript-eslint/no-explicit-any, and the tight variant of @typescript-eslint/no-unused-vars that landed disabled during the 2026-05-12 rebase. Those waivers were the endurance-impaired answer to drift-zero — they hid the real surface area rather than honouring it. Visible debt after the revert (npm run lint): svelte/no-unused-props 65 @typescript-eslint/no-explicit-any 40 @typescript-eslint/no-unused-vars 2 ──────────────────────────────────────── total 107 That number is the goalpost for the strategy-(b) Props re-derivation follow-up. Up from b9df5c0's pre-fix count of 89 — the 31-commit master catch-up (ggml-org#22937 chat.service.ts + +page shape shifts, the autoscroll rework, new ChatMessage surfaces) introduced fresh Props mismatches HT hasn't ported through yet. Drift-zero conditional on waivers is not drift-zero. The pre-commit hook and CI will fail on this lint surface until the cleanup lands — that is the point. Bypassing the local hook via --no-verify is the explicit fork-manager directive to surface debt as a tracked number rather than mask it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…loses #38) The May 12 rebase landed with ChatMessageActions aliased to ChatMessageActionCard (the thin 33-line card with {icon, message, actions} Props) instead of ChatMessageActionIcons (the 215-line rich icon-row that is the actual toolbar). Every message variant lost its copy/edit/regenerate/speak buttons; the bug was silent because the card component renders without error, it just renders the wrong thing. The fix is the one-line alias swap. Its cost is visibility of the Props mismatch: the two components have different Props shapes, so the ~20 caller sites that pass {icon, message, actions} now type-fail against ChatMessageActionIcons. b9df5c0 had the full surgery to narrow Props back to upstream's shape, but skipping that commit on the post-ggml-org#22937 rebase was deliberate (much of its body would strand active upstream components). Re-derivation against the current upstream surface is tracked as the strategy-(b) follow-up — see the 107-lint-error visible-debt commit on the same branch. Visible debt after this commit: svelte-check 13 errors (Props shape mismatches) eslint 107 errors (from prior waiver revert) ──────────────────────────────────────────────────── total 120 Both numbers feed the same goalpost. Pre-commit + CI will fail until the cleanup lands — bypassed locally via --no-verify per the fork-manager visible-debt directive. Closes #38 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…bui rename Three coupled regressions surfaced when Markus hit super+A after the 2026-05-16 rebase: the Tauri shell binary was returning HTTP 500 on /index.html because tools/server/public/ had been emptied by the rebase (master's PR ggml-org#22937 moved the build sink to build/tools/ui/), and the existing config kept pointing at the old paths. Fixes in tauri.conf.json: - beforeBuildCommand now `cd ../../ui && bun run build && copy → public`. The old `cd ../webui` path no longer exists; the appended copy step keeps tools/server/public/ populated so frontendDist resolves on a fresh checkout without manual intervention. - beforeDevCommand and devUrl updated to match (and to bind 127.0.0.1 rather than localhost so the dev server doesn't accidentally land on ::1). - Window URL changed from http://localhost:5173/... → http://127.0.0.1:5173/... Sidesteps webkit2gtk's IPv6-first localhost resolution entirely. The embedded tiny-http server is already pinned IPv4 in src/lib.rs:73, so this makes both ends speak v4 explicitly and any future IPv6 squatter on 5173 can't intercept the webview. .gitignore: tools/server/public/ is now a pure build sink, and the tracked tts-default-ref.mp3 it carried was a stale duplicate of tools/ui/static/tts-default-ref.mp3 (the SvelteKit canonical static). Untracked it; the build step recopies the canonical file each time. Diagnosed and fixed jointly with snoop-kube (cloud) and inventory-dev (squatter cleanup) via /tmp/app-launch-summit.md.
|
@allozaur Hmmm, BTW, it seems that even though you make a stamp file, that stamp is never checked again, so once a build has been downloaded from HF bucket it will never get updated and you are stuck with this version until you clean/delete build. |
Will follow up and make sure that it works right. |
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
…#22937) * ci: add workflow to publish webui to Hugging Face bucket * ci: add webui release job to release workflow * ci: test webui release job * chore: Return to default minification strategy for build output files * ci: extract webui build into separate workflow and job * chore: Ignore webui static output + clean up references * chore: Delete legacy webui static output * chore: Ignore webui build static output * fix: Workflow * fix: Versioning naming * chore: Update package name * test: Test CI fix * refactor: Naming * server: implement webui build strategy with HF Bucket support * chore: Remove test workflow * chore: Use WebUI build workflow call in other workflows * server: HF Buckets fallback for WebUI build * refactor: App name variable * refactor: Naming * fix: Retrieve loading.html * fix: workflow syntax * fix: Rewrite malformed release.yml * fix: Req param * test: Re-add missing Playwright installation for CI tests * refactor: Logic & security improvements * refactor: Retrieve publishing jobs and DRY the workflows * fix: Test workflow syntax * fix: Upstream Release Tag for test workflow * chore: Remove test workflow * ci: Run WebUI jobs on `ubuntu-24.04-arm` * refactor: Post-CR cleanup Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Aleksander Grygier <aleksander.grygier@gmail.com> * refactor: CI cleanup * refactor: Cleanup * test: Test workflow * refactor: use LLAMA_BUILD_NUMBER instead of LLAMA_BUILD_TAG for HF Bucket webui downloads * server: add fallback mechanism for HF Bucket webui downloads from latest directory * fix: Incorrect argument order in file(SHA256) calls for checksum verification * refactor: Use cmake script for handling the HF Bucket download on build time * feat: support local npm build for WebUI assets * refactor: add `HF_ENABLED` flag to control WebUI build/download provisioning * refactor: Cleanup * chore: Remove test workflow * fix: remove s390x from release workflow * fix: add webui-build dependency to ubuntu-22-rocm and windows-hip * Revert "fix: remove s390x from release workflow" This reverts commit debcfff. * fix: Release workflow file * fix: Proper release tag used for HF Bucket upload * fix: Remove duplicate steps in release workflow --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>


Overview
Close #17207
Move WebUI static build output files from the repository to a versioned Hugging Face Bucket, with automatic local/HF Bucket fallback during build.
Additional information
Build cases
LLAMA_BUILD_WEBUI=ON(default)tools/server/public/LLAMA_BUILD_WEBUI=ON+LLAMA_USE_PREBUILT_WEBUI=ON(default)LLAMA_BUILD_WEBUI=ON+LLAMA_USE_PREBUILT_WEBUI=ONLLAMA_BUILD_WEBUI=OFFRuntime behavior while http server is not ready yet:
CMake examples
CI/CD changes
WebUI build output is no longer committed to the repo, so CI builds and distributes it as a reusable artifact:
New reusable workflows
webui-build.yml: Builds WebUI from source (Node.js + npm), generates SHA256 checksums, uploads aswebui-buildartifactwebui-publish.yml: Publishes the built WebUI to a versioned HF Bucket path, acceptsversion_taginput andhf_tokensecretModified workflows
release.yml: All build jobs now depend onwebui-buildartifact, download it viaactions/download-artifactinstead of relying on committed files. Addedwebui-publishjob for release publishingserver.yml/server-self-hosted.yml: Build jobs now depend onwebui-buildartifactserver-webui.yml: Simplified to callwebui-build.ymlinstead of building WebUI directlyChanges
tools/server/public/{bundle.js,bundle.css,index.html,loading.html}tools/server/CMakeLists.txt): Added local-first + HF Bucket download fallbackwebui-build.yml, changed to artifact download in release/build jobsserver-http.cpp): Loading page logic preserved under#ifdef LLAMA_BUILD_WEBUI.gitignore, removed.gitattributesandeditorconfigrules for removedtools/server/publicfiles from the repo