We're going to want to pull in the new /lib/strandio, which we need to
be able to build. The signature for %keen changed, so the old
/lib/strandio no longer compiles.
If we had a custom version of /lib/strandio that excluded the +keen
arms, we could be 412-411 cross-compatible...
This enables using [Cloudflare R2][0] as a storage provider.
Cloudflare R2 is an S3-compatible API with a generous free tier; it
looks like it may cost nothing for most Urbit ships’ usage patterns.
The only hitch is that R2’s endpoint is not able to be configured to
be publicly readable; in order to [make a bucket public][1], you must
either use an r2.dev URL, or set up your own custom URL. Caching and
such is only supported on your own URL, so it sounds like that’s the
case they’re encouraging people to target.
This change enables R2 support by adding a configuration option to
set a public URL base. If it is non-empty, it replaces the origin
for any S3 upload URLs. A ship may use either its r2.dev URL or a
custom URL at its discretion. As a nice side benefit, this also
allows wrapping S3 access over a custom domain that you control.
[0]: https://www.cloudflare.com/developer-platform/r2/
[1]: https://developers.cloudflare.com/r2/buckets/public-buckets/
* skip sponsor checks for galaxies (avoids a crash in /app/vitals/hoon)
* mark peers unknown to %ames as %dead (avoids a crash in /ax/peers/...)
* change thread input from @p to (unit @p) (allow calling from dojo)
And, crucially, re-establish subscriptions in the cases that got broken
by the poor %kick handling. These are cases where we think %chi
(subscription established), but there is no matching subscription to be
found in the bowl.
Fixes LAND-1407, or at least its common cause.
Avoids having to force all third party developers to push new globs
synchronously with this update. We simultaneously support unencoded and
encoded paths by only url encoded if the unencoded path does not exist
in the glob.
/lib/summarize now supports building summaries off of the new
/app/channels. If that agent is running, it will use the new
summarization logic. If it's not, it will continue on as it has.