-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(turborepo): web ui #8895
feat(turborepo): web ui #8895
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
9 Skipped Deployments
|
🟢 Turbopack Benchmark CI successful 🟢Thanks |
✅ This change can build |
|
c857ccc
to
1abcc6b
Compare
1abcc6b
to
23fd9b2
Compare
6592b5f
to
96183a6
Compare
No dependency changes detected. Learn more about Socket for GitHub ↗︎ 👍 No dependency changes detected in pull request |
96183a6
to
76fed76
Compare
2221f05
to
21dc102
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like tests are failing.
Aside from that just a minor comment on use of RefCell
inside of Mutex
.
pub async fn start_server( | ||
rx: tokio::sync::mpsc::UnboundedReceiver<WebUIEvent>, | ||
) -> Result<(), crate::Error> { | ||
let state = Arc::new(Mutex::new(RefCell::new(WebUIState::default()))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if I understand the use of RefCell
inside of the Mutex
. Doesn't the Mutex
already ensure that there's only ever one access to the underlying data at a time? Why are dynamic borrows necessary inside of the restriction?
If this is necessary a quick comment explaining why would be very appreciated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's so Subscriber
can mutate the state even though it's behind an immutable reference. We can't have a mutable reference because Query
also needs to hold a reference to it.
Description
Implements a very very alpha version of a web UI. Uses a GraphQL query to get the current run and tasks.
Testing Instructions
Would love some ideas here on tests.
To try out manually, go to #35066 in the other repo and run
turbo-studio
, then execute a turbo command with theui
flag set toweb