~

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

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

Completed

Epoch System

Chunk Event Log into Epochs

Completed

Refactor Ames Vane

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

Current

Breadth-First Arvo Move Order

duration

2 Months

start date

2023-08-01

end date

2024-01-31

Ensures chronological move processing order, allows for a new concept of simultaneity among vane activations, and should be easier to reason about than depth-first move processing.

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

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.