To avoid running into "duplicate wire" situations when we're just trying
to request the latest thing.
Additionally now does hash validation on http globs, and just silently
no-ops if the result we got came from a previous request.
We can no longer rely on landscape to be installed and serving a
channel.js, so we bring our own.
App discovery works through gall now. We can only ask per desk though,
so we still need to talk to clay for the set of desks.
When you loaded an app with an error, then fixed the error, it would
create the main gall %mult subscription at a time in the past. Then,
clay would never fill the subscription since it couldn't get the old %a
entries for the apps.
This fixes the issue in two ways: first, don't subscribe in the past.
Second, if clay can't get the old versions, just fire the subscription
anyway.
If we didn't have a charge for it yet, adding its new docket would
previously fail. Here we make sure this doesn't crash.
The local install case was hitting this.
Remote install send a %commit because they receive new files. Local
installs never receive files, so weren't notifying kiln subscribers.
Here we "manually" send a %commit fact when installing a local desk.
We forego making solid.pill the multi-desk one for the time being, since
there is no "light boot" mode for the multi-desk pill yet, and it
doesn't work with -A, which could lead to unexpected errors.
The base desk is the new default. If we leave the dir untouched, for
most users this means they remain on home, which gets rendered
explicitly in the prompt since it's no longer the default desk.
Previously, if trying to bind to an endpoint that was already bound to,
eyre would reject it. This doesn't play very nicely in a softdist world
where uninstalled apps might not get a chance to clean up, and apps
might re-bind simply for being re-installed.
Here we change eyre to overwrite an existing binding if it conflicts
with the new one to be added.