In the Software Heritage web application, all browsed directories and revisions can be downloaded as an archive
(source tarball for a directory, gitfast archive for a revision).
As Software Heritage does not store all possible archives that can be produced from its content, an explicit request
must be send by an user to produce the one he is interested in. The Software Heritage component that is responsible
to perform archive creation (called cooking in the Software Heritage semantics) and offer a download link to the
user is called the vault.
When an user requests to download an archive, through the "Download" entry from the "Actions" dropdown located
in the top right part of the UI, a modal popups asking to confirm the action. The user is then redirected to
a dedicated interface to track the vault cooking progress. Once the task is finished, a download link for the
cooked archive is made available.
When an archive has been cooked, it stays in cache on our servers. It means there is no need to cook it again
and the download link is immediately available.
The current behavior of the web application is to show the modal popup asking for an archive cooking
even if it has already been done. This must be improved by checking if the requested archive has already
been cooked and immediately redirect to the download link if it is the case.