Releases: urbit/urbit
410k-6
%base hash (check with +vats %base, =verb %.y): 0v1v.sg2ab.de1tl.8h81h.qeerm.2hpi5.rufb4.em1eg.r6eck.od0ij.ifsdj
Description
410k-6 is a minor release with the following bugfixes:
- A pill with an agent that would make an HTTP request in the +on-init arm would crash during boot.
- The
help
face in the dojo was able to be rebound. - The /puby jael scry took an @p instead of a @ud for the life.
- The dead flow mitigations in 409 would cause harmless but verbose crashes if the counterparty was still on 410.
What's Changed
- jael: interpret life in /=puby= scry as @ud by @will-hanlen in #7231
- ames: fix %ahoying %alien peer by @yosoyubik in #7232
- iris: handle requests when we don't yet have a duct by @pkova in #7235
- ames: remove prints by @yosoyubik in #7234
- ames: silent crash for /gf pleas by @yosoyubik in #7236
- dojo: prevent binding to %help by @syzygy137 in #7200
- Release 410k-6 by @pkova in #7241
New Contributors
- @syzygy137 made their first contribution in #7200
Full Changelog: 410k-5...410k-6
410k-5
%base hash (check with +vats %base, =verb %.y): 0vc.5mhk7.7a76d.37rju.mvoai.hv568.ho2gn.j4u4u.npoe0.c9iub.f8ges
Description
410k-5 is a minor release aiming to address two issues:
- Eyre http channels were using way too much memory. Reconnecting to a channel with a few megabytes of base64 encoded images in them would require hundreds of megabytes of loom.
- Upgrading to 410 from a ship still stuck on 411 was broken since 410k-3.
What's Changed
- ames: add %turf to $sign to not break old queued-events by @yosoyubik in #7223
- eyre: make channels operate on cords instead of tapes by @pkova in #7224
- Release 410k-5 by @pkova in #7226
Full Changelog: 410k-4...410k-5
410k-4
%base hash (check with +vats %base, =verb %.y): 0v1j.l6b4f.5ic0r.7s9g3.11l6k.pqrkl.f2rr3.1lm72.30f05.eirk1.lsg0s
Description
This release fixes a directed messaging regression introduced by 410k-3 yesterday. Packet retry timers on directed messaging enabled peers would drop the gifts in the middle of handling the timer, causing packet retries to not fire after the initial five seconds.
What's Changed
- mesa: fix +sy-prod by @yosoyubik in #7221
- Release 410k-4 by @pkova in #7222
Full Changelog: 410k-3...410k-4
410k-3
%base hash (check with +vats %base, =verb %.y): 0v8.shk83.oog5l.12co7.om7hb.rktca.0isud.dif1f.q4026.3lgj7.7llm7
Description
This release fixes several longstanding bugs:
- Suspended agents receiving subscription facts would drop them on the ground instead of storing and applying them when getting revived.
- Sponsorship changes were not registered properly on the ship that changed its sponsor.
- Essential desks was suspending non-essential desks unnecessarily aggressively on an OTA even if the desk was compatible.
- Double boot protection had problems in scenarios where a ship had migrated their galaxy to directed messaging.
- Subscriptions in Eyre were not getting cleaned up properly, causing a memory leak in rare circumstances.
- Toggling dead flow consolidation back and forth would create tons of unnecessary behn timers for ames.
- If a ship crashed non-deterministically (ctrl+c, oom etc.) the very moment someone was asking the ship for its moon keys the moon keys would never get delivered.
What's Changed
- clay: only suspend non-essential desks when not compatible by @pkova in #7178
- gall: fix clear queue when reviving agents by @yosoyubik in #7181
- ames: fix double boot protection by @yosoyubik in #7185
- eyre: use original listener on delete/unsubscribe by @yosoyubik in #7188
- lull: remove egg-17 by @yosoyubik in #7190
- clay: ignore bad desks in +suspend-non-essentials by @pkova in #7194
- roller: update tx gas cost as per EIP-7623 by @yosoyubik in #7206
- ames: remove deferred %jael gifts timer by @yosoyubik in #7207
- ames: merge #7161 and #7106 by @yosoyubik in #7195
- ames: don't give %done for nacked %corks after naxplanation by @yosoyubik in #7106
- ames: only route $key/$turf gifts to |mesa by @yosoyubik in #7211
- ames: do %stir to remove duplicate %ben timers by @yosoyubik in #7212
- ames: only call +abort:peer-core on dead-flow timer by @yosoyubik in #7210
- ames: refetch public-keys by @yosoyubik in #7213
- ames: remove %turf $gift from %jael by @yosoyubik in #7215
Full Changelog: 410k-2...410k-3
410k-2
%base hash (+check with +vats %base, =verb %.y): 0v1l.6h9mk.s675m.jmi9q.g5isc.20q0l.g6r86.36v92.1l6db.li3hh.6r68a
Description
410k-2 is a minor arvo release intended to fix two issues:
- A direct upgrade from 411 to 410-1 was impossible. All ships that didn't have already have the initial 410 release were unable to upgrade.
- A small amount of ships were unable to utilize double boot protection because of a parsing / serialization mismatch.
This release also brings improvements to /lib/math
.
What's Changed
- ames: add %tune to $sign to not break old queued-events by @yosoyubik in #7171
- math: better +sqt with newton's method by @Fang- in #7125
- math: inverse trigonometric functions by @Fang- in #7126
- eyre: fix double boot protection bone format by @pkova in #7174
- #7126 but for develop by @pkova in #7177
- Release 410k-2 by @pkova in #7179
Full Changelog: 410k-1...410k-2
410k-1
Description
%base hash: (check with +vats %base, =verb %.y): 0v1f.9teg3.e6538.1r1ha.g3d06.am3ht.1rj7i.4doco.saini.3rag8.dm94r
410k-1 is a minor bugfix release addressing the following issues:
- Directed messaging was unable to handle a very old wire format existing on some old ships.
- Ships that were converted to directed messaging were not properly being reset back to old ames when they breached.
- The interface for for %keen was extremely confusing in 410. The gift that was received was a %tune from peers using old ames and a %sage for peers converted to directed messaging. In this 410 release we change these to always return a %tune. In the next 409 release we will consolidate everything to a %sage which is the new directed messaging gift.
- When communicating with a moon a ship always asks its parents for the keys of the moon. If by some unfortunate circumstance the parent crashed just as it received the request for the moon keys they would never get delivered, and communication between the client and the moon would never happen.
This release also adds support for using Authorization headers instead of cookies for Eyre authentication, double boot protection fixes and many directed messaging bugfixes.
The most important change of this release is the following:
Urbit provides extremely unusual guarantees for userspace Gall agents. Namely, when you poke or subscribe to a ship it is guaranteed that these actions will eventually be delivered to the ship without a need for the userspace application to have any retry logic. This guarantee is implemented through Ames retrying these pokes or subscriptions every 2 minutes until the ship in question responds. In normal operation all is at it should be, however...
If a ship receives a poke or a subscription for a Gall agent that is not active it will ignore the packet. This design decision enables a kind of reactivity later if the ship does install the agent. But if this ship never installs the agent then the sender is on the hook to send this packet every 2 minutes forever! And even though the receiver ignores the packet it still gets written to disk through the event log. We have seen ships in the wild with a hundred thousand of these "dead flows" firing every two minutes. Most older ships suffer from this issue, and notably there is currently no way to recover from the dead flows other than breaching.
If your ship feels slow the root cause is almost always these dead flows.
410k-1 provides the first layer of mitigation for these dead flows. Every message that has been tried 100 000 times or more will now back off to a day instead of two minutes. We have other mitigations in the pipeline.
What's Changed
- zpgl fix by @Quodss in #7132
- update url by @galenwp in #7153
- mesa: handle old bone wires with no rift by @yosoyubik in #7154
- Revert "zpgl fix" by @pkova in #7156
- double boot protection fixes by @pkova in #7157
- ames: retry dead flows once a day with some jitter by @pkova in #7160
- mesa: bug fixes by @yosoyubik in #7152
- eyre: accept session token from request header by @Fang- in #7109
- mesa: client handling of %sage in 410K by @yosoyubik in #7165
- mesa: client handling of %sage by @yosoyubik in #7163
- jael: handle %nacked /public-keys $plea by @yosoyubik in #7167
- ames: fix breach handling by @yosoyubik in #7168
Full Changelog: 410k...410k-1
410k
%base hash (+check with +vats %base, =verb %.y): 0v1a.kt0d8.rvtjm.fkmp2.oblo6.oq3jp.mahql.22k1d.ilrdk.rljer.ift9b
zuse 410
arvo 236
lull 322
hoon 137
Description
410 is a major release with the following highlighted features:
- Directed messaging, aimed at improving the reliability especially speed of Ames networking.
- Double boot protection, aimed at fixing one of the most common failure scenarios of operating a ship.
- Essential desks, preventing the most common upgrade failure scenario.
- Lagoon, native matrix math for Urbit.
- HTTP streaming, exposing the scry namespace to the web with caching in the runtime.
- Memory usage statistics in arvo, aimed primarily at helping hosting providers monitor their ships.
- Stateless urwasm support for running Earth programming languages inside Arvo.
Directed messaging guide
Directed messaging has to be turned on manually on a peer-by-peer basis in 410. We will enable directed messaging for all ships in kelvin 409.
To migrate a peer to directed messaging, run the following command:
|ahoy <the-ship>, =dry %.n
If the command was successful you can try sending the peer a 16 megabyte |hi
:
|hi <the-ship> (bex (bex 27))
If for some reason it becomes necessary to migrate the peer back to old ames use the following command:
|rege <the-ship>, =dry %.n
Breaking changes
There are very few breaking changes in 410, most applications will be compatible with no changes.
- Moon keyfiles generated with arvo versions 411 and above are not compatible with 410 and the corresponding vere release
vere-v3.2
. To use a moon with an old keyfile, rotate the keys on the parent with|moon-cycle-keys <moon-name>
after upgrading the parent to 410. Keyfiles for other classes of ships are unaffected. - The http scry url format has changed. Note that this does not affect scrying through
js-http-api
:
old: https://dinleb-rambep.arvo.network/_~_/cx/===/sys/kelvin
new: https://dinleb-rambep.arvo.network/_~_/===/cx/sys/kelvin
- The infamous
|hi
has a little known optional argument that allows you to send a message with your hi. This message is now of type atom instead of a tape. One byproduct of this is you can send a very large|hi
to other ships, not recommended unless you're on directed messaging. - Certain generators and threads have been namespaced, such as
+keys
becoming+jael/keys
. The most commonly used generators such as+vats
remain unchanged.
What's Changed
- zuse: add blake3 by @lukechampine in #6802
- Merge develop to next/kelvin/410 by @pkova in #6993
- Merge develop to next/kelvin/410 by @pkova in #7024
- Nathan/crc32 by @nathanlever in #6997
- Add error message testing arm by @sigilante in #6908
- Create userspace utility libraries. by @sigilante in #6999
- Refactor /gen and /ted in %base; improve +help by @sigilante in #7017
- Add Easter egg at the Dojo prompt. by @sigilante in #6960
- Create /lib/math. by @sigilante in #7000
- eyre & scry endpoints for double boot protection, and rift to keyfile by @ripperi in #7005
- Merge master back to develop after 411k-3 by @pkova in #7036
- lull: do not validate %thread-done in the +strand monad by @pkova in #7035
- clay: respect the gang system by @pkova in #7038
- Fixing comment in test.hoon by @IzaacMammadov in #7039
- hoon: faster implementation of tuple indexing by @belisarius222 in #7034
- Add a Dojo help message on start. by @sigilante in #7031
- Add -new-app thread to build from repo /desk by @sigilante in #7026
- hoon: generalize +trim by @Fang- in #6887
-new-app
branch and directory by @Quodss in #7046- Add txt/tang mark conversion by @sigilante in #7045
- Merge develop into next/kelvin/410 by @pkova in #7050
- eyre: use a-co:co not +format-ud-as-integer by @midden-fabler in #7053
- dill: implement %mass & %meme memory reports by @tinnus-napbus in #7037
- base: add egg-any mark by @midden-fabler in #7055
- Merge develop to next/kelvin/410 by @pkova in #7060
- eyre: add scry endpoint for http streaming by @midden-fabler in #7033
- dbug: fix debug authentication redirect for comet identities by @pkova in #7059
- gall: delete agent blocked moves on |nuke by @pkova in #7063
- mesa: misc. bugfixes by @yosoyubik in #7064
- Merge develop to next/kelvin/410 by @pkova in #7066
- Lagoon IEEE 754 floats by @sigilante in #6971
- UIP-0109: Essential Desks by @ripperi in #6862
- clay: fix error flopping by @midden-fabler in #7052
- hoon: expand =| through ^* to enable constant-folding by @joemfb in #6981
- autoprop: update for 411 by @Fang- in #7077
- eyre: don't %grow if duct not initialized yet by @Fang- in #7078
- clay: don't set zest %live unless zuse compat by @tinnus-napbus in #7075
- eyre: ensure initial channel response has a body by @Fang- in #7080
- dns: improve automatic dns configuration by @tinnus-napbus in #7074
- eyre: improve test ergonomics slightly by @Fang- in #7081
- Merge master back to develop after fine (eauth) fix by @pkova in #7083
- Merge master back to develop after 411k-4 by @pkova in #7085
- mesa: refactor and QoL improvements by @yosoyubik in #7042
- 410 by @pkova in #7091
- arvo: kelvin 410 by @joemfb in #6962
- [WIP] mesa: add Directed Messaging protocol by @yosoyubik in #6932
- hoon: adds new atom ops by @joemfb in #6961
- lull: adds $plot by @joemfb in #6963
- zuse: add chacha by @joemfb in #6978
- 410k-1 (misc fixes) by @yosoyubik in #7093
- gen: add |gall-lave to delete stale bitt.yoke by @yosoyubik in #6822
- fix shar:ed jet mismatch, add luck:ed, scad:ed, scap:ed, scas:ed, sign-raw:ed, sign-octs-raw:ed by @newxiphiness in #7094
- 401k-2 (misc. fixes) by @yosoyubik in #7096
- chore: remove redundant words in comment by @crystalstall in #7098
- eyre: separate session timeout for guest and auth by @Fang- in #7102
- eyre: don't drop session expiry timer by @Fang- in #7103
- mesa: misc fixes by @yosoyubik in #7099
- Urwasm by @Quodss in #7095
- dojo: stop thread after backspace cancel by @yosoyubik in #7105
- mesa: update /~/boot endpoint to support |mesa peers by @yosoyubik in #7107
- azimuth-rpc: remove team check on-watch by @yosoyubik in #7101
- eyre: explicit 401 instead of implicit downgrade by @Fang- in #7076
- mesa: test migration before sending %ahoy $plea by @yosoyubik in #7108
- ames: fix ping-bone detection in %boot scry by @pkova in #7110
- clay: handle desks with no /sys/kelvin by @yosoyubik in #7120
- eyre: respond to bad methods on channels endpoint by @Fang- in #7119
- mesa: misc fixes (cont) by @yosoyubik in #7114
- hood: fix +vats for mssing /desk/bills by @yosoyubik in #7121
- mesa: moar misc fixes by @yosoyubik in #7123
- Merge master back to develop by @yosoyubik in #7133
- ames: moar fixes vol. II by @yosoyubik in #7127
- mesa: check gang for inner %chum namespaces by @yosoyubik in #7134
- ames, mesa: rederive keen paths with new public/private keys by @yosoyubik in #7136
- mesa: improve migration/regression checks by @yosoyubik in #7137
- mesa: focus ev-core on peer before decryption by @yosoyubik in #7138
- mesa: move path-decryption to helpers chapter by @yosoyubik in #7139
- Release 410 by @pkova in #7146
New Contributors
- @n...
411k-6
%base hash (check with +vat %base): 0v3.o67ps.cq1fl.tk52p.jj2dg.d11ug.rlfum.9kpgl.2f08g.eluvl.1lu71
Today ~sarlev-sarsen discovered that some ships were showing their Azimuth ethereum block as being far in the future. This was caused by an Infura incident that briefly routed all HTTP requests to the Optimism blockchain instead of the Ethereum blockchain (https://status.infura.io/incidents/g9vzrcm5cv20). Most ships regrettably listen to Ethereum through an Infura node operated by Tlon, but this incident only lasted 10 minutes so not every ship was hit.
411k-6 fixes the issue for all affected ships.
This release is on ~zod and is propagating across the network.
What's Changed
- eth-watcher: rewind last block by @yosoyubik in #7129
Full Changelog: 411k-5...411k-6
410k-rc3
%base hash (check with +vats %base, =verb %.y): 0v1h.uvkp6.s8rfr.72una.v9saj.n3eck.bfioe.iv4q5.t220o.5opp7.rhni9
Description
During pre-release testing of 410k-rc2 a few issues were discovered:
- Double boot protection had a bug affecting old ships and another one for ships who were migrated to directed messaging.
- The directed messaging driver would be unnecessarily conservative in using direct routes.
- The manual migration for directed messaging was not performing enough sanity checks for the peer before executing the migration.
For testing guide, see the release notes for 410k-rc1.
What's Changed
- eyre: improve test ergonomics slightly by @Fang- in #7081
- mesa: update /~/boot endpoint to support |mesa peers by @yosoyubik in #7107
- azimuth-rpc: remove team check on-watch by @yosoyubik in #7101
- eyre: explicit 401 instead of implicit downgrade by @Fang- in #7076
- mesa: test migration before sending %ahoy $plea by @yosoyubik in #7108
- ames: fix ping-bone detection in %boot scry by @pkova in #7110
Full Changelog: 410k-rc2...410k-rc3
410k-rc2
%base hash (check with +vat %base, =verb %.y): 0vp.694fn.28f63.t8kk4.f7r4k.qnfkq.ud5dp.vl28c.ph3ab.qg3of.3slrm
Description
During pre-release testing of 410k-rc1 some issues were discovered:
- Cancelling remote scry threads with backspace was unreliable at best.
- The
%shut
group encrypted remote scry namespace was not working. - Migrating ships to directed messaging was not possible in all cases.
- The runtime could exit ungracefully with a crash on ctrl+d when cleaning up DM driver timer handles.
- The DM driver would leak memory because of an unbounded remote scry cache and an unlimited pending interest table lifetime.
This release candidate fixes all of these issues. We also added stateless Urwasm to the 410 release.
For testing guide, see the release notes for 410k-rc1.
What's Changed
- Urwasm by @Quodss in #7095
- dojo: stop thread after backspace cancel by @yosoyubik in #7105
Full Changelog: 410k-rc1...410k-rc2