For rendering a data table or just a single table row respectively.
Table data is a list of header names, a list of width restrictions, and a list
of rows, defined as lists of dimes.
Row contents are rendered as per the aura in the dime. This also determines
their alignment (left/right), and how they break to fit smaller-width columns.
%row was added because %table necessitated implementing it. Whether it's a good
fit for the shoe "protocol" remains to be seen.
Also removes a blurb about accepting emailed patches; this
has never happened in practice, and we don't supply
maintainers' emails. Sticking to what we know we support
is best.
Barebones 2-way diff thread. Further development should include:
- recognize at least %txt and %hoon diff types as (urge:clay cord) and
print them prettily
- check if they're directories and recurse through them, noting files
that exist in one or the other and diffing ones that exist in both
- support 3-way diffs. Since we know the desks they're on, we can find
a mergebase (see how +trouble gets the base-hash in #3378) and do a
3-way diff.
- extend the above to support all the useful diffs, including
diff3(a,b), diff2(mergebase(a,b),a) and any other useful ones.
This was hidden in urbit-os-v1.0.44 until we could ensure it actually
logged you out of all sessions. It requires a hidden input to function,
so it's added here.
Fixes#2649.
Ordinarily, eyre cleans up the relevant gall subscriptions whenever a
channel disappears. In yet unresolved erroneous behavior though, it may
leave a gall subscription open, despite wiping the channel from state.
Attempting to pass the response onto the deleted channel anyway results
in an %eyre-no-channel error later in the event. The volume of these
errors can degrade the user experience, as per #3196.
To resolve the annoyance (but not the underlying issue) we detect the
"subscription has no channel" case, and issue a %leave. Doing so
requires additional information in the wire, so we add that in,
refactoring the relevant wire building along the way.
Note that due to the wire requirements, this cannot resolve existing
cases. For that, we depend on bc929ba6d.
As part of the solution to #3196, we need to clean up any gall
subscriptions that eyre didn't properly clean up.
Since detecting that is hard, we opt to just wipe _all_ eyre-originating
subscriptions from gall. We inspect the duct, which isn't good, but it's
only just this once.