Repository navigation
refactor(web): extract shared UI and host packages - #842
Merged
Merged
Conversation
mnoah1
force-pushed
the
mnoah1/web-shared-foundation
branch
from
October 12, 2026 15:13
953f414 to
de5ea40
Compare
This was referenced Oct 12, 2026
mnoah1
added this pull request to stack #843
October 12, 2026 15:29
mnoah1
marked this pull request as ready for review
October 12, 2026 15:31
mnoah1
requested review from
a team,
behinddwalls and
sbalabanov
as code owners
October 12, 2026 15:31
mnoah1
removed this pull request from stack #843
October 12, 2026 20:08
mnoah1
added this pull request to stack #847
October 12, 2026 20:08
mnoah1
force-pushed
the
mnoah1/web-shared-foundation
branch
2 times, most recently
from
October 13, 2026 17:24
6e66329 to
6e42848
Compare
mnoah1
force-pushed
the
mnoah1/web-shared-foundation
branch
from
October 13, 2026 19:31
6e42848 to
ba3f6c9
Compare
prathshenoy
approved these changes
Oct 14, 2026
DivyanshGarg380
pushed a commit
to DivyanshGarg380/submitqueue
that referenced
this pull request
Oct 14, 2026
## Why? Stovepipe exposes request lists, status summaries, and history through RPCs, but has no browser view for inspecting them. Add a basic UI mirroring the same structure as the SubmitQueue UI: a core component that can be deployed internally via FusionJS that includes the pages / contents, and a NextJS wrapper for external use. https://github.com/user-attachments/assets/0bdf1fd9-36ea-4bea-b540-826d8047e6a2 ## What? - Add `web/stovepipe`, a React library with a request list for each configured queue and a request page showing the backend status summary followed by request history. - Load the summary and events together through `GetRequestHistoryByID`. Request IDs link to `/<queue>/request/<id>`; change URIs remain displayed as text. Display the backend summary directly, including state, change and baseline URIs, timestamps, and outcome reason. - Provide manual refresh and optional polling, retaining successful sections when a refresh fails on the same page. - Add a thin Next.js host under `web/service/stovepipe` for authentication, configuration, server-side RPC transport, and logging, plus TypeScript bindings for the existing API and Bazel build/image targets. - Add the local Compose overlay and `make local-stovepipe-web-start`, along with library, component, host, and package tests. ## Test Plan Latest validation passed all 32 targets with `./tool/bazel test //web:check //web/test/e2e/submitqueue:web_test //web/test/e2e/stovepipe:web_test --test_output=errors`, including real-backend coverage of request-ID navigation, status summaries, history, and refresh. Frontend and package checks passed as part of the validation above, which also built the Stovepipe image. On this PR: ```sh ./tool/bazel test //web:check --test_output=errors ./tool/bazel build //web/service/stovepipe:image ``` For manual review, run `make local-stovepipe-web-start`, open the printed URL, and sign in with username `test` and password `test` (or the configured `STOVEPIPE_WEB_TOKEN`). ## Stack 1. uber#842 — shared-package refactoring 2. uber#837 — Stovepipe frontend 3. uber#838 — browser coverage and E2E organization 4. uber#844 — host logging integration This PR's diff contains the Stovepipe additions; review the preparatory refactoring in uber#842. Merge in this order.
DivyanshGarg380
pushed a commit
to DivyanshGarg380/submitqueue
that referenced
this pull request
Oct 14, 2026
## Why? The new Stovepipe UI needs browser coverage against a real backend, in addition to its unit and component tests. Align both services' browser suites under `web/test/e2e/<domain>` so they follow the repository layout and reuse stack setup helpers. ## What? - Move the existing SubmitQueue browser suite into `web/test/e2e/submitqueue`, preserving its browser spec and Compose overlay. - Add `web/test/e2e/stovepipe` with real ingestion and seeded pagination data. Cover queue navigation and cursors, request-ID links and reloads, backend status summaries above history, refresh, empty queues, and accessibility. A summary with a newer state than the history verifies that the UI does not reconstruct status from events. - Share image loading, schema application, and port lookup helpers. Both browser runners use the Bazel-pinned Compose executable from uber#830. - Update Bazel targets and visibility, workspace entries, runner commands, and test documentation for the new layout. Tests emit queue and request-page screenshots as Bazel test outputs. ## Test Plan Latest validation passed all 32 targets, including both services' real-stack browser suites: ```sh ./tool/bazel test //web:check //web/test/e2e/submitqueue:web_test //web/test/e2e/stovepipe:web_test --test_output=errors ``` Repository formatting, lint, module tidy, and Gazelle checks also passed. Browser tests require a running Docker daemon; Bazel supplies Compose and the browser. ## Stack 1. uber#842 — shared-package refactoring 2. uber#837 — Stovepipe frontend 3. uber#838 — browser coverage and E2E organization 4. uber#844 — host logging integration
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.
Why?
Much of the structure around the new SubmitQueue UI is reusable for a Stovepipe UI as well. This PR pulls out common components into shared packages that can be used across both services to minimize duplication.
What?
web/platform(@submitqueue/web-platform).web/service/shared(@submitqueue/web-service-shared). Service-specific configuration stays in the host.Test Plan
Shared-package checks and the existing SubmitQueue browser suite passed; the latest rebased stack passed all 32 targets with
./tool/bazel test //web:check //web/test/e2e/submitqueue:web_test //web/test/e2e/stovepipe:web_test --test_output=errors. To validate this PR independently:./tool/bazel test //web:check //web/test/e2e:web_test --test_output=errorsRepository formatting, lint, module tidy, and Gazelle checks also passed.
Revert Plan
Revert dependent PRs #844, #838, and #837 first if merged, then revert this PR to restore the original SubmitQueue package layout.
Stack