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.
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.
Syntax is +desk#gen. (We can probably find something nicer.)
:app|gen desugars to :app +desk#gen, where the desk is the desk the app
is running on.
:app|desk#gen currently broken, in the sense that the above desugaring
takes precedence.
+on-load just aborts any running user action to avoid having a
monstrously large state adapter.