~

Roadmap

Zero-click Maintenance

Summary

An Urbit ship should maintain itself so that a user does not need to intervene to keep it running properly. In order for this to be true, the ship needs to be reliable, handle upgrades properly, and manage its resources (e.g. RAM and disk space) efficiently.

Projects

Completed

Ames Bug Fixing

start date

2022-11-01

end date

2023-03-31

Multiple bugs were introduced by a major release in mid-2022, called the "gall request queue fix". `~norsyr-torryn` is fixing these bugs.

Current

Epoch System

start date

2021-03-27

end date

2023-04-28

Chunk Event Log into Epochs

Next Up

Breadth-First Arvo Move Order

duration

2 Months

Switching from Arvo's current "depth-first" move order to "breadth-first" intends to improve the reliability of parts of the kernel, including upgrades and breach handling, by switching to chronological ordering of intra-event delivery of moves to vanes.

Next Up

Jet Dashboard Experiments

duration

2-4 Months

Experimenting with different designs for the jet dashboard could improve performance, security, and general simplicity of the codebase.

Future

Arvo/Vere Error Handling

duration

TBD

owner

TBD

There are a number of cases where Arvo can crash in a way where it gets into an inconsistent state (e.g. Clay does not always handle Ames crashes properly) or gets stuck on something and fails to continue to make progress.

Future

Automatic Binary Upgrades

duration

TBD

owner

TBD

Arvo updates itself over the air, but current Vere does not. We should let the binary update itself by downloading a new version and replacing itself with that, instead of forcing the user to run terminal commands to stay up to date.

Future

Automatic Error Handling on Replay

duration

TBD

owner

TBD

If Vere hits a nondeterministic error on replay, it should retry instead of giving up and crashing.

Future

Automatic Memory Pack/Trim/Meld

duration

TBD

owner

TBD

Future

Better Arvo/Vere Version Negotiation

duration

TBD

owner

TBD

Improving the Arvo/Vere version negotiation will increase release rate by reducing the amount of work it takes to release a new Kelvin version.

Future

Clay Sync Error Handling

duration

TBD

owner

TBD

The filesystem I/O driver doesn't handle filesystem errors properly, which can cause desynchronization between Unix and Clay. Fixing this would improve developer experience and general reliability.

Future

Mars/Urth Split

start date

2021-01-21

Move event log management into the same Unix process that manages snapshots.

Future

Add +on-rift or Similar For Userspace Breach Handling

duration

1 Month

owner

TBD

Applications often have bugs when a peer breaches. Modifying the userspace/kernelspace API to give Gall agents clearer information about breaches should improve application reliability and developer experience.

Future

Refactor Ames Vane

start date

2022-12-01

end date

2023-03-16

The Ames vane could be shorter, easier to read, more performant, and easier to prove correct.

Future

Timer Improvements

duration

TBD

owner

TBD

Urbit's timer system could be better in several ways.

Future

Vere Error Handling

duration

1 Month

owner

TBD

There are a number of places where Vere crashes where it should instead handle the error and continue.

Future

Versioned Pokes and Subscriptions

duration

4-8 Months

owner

TBD

Standardizing application protocol versioning in the kernel should improve developer experience and lead to more applications behaving correctly across upgrades, thereby improving user experience too.