Repository navigation
[Studio] Integrate HTTP-backed clients and unified launcher - #317
Merged
Merged
Conversation
9-71
marked this pull request as ready for review
October 18, 2026 12:15
Contributor
Author
|
PR #317 is ready for review. CI triage for
I don't have permission to rerun upstream Actions. Could a maintainer rerun the failed The remaining platform/training limitations are documented separately. No PR-specific regression has been identified in the completed checks. Thanks for reviewing! |
Collaborator
|
LGTM |
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
This PR integrates the Studio frontend clients and unified launcher on top of the previously merged Studio core, runtime, and FastAPI service work (#310, #312, #313, #316).
It connects React, the zero-build console, and Gradio Jobs UI to the same HTTP task service while preserving the existing synchronous inference workflow.
Changes
1. HTTP-backed Studio clients
/console/): Improves asynchronous job state synchronization, polling, log pagination, error recovery, and artifact handling./): Updates job monitoring, delayed-response handling, and terminal log draining without requiring a frontend build.All three clients consume the existing
/api/v1/jobsAPI rather than managing task lifecycles independently.2. Unified launcher
Extends
start_studio.pyto provide a single local entry point for the API service and Gradio UI.F1_*settings.3. UI module organization and compatibility
Moves Studio-specific Gradio implementations from
f1/ui/intostudio/ui/, retaining compatibility imports for existing consumers.The original synchronous Gradio inference path remains available.
4. Tests, CI, and documentation
Studio FrontendGitHub Actions workflow.docs/studio/frontend.md.Broader cross-PR documentation consolidation is reserved for the separate Documentation PR.
Architecture
The ownership boundary remains:
UI clients → REST API → Studio JobsManager / Runtime
This PR does not introduce another lifecycle owner, replace the existing execution engine, or redesign the REST contract.
Verification
Automated CI — PASS
The implementation and test revision
2c8d722cpassed both Studio CI workflows, with 5/5 jobs successful:The subsequent documentation-only commit
00e679f8passed localgit diff --check, targeted codespell, and isolated MkDocs strict checks for the two modified pages. It did not trigger new Studio CI runs because the workflows use path filters.The Linux cooperative-shutdown test was investigated with timestamped diagnostics. Its test-only cooperative grace period was adjusted from 1 to 5 seconds, without changing production Runtime behavior, fallback timing, or lifecycle assertions.
Manual acceptance — PASS (Windows)
Verified using real UI and HTTP interactions:
Manual acceptance evidence is scoped to the verified Windows candidate and environment; it does not establish broader platform or training support.
Review guidance
The largest file-level changes include a relocation from
f1/ui/tostudio/ui/. These are primarily module-organization changes; reviewers may find it easier to examine the compatibility wrappers separately from the behavioral changes.Suggested review order:
start_studio.py— launcher and service ownership.studio/ui/andf1/ui/— Gradio implementation and compatibility.web/andfrontend/— HTTP client behavior.tests/studio/,web/scripts/, and CI workflows — regression coverage.docs/studio/frontend.mdanddocs/studio/service.md— client setup, launcher behavior, and acceptance scope.How to run
Install the Studio service and UI dependencies from a source checkout (Python 3.10+):
pip install -e ".[studio]" gradio pandasStart the combined local service and Gradio UI:
Alternatively, start the API and zero-build console:
Frontend checks:
Python checks:
See
docs/studio/frontend.mdfor more details.Scope and limitations
This PR focuses on local, single-service Studio usage. Public hosting, authentication, and multi-user isolation are out of scope.
GPU/AMP, DDP, and broader platform validation remain separate acceptance gates.