Repository navigation
docs(webui): ship release user docs and list --webui in --help - #2324
Merged
Merged
Conversation
8 tasks done
Member
Author
Implementation Review SummaryIntent
Findings Addressed
Remaining Items
Verification
|
inureyes
added a commit
that referenced
this pull request
Oct 15, 2026
Review of #2324 found that the troubleshooting table blamed the non-loopback diagnostic on a missing key (a non-loopback start without a key fails with the terminal message first), that nohup was listed as a case without a terminal, that tool calls were described as copyable, that make verify-webui-contract was called isolated, and that strings were said to live in catalog.ts rather than the per-feature strings.ts files it combines. All are corrected in both languages. The integration matrix row "Bundle budgets and deterministic assets" was still not-run. It now records the CI WebUI bundle job on this branch (build_bundle.py --verify, digest b4087a93...), the committed manifest's source digest and measured sizes against their limits, and the SHA-256 of the CUDA test-fast binaries that embed those assets, so the user guide links to recorded evidence. Refs #1900
15 of 21 tasks
--webui is mlxcel's own product flag, but it was a hidden alias of the hidden b10621 --ui argument, so neither mlxcel-server --help nor mlxcel serve --help mentioned the WebUI. The pair is now declared as --webui / --no-webui under a per-argument "WebUI Options" heading, with --ui / --no-ui kept as hidden aliases; every other UI, tools, MCP, proxy, and agent argument stays hidden and keeps its startup diagnostic. Both after_help blocks gain a short WebUI section that links the user guide. The b10621 manifest records the --ui entry as visible (mlxcel.hidden false), and tests/llama_compat_manifest.rs now checks hidden claims in both directions. The --ui-config notes no longer say that mlxcel ships no UI. New tests: a clap-level unit test of the group's visible surface and tests/webui_cli_help.rs against both real binaries (help listing plus the refused-flag diagnostics). Reverting the visibility change makes all three checks fail. Refs #1900
…orean The bundled WebUI had contract and screen documents but no operator-facing guide, and the root README never mentioned it. docs/webui/README.md is now the entry point, linked from README.md, docs/README.md, docs/server-features.md, and docs/llama-server-compat.md. user-guide.md and user-guide.ko.md cover the generated-key and key-file quickstarts, library sources and the empty-start rule, single-model and offline modes, live settings flags, direct TLS and reverse-proxy access, memory-only login, model lifecycle and deletion, settings scopes and privacy, deferred limits, troubleshooting, and links to the integration matrix for bundle, offline, and feature evidence. Every startup failure message and HTTP error body in the troubleshooting tables was captured from the built binaries. contributing.md and contributing.ko.md map the source, generated assets, contract-first workflow, pinned toolchain, and Cargo feature graph. NOTICE now carries the @lablup/ui-common NOTICE text forward, since its compiled code ships in the bundle. Refs #1900
The user guide said a managed-store delete is confirmed by typing DELETE. The shipped Models dialog (webui/src/features/models/dialogs.tsx) accepts the confirmation only when the typed text equals the entry's opaque model ID, which starts with mdl_, and its body tells the user to type the ID rather than the model name. DELETE appears only in the design-gallery mock. Both the English and Korean guides now describe the ID confirmation. Refs #1900
Review of #2324 found that the troubleshooting table blamed the non-loopback diagnostic on a missing key (a non-loopback start without a key fails with the terminal message first), that nohup was listed as a case without a terminal, that tool calls were described as copyable, that make verify-webui-contract was called isolated, and that strings were said to live in catalog.ts rather than the per-feature strings.ts files it combines. All are corrected in both languages. The integration matrix row "Bundle budgets and deterministic assets" was still not-run. It now records the CI WebUI bundle job on this branch (build_bundle.py --verify, digest b4087a93...), the committed manifest's source digest and measured sizes against their limits, and the SHA-256 of the CUDA test-fast binaries that embed those assets, so the user guide links to recorded evidence. Refs #1900
inureyes
force-pushed
the
update/issue-1900-webui-docs-help
branch
from
October 15, 2026 18:35
6d64993 to
4268db0
Compare
17 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release documentation for the bundled WebUI, written against the UI as it is on main now that every other child of #1910 has merged, plus
--webuiin--helpon both server entry points.--webui/--no-webuiare declared as visible arguments under a per-argumentWebUI Optionsheading, with--ui/--no-uias hidden aliases. Every other b10621 UI, tools, MCP, proxy, and agent argument stays hidden and keeps its startup diagnostic. Bothafter_helpblocks gain a short WebUI pointer. The manifest's--uientry now recordshidden: false, the--ui-confignotes no longer claim mlxcel ships no UI, andtests/llama_compat_manifest.rscheckshiddenclaims in both directions.docs/webui/README.mdentry point,user-guide.md/user-guide.ko.md(quickstarts, keys, library sources and the empty-start rule, single-model and offline modes, TLS and reverse-proxy access, lifecycle, settings scopes and privacy, deferred limits, troubleshooting, evidence links), andcontributing.md/contributing.ko.md. Linked fromREADME.md,docs/README.md,docs/server-features.md, anddocs/llama-server-compat.md.@lablup/ui-commonsection with its NOTICE carried forward verbatim (its compiled code is in the bundle and its license was only inthird-party-licenses.txt). React and the backend.ai-go glass-theme entries were already present;glass.csskeeps its per-file derivation header. The bundle CSS has no@font-faceorurl(), only system font names, and no Apple design-kit asset is shipped.not-runto the CIWebUI bundlejob on this branch (build_bundle.py --verify, digestb4087a93...) with the manifest's source digest, measured sizes, and the SHA-256 of the binaries that embed it, so the guide links to recorded evidence.Verification
Host: GB10 (CUDA). Built with
cargo build --profile test-fast --features cuda --bin mlxcel-server --bin mlxcelfrom this branch (source identical to the final commits). Artifacts:mlxcel-serverSHA-256575f67ed7a87e7afb3bcdd431247d64d2e93e2295b2777816700a7d8675efcaa,mlxcelSHA-2563ca9cdd875d5bb676346c8b6627bb531deb0bf2c4db014d4b4e15a9fe5cd6a17. UI bundle: manifestsource_digest_sha2561ebf0921089e00db6bf288cdd66fb2ba6265f9ee43a4224a07d483f1201d79c8, manifest file SHA-2566e4906b0f599df320401c1d0fa2bc271363f27b1a0c220c8785824b7832e9013. Both binaries embed the bundle (hashed asset names and source digest present in the binary).mlxcel-server --helpandmlxcel serve --helplist--webuiand--no-webui;--help | grep -E -- '--ui-config|--tools|--mcp-servers|--ui-mcp-proxy|--agent'prints nothing on both.~/models/mlx/qwen3-0.6b-4bit, formlxcel-server --webuiandmlxcel serve --webui(each with--api-key-file,--models-dir ~/models/mlx,--metrics --settings --props, under gpu-lock): 192 catalog entries and none loaded at start; a chat to the unloaded model returned 400 "model is not loaded" and left it unloaded; load viaPOST /ui-api/v1/model-actionswas 202, cancelling it 422unsupported, Ready after 2 s; one streaming/v1/chat/completions?autoload=falsechat finished withstop,[DONE], content "Hello! 🌞"; unload 202, unloaded after 1 s; clean exit; key never in the log.--models-dir, missing--model-store-rootandMLXCEL_MODELS_DIR,--ui-config, the 401 body, and the 403Host header is not allowedbody for a0.0.0.0TLS bind. The UI-not-compiled message was reproduced on a--no-default-features --features cuda,surgerybuild of both binaries.mlxcel_webui_prefix, accepted by bootstrap) for both entry points; key file; absent default store gives an empty library; single-model mode reports read-only actions with the documented reasons;--offlinedisables download with "offline mode is enabled"; direct TLS on the LAN address;--api-prefix /labserves/lab/webui/with/still the health check.cli::ui_compat_args::tests::help_lists_only_the_webui_pair_under_its_heading,tests/webui_cli_help.rs::webui_pair_is_listed_and_the_rest_of_the_group_stays_hidden, andtests/llama_compat_manifest.rs::manifest_option_claims_hold_on_both_server_binaries. All pass on the branch, as dowebui_enable_disable_resolves_with_last_flag_winning,tests/cli_help_consistency.rs(27),make verify-llama-compat,check_llama_compat_manifest_test.sh, clippy (--lib --tests -D warnings, cuda), fmt, and the repository contract checks.Changes during review
pr-reviewerfound that the guide described a typedDELETEconfirmation (the dialog actually asks for the model's opaque id), misattributed the non-loopback diagnostic to a missing key, listednohupas terminal-less, called tool calls copyable, and pointed string edits atcatalog.tsonly. All are fixed in both languages.Not run here: the workspace-wide test suite (left to CI), and the reverse-proxy section was checked against
scripts/webui/verify_reverse_proxy.pyrather than a real nginx. Observed but out of scope: a single-model server started from a non-interactive shell with&ignored SIGINT and needed SIGTERM; router mode exited on SIGINT.Part of #1910.
Closes #1900