Releases: urbit/urbit
408k-rc2
%base hash (check with +vats %base, =verb %.y): 0v8.unm41.qat06.cjiul.cam3o.dd02t.dijqg.a1r75.s0nqs.h6sen.nt1dj
Description
During pre-release testing of 408k-rc1 a number of issues were discovered:
Comet-to-comet pokes could exceed the 1472 byte MTU when using the directed messaging protocol. These pokes would fail to get forwarded by galaxies nor would they be ingested by the receiver. We now split up the poke packet when detecting this scenario.
Sending pokes larger than 268 megabytes would fail to get processed in any way on the receiver, causing a heavyweight retry every two minutes from then on out. We now implement policies on the receiver to nack these massive pokes.
Ford lightning caches would accumulate endlessly, especially on developer ships with frequent commits. To address this we introduced the %drop hint at the start of clay to discard the caches every time clay or its dependencies gets rebuilt.
The meld subcommand would discard the persistent nock caches and the ford caches by default. This caused surprising performance behavior, especially with regards to building marks. Melding will now keep both caches around by default, they can be dropped manually if needed with the --memo-drop and --ford-drop cli flags, respectively.
What's Changed
- Autoprop: Fix args for brass pill by @yapishu in #7344
- Fall through to cookie if Auth header fails by @mopfel-winrux in #7312
- %meld options by @dozreg-toplud in #7345
- mar: support brass pill by @yosoyubik in #7346
- tests: add tests for h136 type-of-type migration by @Fang- in #7348
- clay: %drop hint in clay.hoon by @dozreg-toplud in #7349
- behn: migrate inner vases in drip %writs by @yosoyubik in #7351
- mesa: fix read comet attestation by @yosoyubik in #7347
- eyre: use extension in range scries by @dozreg-toplud in #7355
- mesa: replace %data packet with %auth if over MTU by @yosoyubik in #7358
- mesa: handle multi jumbo-frame pages by @yosoyubik in #7361
- mesa: handle over-mtu %peek by @yosoyubik in #7360
- mesa: remove print by @yosoyubik in #7363
New Contributors
Full Changelog: 408k-rc1...408k-rc2
408k-rc1
%base hash (check with +vats %base, =verb %.y): 0v1f.8rfhf.gck0h.bdgic.td3kk.muapf.ett6q.q8sra.188jt.hlai3.71c37
Description
408k is a major release with the following highlighted features:
- Ships will automatically start migrating each other to directed messaging as soon as they hear a message from the ship in question. Both ships have to be on 409k-2 or later to migrate.
- Ford lightning gets rid of the custom caches in in clay and migrates them to persistent nock caches in the runtime. This allows us to build all marks eagerly, obsoleting the "mark-warmer" pattern.
- Doccords got removed from hoon because they had an adverse effect on compiler performance.
Breaking changes
All marks get eagerly built in 408, which means that all marks have to compile for a desk to be 408 compatible. During testing we have discovered that most desks have old unused marks laying around, preventing upgrade.
The @da string format accepts leading zeroes such as ~2026.01.01. If agents generate string representations (in wires etc.) of @da and wish to remain parsable on 409k and above they should use scot:h136.
The removal of doccords is the first "type of type" migration in this era. If your agent state stores instances of types you will have to write a state migration. Helper functions next-type:h136 and next-vase:h136 are provided, see /app/spider/hoon +old-to-8 for a practical example.
The map function del:by and the set function del:in would compile with parameters of the wrong type. This would cause examples like:
> =m *(map @ud @ud)
> (~(del by m) 1 2)to silently no-op instead of refusing to compile. This fix has surfaced a couple of bugs in %landscape and %groups.
Tisket =^ received a bugfix where expressions such as =^ b a `?(@ [b=* a=@ud])`~ [a b] will not compile. This would have caused a crash at runtime in the past.
Pre-release testing guide
To boot up a fresh 408k-rc1 ship do the following:
download the binary for your platform, alternatives below:
curl -O https://bootstrap.urbit.org/vere/edge/v4.4-9ff83fc/vere-v4.4-9ff83fc-linux-aarch64
curl -O https://bootstrap.urbit.org/vere/edge/v4.4-9ff83fc/vere-v4.4-9ff83fc-linux-x86_64
curl -O https://bootstrap.urbit.org/vere/edge/v4.4-9ff83fc/vere-v4.4-9ff83fc-macos-aarch64
curl -O https://bootstrap.urbit.org/vere/edge/v4.4-9ff83fc/vere-v4.4-9ff83fc-macos-x86_64
curl -O https://bootstrap.urbit.org/vere/edge/v4.4-9ff83fc/vere-v4.4-9ff83fc-windows-x86_64
download the 408k-rc1 pill (contains %base, %landscape, %groups and %webterm):
curl -O https://bootstrap.urbit.org/408k-rc1.pill
./vere-v4.4-9ff83fc-<os>-<arch> -F zod -B 408k-rc1.pill
Core developers have been running 408 on their main ships since the beginning of April. If you want to join them (no warranty!) you can download these desks from the live network:
|ota ~marnec-dozzod-marzod
|install ~marnec-dozzod-marzod %landscape
|install ~marnec-dozzod-marzod %groups
|install ~marnec-dozzod-marzod %webterm
You can use the binaries from above on your livenet ship, or you can modify the text file <your-ship>/.bin/pace to edge and then run <your-ship>/.run next.
What's Changed
- hoon: make +rest take unary arg instead of list by @Fang- in #7145
- hoon: UIP-135 style date parsing and rendering by @Fang- in #7257
- hoon: remove doccords by @Fang- in #7252
- hoon: lightly improve parser performance by @Fang- in #7273
- hoon: fix dig:by comment by @dozreg-toplud in #7277
- Suite C Crypto for GW (+crub replaced with +cric) by @tinnus-napbus in #7292
- hoon: expose old +co behavior for
@dabackcompat by @Fang- in #7294 - hoon: make +chip test through ?! by @Fang- in #7298
- hoon: make =^ require cells at compile-time by @Fang- in #7297
- ames: bump +stay tag to %30 by @tinnus-napbus in #7306
- eyre: prevent .local domains overriding eauth public domains by @tinnus-napbus in #7183
- ford lightning by @midden-fabler in #7291
- gall: move egg migrations into lull by @Fang- in #7311
- Reintroduce +crub by @bonbud-macryg in #7314
- strandio: fix +await-thread to stop using +sleep by @mikolajpp in #7289
- jael/ames: fix errors in +sign:as replacement logic by @tinnus-napbus in #7316
- dojo: fix poke perm check for dojo linking by @midden-fabler in #7317
- cric: add [cry sgn]:ex and restore +as from +crub by @xiphiness in #7327
- ames: account for pending-vane-ack on %flub by @yosoyubik in #7324
- ames: enable DM by @yosoyubik in #7208
- ames: no-op if we rekey with the wrong crypto suite by @yosoyubik in #7329
- eyre: preserves trailing zeroes in the length calculation of range requests by @matthew-levan in #7332
- mesa: revert double signing in %pawn namespace by @yosoyubik in #7336
- dbug: allow passing pokes to "deeper" dbugs by @Fang- in #7333
- hoon: ensure +del:by and +del:in are type-safe by @Fang- in #7335
- clay: make mark bushes optional in %tube by @dozreg-toplud in #7328
- mesa: remove entries from .tip after %cork by @yosoyubik in #7330
- clay: build all marks when a desk is loaded by @pkova in #7337
- aqua: fix aqua ames thread comet packet filtering by @tinnus-napbus in #7338
- clay/mice fixes by @dozreg-toplud in #7343
- hoon: fix +feck so we make less traps by @dozreg-toplud in #7318
New Contributors
- @bonbud-macryg made their first contribution in #7314
- @xiphiness made their first contribution in #7327
Full Changelog: 409k-2...408k-rc1
409k-2
%base hash (check with +vats %base, =verb %.y):
0v1l.j5i77.ga13o.okjjk.tv6m9.c9pg4.7i10l.9mgpp.shtut.q530n.41il8
Description
409k-2 is a minor release fixing some issues related to directed messaging migrations. We also add mark caching to threads that are activated via http and update the debug dashboard to show more information in the directed messaging regime.
What's Changed
- ames: refactor |ahoy flow by @yosoyubik in #7295
- ames: give %done error on %mate failure by @yosoyubik in #7296
- mesa: migrate and handle halted flows by @yosoyubik in #7300
- eyre: +tap:by the map, not +tap:in by @Fang- in #7299
- ames: add %mesa migration version 2 by @yosoyubik in #7301
- spider: cache marks by @yosoyubik in #7302
- dbug: update /~debug dashboard with %mesa state by @yosoyubik in #7304
- ames: fully check test $ahoy path by @yosoyubik in #7308
Full Changelog: 409k-1...409k-2
409k-1
%base hash (check with +vats %base, =verb %.y): 0v8.tmivg.6mnmk.2h9gl.cnicd.n9sba.k67d4.8vpa2.ve1kn.50di8.a7u66
Description
409k-1 is a minor release with fixes to the following issues:
-
Ships with dead flows created before 412k were unable to convert them to the system flow regime. These flows continued to retry every two minutes.
Use this dojo command to check how many ships you have upgraded to the system flow regime:
=+ .^ =(jug ship app=term) %gg /=//=/[%$] == ~(wyt by `(map ship (set term))`-) -
A suspended agent that gets revived processes all local and remote pokes and subscriptions it received while it was suspended. Since 410k-3 the poke-acks and watch-acks generated during revival to local agents would never be delivered.
-
Fix agent revival after emitting a %tend for writing group encrypted scry data.
-
Fix a rare scenario where establishing initial contact between a comet and galaxy would fail when using directed messaging.
-
We also restore the %aqua test runner to operational status with support for 409.
What's Changed
- gall: proper accounting of dummy 16-to-17 wire by @yosoyubik in #7271
- mesa: find correct galaxy sponsor for comets by @yosoyubik in #7272
- gall: add %b scry for blocked moves by @yosoyubik in #7279
- ames, gall: try to %flub in-progress $pleas by @yosoyubik in #7268
- aqua: support %zuse 409 by @yosoyubik in #7219
- ames: fix type check crash by @yosoyubik in #7280
- gall: account for %coop plots when reviving a nuked agent by @will-hanlen in #7282
- mesa: proper branching for resend of comet attestation by @yosoyubik in #7284
Full Changelog: 409k...409k-1
409k
%base hash (check with +vats %base, =verb %.y): 0v19.n4cpn.0d8d1.693uf.8anru.6fih8.o9cdo.rm1js.tuje0.os701.6kehr
Description
The network has constantly been under heavy load since soon after software distribution released. This is because when ship A pokes ship B the poke will keep retrying forever until ship B installs the agent being poked. This is true even if ship A has long since suspended or even nuked the agent!
409 ameliorates the issue by creating a system flow between ships A and B, effectively causing B to notify A when (if ever) he installs the agent. Until that time no more packets will be sent. It is worth noting that this is an important step for enabling directed messaging on the network as a default.
The release includes support for the quickboot brass pill that speeds up initial boot from minutes to seconds. We also enable the spin hint for ship performance monitoring, visit <your-ship>/~_~/spin to see it in action. 409 also enables stateful urwasm, building on the stateless urwasm capabilities shipped in 410.
Breaking changes
The gifts emitted from the remote scry %keen task have changed from a %tune to a %sage. Here are the old and new types:
+$ spar [=ship =path]
:: old
[%tune spar roar=(unit roar)]
+$ roar (tale:pki:jael (pair path (unit (cask))))
+$ oath @ :: signature
++ tale :: urbit-signed *
|$ [typ] :: payload mold
$: dat=typ :: data
syg=(map ship (pair life oath)) :: signatures
==
:: new
[%sage =sage:mess]
++ mess
=> |%
+$ auth (each @uxJ @uxH) :: &+sig, |+hmac
+$ gage $@(~ page)
+$ sage (pair spar gage)
--
$% [%page (trel spar auth @)]
[%peek spar]
[%poke (pair spar sage)]
==
The rarely used !@ (zappat) rune has its children's order changed. If the wing is present the second branch is now taken, if the wing is not present the first branch is taken.
The iris %request task will now honor the redirects count in the outbound-config. Previously the outbound-config was ignored. Note that bunt of outbound-config follows five redirects for the status codes 307, 303 or 301.
The +mure and +mute arms for untyped virtualization are now +mure:vi and +mute:vi respectively.
What's Changed
- Typo in hoon.hoon docs by @ilyakooo0 in #7155
- fastboot by @midden-fabler in #7124
- brass.pill LFS fix by @quodss in #7164
- %spin hint breadcrumbs by @mopfel-winrux in #7118
- hoon: virtualization core; namespacing by @quodss in #7162
- hoon: murmur3 revendor by @matthew-levan in #7186
- +checksum in zuse.hoon by @mikolajpp in #7058
- zuse: fix parsing of empty segment in +deft:de-purl:html by @mikolajpp in #7048
- hoon: pith tests and fixes by @Fang- in #7197
- Quodss/urwasm stateful by @quodss in #7128
- hoon: simpler ~? desugaring by @quodss in #7203
- fix muk jet by @quodss in #7198
!@reverse order by @quodss in #7205- iris: implement redirect following by @pkova in #7204
- ames, gall: handle dead flows to non-running agents by @yosoyubik in #7173
- hoon: fix +sink registration by @quodss in #7240
- mink: crash silently if no scry handler by @quodss in #7225
- mesa: fix resends of the %rege $plea by @yosoyubik in #7247
- pill: update brass and solid pills to
f2dc8333b7by @matthew-levan in #7248 - mesa: handle hearing a %boon when flow is in closing by @yosoyubik in #7229
- ames: fix prints by @yosoyubik in #7253
- Merge 409 to develop by @pkova in #7254
- %spin hint modification by @mopfel-winrux in #7258
- gall: on %fact give early %watch-ack for unacked subscriptions by @yosoyubik in #7256
- hoon: remove sigbars from +dish by @pkova in #7255
- gall: on %flub check if system flow is established by @yosoyubik in #7259
- ames: fix typo in ames migration message by @mikolajpp in #7260
- ames: fix handling $ack for %cork $plea by @yosoyubik in #7262
- ames: remove print by @yosoyubik in #7263
Full Changelog: 410k-6...409k
409k-rc1
%base hash (check with +vats %base, =verb %.y): 0v19.n4cpn.0d8d1.693uf.8anru.6fih8.o9cdo.rm1js.tuje0.os701.6kehr
Description
The network has constantly been under heavy load since soon after software distribution released. This is because when ship A pokes ship B the poke will keep retrying forever until ship B installs the agent being poked. This is true even if ship A has long since suspended or even nuked the agent!
409 ameliorates the issue by creating a system flow between ships A and B, effectively causing B to notify A when (if ever) he installs the agent. Until that time no more packets will be sent. It is worth noting that this is an important step for enabling directed messaging on the network as a default.
The release includes support for the quickboot brass pill that speeds up initial boot from minutes to seconds. We also enable the spin hint for ship performance monitoring, visit <your-ship>/~_~/spin to see it in action. 409 also enables stateful urwasm, building on the stateless urwasm capabilities shipped in 410.
Pre-release pill
The 409k-rc1 pill can be downloaded from bootstrap.urbit.org.
curl -O https://bootstrap.urbit.org/409k-rc1.pill
./urbit -F zod -B 409k-rc1.pill
The release is also on the network on ~marnec-dozzod-marzod, |ota ~marnec-dozzod-marzod to download it if you're feeling adventurous.
Breaking changes
The gifts emitted from the remote scry %keen task have changed from a %tune to a %sage. Here are the old and new types:
+$ spar [=ship =path]
:: old
[%tune spar roar=(unit roar)]
+$ roar (tale:pki:jael (pair path (unit (cask))))
+$ oath @ :: signature
++ tale :: urbit-signed *
|$ [typ] :: payload mold
$: dat=typ :: data
syg=(map ship (pair life oath)) :: signatures
==
:: new
[%sage =sage:mess]
++ mess
=> |%
+$ auth (each @uxJ @uxH) :: &+sig, |+hmac
+$ gage $@(~ page)
+$ sage (pair spar gage)
--
$% [%page (trel spar auth @)]
[%peek spar]
[%poke (pair spar sage)]
==
The rarely used !@ (zappat) rune has its children's order changed. If the wing is present the second branch is now taken, if the wing is not present the first branch is taken.
The iris %request task will now honor the redirects count in the outbound-config. Previously the outbound-config was ignored. Note that bunt of outbound-config follows five redirects for the status codes 307, 303 or 301.
The +mure and +mute arms for untyped virtualization are now +mure:vi and +mute:vi respectively.
What's Changed
- Typo in hoon.hoon docs by @ilyakooo0 in #7155
- fastboot by @midden-fabler in #7124
- brass.pill LFS fix by @quodss in #7164
- %spin hint breadcrumbs by @mopfel-winrux in #7118
- hoon: virtualization core; namespacing by @quodss in #7162
- hoon: murmur3 revendor by @matthew-levan in #7186
- +checksum in zuse.hoon by @mikolajpp in #7058
- zuse: fix parsing of empty segment in +deft:de-purl:html by @mikolajpp in #7048
- hoon: pith tests and fixes by @Fang- in #7197
- Quodss/urwasm stateful by @quodss in #7128
- hoon: simpler ~? desugaring by @quodss in #7203
- fix muk jet by @quodss in #7198
!@reverse order by @quodss in #7205- iris: implement redirect following by @pkova in #7204
- ames, gall: handle dead flows to non-running agents by @yosoyubik in #7173
- hoon: fix +sink registration by @quodss in #7240
- mink: crash silently if no scry handler by @quodss in #7225
- mesa: fix resends of the %rege $plea by @yosoyubik in #7247
- pill: update brass and solid pills to
f2dc8333b7by @matthew-levan in #7248 - mesa: handle hearing a %boon when flow is in closing by @yosoyubik in #7229
- ames: fix prints by @yosoyubik in #7253
- Merge 409 to develop by @pkova in #7254
- %spin hint modification by @mopfel-winrux in #7258
- gall: on %fact give early %watch-ack for unacked subscriptions by @yosoyubik in #7256
- hoon: remove sigbars from +dish by @pkova in #7255
- gall: on %flub check if system flow is established by @yosoyubik in #7259
- ames: fix typo in ames migration message by @mikolajpp in #7260
- ames: fix handling $ack for %cork $plea by @yosoyubik in #7262
- ames: remove print by @yosoyubik in #7263
Full Changelog: 410k-6...409k-rc1
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
helpface 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