posit-dev / publisher

MIT License
5 stars 0 forks source link

Handle inability to interact with extension until it is ready. #2204

Open mmarchetti opened 2 months ago

mmarchetti commented 2 months ago

Loading the extension with an extremely large subdirectory shows no progress indicator as the extension is initializing.

We should display progress indicator as extension is performing its initial loading. That would at least show we are still not up.

The following video shows the experience, note that multiple requests are going to the agent requesting the files, but are not answered immediately, due to the active git enumeration.

During this time, clicking on any piece of our homeview does nothing immediately (the clicks are queued up and executed once the git extension has stopped pounding the disk and processor).

https://github.com/user-attachments/assets/0bfb4981-991e-44c1-94ca-c15008da75fa

dotNomad commented 1 week ago

This still occurs, but we have done some things to make it better.

The home view shows a loading bar (most of the time). It doesn't show one while we wait for the files API to return since that is in response to file watchers. If we made that show a loading bar it would show on every file change / deletion / addition which probably isn't the right call.

I was able to reproduce this, and I completely hung the extension sidebar, attempting to publish a index.html in a large web project. Our files API attempted to follow node module symlinks, and all that fun stuff.

Of course this is a contrived example since we don't expect that sort of content, but for the sake of recreating it...

jonkeane commented 1 week ago

Of course this is a contrived example since we don't expect that sort of content, but for the sake of recreating it...

This honestly doesn't sound super contrived. Publishing static HTML isn't a core differentiator of connect, but it is a feature people use, and lots of nested files isn't unconceivable

dotNomad commented 1 week ago

This honestly doesn't sound super contrived. Publishing static HTML isn't a core differentiator of connect, but it is a feature people use, and lots of nested files isn't unconceivable

If having similar numbers of folders/files to node_modules in a web app is something we are expecting, then this is definitely an issue we should solve.