Skip to content

Releases: urbit/urbit

408k-rc2

12 Jun 12:38
192187b

Choose a tag to compare

408k-rc2 Pre-release
Pre-release

%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

New Contributors

Full Changelog: 408k-rc1...408k-rc2

408k-rc1

28 Apr 15:07
0f94550

Choose a tag to compare

408k-rc1 Pre-release
Pre-release

%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

New Contributors

Full Changelog: 409k-2...408k-rc1

409k-2

02 Mar 13:37
d0ac04d

Choose a tag to compare

%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

Full Changelog: 409k-1...409k-2

409k-1

19 Jan 15:34
0f1edf1

Choose a tag to compare

%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

Full Changelog: 409k...409k-1

409k

10 Dec 13:12
c767abc

Choose a tag to compare

%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

Full Changelog: 410k-6...409k

409k-rc1

03 Dec 19:36
0f0ad2f

Choose a tag to compare

409k-rc1 Pre-release
Pre-release

%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

Full Changelog: 410k-6...409k-rc1

410k-6

22 Sep 11:59
109fbbb

Choose a tag to compare

%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

New Contributors

Full Changelog: 410k-5...410k-6

410k-5

01 Sep 11:01
f7146bf

Choose a tag to compare

%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:

  1. 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.
  2. 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

21 Aug 13:13
41dd3b5

Choose a tag to compare

%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

Full Changelog: 410k-3...410k-4

410k-3

20 Aug 12:17
9e5cb36

Choose a tag to compare

%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

Full Changelog: 410k-2...410k-3