about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-31 r/7835 feat(automatic-gc): robust way to disable automatic-gcVincent Ambo1-0/+5
We just had a minor incident where apparently our build cache for the critical security fix was deleted by automatic-gc (which I had stopped manually) being reenabled by an unrelated whitby deploy. This adds a new mechanism where by touching a file called `/run/stop-automatic-gc` the GC can be prevented from running. We might want to configure an occasional alert or something if this file exists, so we don't forget about it when we are using it. Change-Id: I041e57e24b2b684696164a2d516581d7f5696ef0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11326 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: flokli <flokli@flokli.de>
2024-03-31 r/7834 fix(web/panettone): Hotfixes for full text search changeAspen Smith3-5/+8
- Actually define *static-dir* at build time, to get the search.png in the search box - Better logging for migration running at startup time - Fix and-where to properly exclude nil clauses - fix looking up build-time vars in the :build package Change-Id: Ia2ef3b2715d4c2efb62bbb2c72084f0f0ad09562 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11325 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7833 feat(aspen/system): Install patdiffAspen Smith1-0/+1
Change-Id: I86a18fb3fa135c4324064e6acde06bd4dcfbb94d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11294 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7832 fix(aspen/system): Use suspend-then-hibernate for lid closeAspen Smith1-1/+2
Change-Id: I07b8cea035050ff90fbb851e4f6401285514db1a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11293 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7831 feat(aspen/system): Weather in i3status barAspen Smith3-108/+123
Change-Id: Ib2572fea5fc81d6b4d321a2e317a02398d0ae612 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11292 Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7830 feat(aspen/system): Add luscaAspen Smith5-0/+186
A Framework laptop Change-Id: I646e705d12b76c83e8cdcf11c618d07db3a21f0c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11235 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7829 chore(web/panettone): Make it easier to override oauth settingsAspen Smith1-4/+12
For local dev, it's nice to be able to set the oauth variables by hand before starting the server - in that case, we don't want to override them with the defaults. Change-Id: I530518b4d58df1edf55ce062cf7ff3290784a3ed Reviewed-on: https://cl.tvl.fyi/c/depot/+/11259 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7828 feat(web/panettone): Support full-text search of issuesAspen Smith7-36/+126
Support basic full text search of issues using postgresql's built-in text search. There's a new column on the issues table called `tsv`, which contains a tsvector of the title concatenated with the description, and a new search form on both the index and closed issues page which allows searching that tsvector with a user-supplied query. Results are ranked according to that text query in the case of a search. This works fine for now, but next up I'd also like to highlight the results according to the bits that matched the user's query. Change-Id: I25170bedbbbcdc3ed29a047962e9fcfe280d763a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11258 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7827 chore(web/panettone): Use postgres 16 in local devAspen Smith1-2/+2
This is needed for the GENERATED ALWAYS AS...STORED stuff we'll be doing for text search later on, but also just matches what's being run in prod Change-Id: I076ab88c9735f29b5f669107a339f99f80a00cc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11257 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7826 feat(web/panettone): Add a system for database migrationsAspen Smith5-37/+228
Add a system for writing, running, and tracking database migrations (changes to the database schema) over time, inspired by but significantly simpler than postmodern-passenger-pigeon. Migrations can be generated by running (PANETTONE.MODEL:GENERATE-MIGRATION "name"), and are numerically ordered lisp files that define (at least) a function called UP, which runs the migration. The migrations that have been run against the database are tracked in the `migrations` table, and when the `(PANETTONE.MODEL:MIGRATE)` function is called (as it is on startup), all migrations that have not yet been run are run within a transaction. This includes one migration `1-init-schema.lisp`, which migrates the database (idempotently) to the current state of the schema. Change-Id: Id243a47763abea649784b12f25a6d05c2267381c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11253 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7825 feat(3p/lisp): Add str package and dependenciesAspen Smith3-0/+83
Change-Id: Iffb66f4580517b1dbfee8c79e766552508695e5f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11252 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7824 feat(aspen/system): Make battery index configurableAspen Smith2-7/+7
My new laptop has the battery at index 1, not index 0 Change-Id: I64fa16e7f0eecf6b623361645d73b1176e1e5d48 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11311 Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7823 chore(3p/nix-snapshotter): removeFlorian Klink1-13/+0
The expression needs updating on our side to be compatible with the nixpkgs bump in cl/11289. It wasn't used anywhere in TVL either. This is also packaged in nixpkgs, since f3ea5cfa6ec0a640735f4d6a0b5c91683c9bab25 / Feb 20 2024, so using it from there feels reasonable. Change-Id: Icd50ad959ca0de433b847180f1a5be308719f287 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11295 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-31 r/7822 chore(tvix/boot): bump u-rootFlorian Klink1-4/+4
Bump to the latest u-root release. This seems to be compatible with go 1.22, too, which previously segfaulted the compiler in cl/11289. Change-Id: Ie8a0d3cb51a435d6a0b194b38a9c83ee260618df Reviewed-on: https://cl.tvl.fyi/c/depot/+/11291 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7821 chore(aspen/system): More default module cleanupAspen Smith1-3/+0
Change-Id: I37bb2ea71d8dd07c7294b5c534fb3d4a834d98c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11310 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7820 chore(aspen/system): Don't install xonotic on every systemAspen Smith1-12/+2
Change-Id: I664f97b2321625482ef64218b51c93ba28599643 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11309 Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7819 chore(aspen/system): Don't install games+obs on all machinesAspen Smith2-2/+2
Only those that want them Change-Id: Id1caf5e89f69c51a7da90ff2387a9384abbf4f91 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11308 Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7818 chore(aspen/system): Don't setup kube stuff on every machineAspen Smith1-1/+0
Change-Id: Ib512c0a8b5c69b20c3fd21bd9bcdcf318702e272 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11307 Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7817 chore(aspen/system): Update for deprecated home-manager optionAspen Smith1-1/+1
Change-Id: I9b1a8c0cf10676a260b521dbc6a84179c386d772 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11306 Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7816 feat(aspen/system): Use space as vim leaderAspen Smith1-1/+1
For the rare times I still occasionally use vim Change-Id: Ie3059ab0ec5d5ace729e78b765f251d1fafdfac1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11305 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7815 chore(aspen/system): Drop custom battery service in favor of upowerAspen Smith2-39/+14
Change-Id: Ie3e5aeba7026724dacbe4d0dc15a1112a22c3670 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11304 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7814 fix(aspen/home): Remove ssh match block configurationAspen Smith1-25/+0
This is not necessary now that I'm using tailscale everywhere Change-Id: I36d8060d4ad5f6955cd18c68b5fc667e64669004 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11303 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7813 feat(aspen/system): Switch linux user login to aspenAspen Smith17-30/+30
Change-Id: I10369a20db3f1be92caf0bace94e8beb6af1dbaa Reviewed-on: https://cl.tvl.fyi/c/depot/+/11302 Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7812 fix(aspen/system): Remove buildkite agent on ogopogoAspen Smith1-42/+0
I never got this working Change-Id: Iacb68a7d6d5fe1d1f1f390d09f106c4eb9a51b6a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11301 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7811 chore(aspen/web): Show's overAspen Smith1-1/+0
Change-Id: I9a0464f326f842895cf11a373c6c4f1a42546a3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11300 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7810 chore(aspen/emacs): Scrub all result blocksAspen Smith1-139/+2
These are noisy, but more importantly I'm worried I might accidentally commit a secret at some point Change-Id: If6f2c358f2803af25ea27ef34d39c7f2108d4186 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11299 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7809 feat(aspen/emacs): Actually require tvlAspen Smith1-0/+6
Change-Id: I67be0eaa48c6b2a3df59fd4b384409c3952eff3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11298 Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7808 feat(aspen/system): Always authorize my main ssh keyAspen Smith2-5/+7
Change-Id: I42fc3887a0eb95404de29efba98dc26cb3f21aed Reviewed-on: https://cl.tvl.fyi/c/depot/+/11297 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi>
2024-03-31 r/7807 feat(aspen/emacs): Update from luscaAspen Smith4-23/+146
whatever dude Change-Id: Ie0e01ccc49e82125d77dbf05fce5b1c53f630783 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11296 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7806 feat(tvix/eval): implement `unsafeDiscardOutputDependency`Ryan Lahfa3-7/+43
This builtin only transforms any `NixContextElement::Derivation` into the trivial `NixContextElement::Plain`. This is a forgetful functor on derivation-deep context strings. The test coverage of this change is done in cl/11264. Change-Id: Icd00778c97766be6db8a6bdabaa59e9724353ec5 Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11262 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-03-31 r/7805 feat(tvix/eval): support `Derivation` context elementsRyan Lahfa1-8/+34
Derivation that depends on `${d.drvPath}` generates a `NixContextElement::Derivation(drvPath)` context string. In turn, this makes the dependent derivation depend on *ALL* outputs of that derivation. Note that a dependency on `${d.drvPath}` generates an input source dependency too. This is a complete implementation of the context string system in Nix on the "input population" side. The test coverage of this change is taken care in cl/11264. Change-Id: I97fe5f7c772a6b1cc4366bee071aa691a11fcde6 Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11261 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-31 r/7804 chore(tazjin/tgsa): bump all dependenciesVincent Ambo1-158/+209
Change-Id: Iddcee013e6d187f9a71329f0cccc6a0205aeb497 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11288 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-29 r/7803 feat(users/picnoir): drop tvix-store crate usageFlorian Klink3-8434/+108
This is currently unused, and even if it would be used, it'd probably be with `default-features = false`, explicitly enabling what's needed. Change-Id: I3175a19adf8d65f0b805e5234267e460cd5e68d8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11287 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Tested-by: BuildkiteCI
2024-03-29 r/7802 feat(third_party/nixpkgs): init cbtemulatorFlorian Klink1-0/+43
This provides an emulator for Google Bigtable. This has also been sent to nixpkgs in https://github.com/NixOS/nixpkgs/pull/298044, and can be dropped (modulo the patches) once we bump past it. Change-Id: Id7809a02065ce479d6d29813d1de454cd230d2df Reviewed-on: https://cl.tvl.fyi/c/depot/+/11211 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-03-28 r/7801 feat(tvix/eval): non-implement `unsafeDiscardOutputDependency`Ryan Lahfa1-0/+13
Nixpkgs make use of it and this is a 2.3 builtin that was missed. Change-Id: If36d748eed4a5f777344556c0802392c76c8d53c Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11260 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-03-28 r/7800 refactor(tvix/glue): drop ingest_entries_syncFlorian Klink2-18/+20
Make this function async, and do the block_on on the (single) callsite. Change-Id: Ib8b0b54ab5370fe02ef95f38a45d8866868a9d60 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11285 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7799 refactor(tvix/glue): drop register_node_in_path_info_service_syncFlorian Klink2-13/+6
Replace the (single) callsite with some code interacting with the tokio runtime to block on the async version. Change-Id: I3976496ae77b2bb8734603f303655834265e3f0a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11284 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-03-28 r/7798 feat(tvix/glue/tvix_store_io): drop store_path_to_node_syncFlorian Klink1-12/+10
Let's get rid of these sync helpers, they make this less understandable. Change-Id: I3c7294647849db2747762722247c65e4e2947757 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11283 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7797 feat(tvix/castore/*service/tests): add objectstore to tests, sortFlorian Klink2-2/+3
Change-Id: If3a45d2f8008b75524ead704b05320364cc60d92 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11282 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7796 feat(tvix/castore/directoryservice): log more TODOsFlorian Klink1-0/+3
We need to define behaviours and add tests for these. Change-Id: Id5825fafbf47897d8de42503ea6006eb131b1082 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11281 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-03-28 r/7795 refactor(tvix/castore/*): drop utils.rs and grpc directorysvc testsFlorian Klink10-612/+31
This drops pretty much all of castore/utils.rs. There were only two things left in there, both a bit messy and only used for tests: Some `gen_*_service()` helper functions. These can be expressed by `from_addr("memory://")`. The other thing was some plumbing code to test the gRPC layer, by exposing a in-memory implementation via gRPC, and then connecting to that channel via a gRPC client again. Previous CLs moved the connection setup code to {directory,blob}service::tests::utils, close to where we exercise them, the new rstest-based tests. The tests interacting directly on the gRPC types are removed, all scenarios that were in there show now be covered through the rstest ones on the trait level. Change-Id: I450ccccf983b4c62145a25d81c36a40846664814 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11223 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7794 refactor(tvix/store): drop proto/tests/{utils,grpc_pathinfoservice}.rsFlorian Klink4-93/+0
As for grpc_pathinfoservice, we test this in the rstest-based tests, with more implementations. tests/utils.rs is unused now. Change-Id: I62b192170d181e4fb432bf7dfff2057cb048b52c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11279 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7793 refactor(tvix/store/pathinfo/from_addr): stop using gen_*_serviceFlorian Klink1-7/+10
Remove usage of the gen_{blob,directory}_service() helper functions from utils. We populate Memory{Blob,Directory}Services here directly, as test_case and rstest doesn't compose well. Change-Id: I0fb48aadb8c818f508b18ceb83c85eb91359442a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11278 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7792 refactor(tvix/pathinfo/grpc): use rstest fixturesFlorian Klink1-6/+12
Change-Id: Ib114a4d141ca829520aed34600678d613994f875 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11277 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7791 refactor(tvix/store/tests/nar_renderer): use rstest fixturesFlorian Klink1-70/+67
Change-Id: I975729cb97d69d080fb63fbb8f81b4ac46cbfb7f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11276 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7790 refactor(tvix/store/nar/renderer): don't require AsRefFlorian Klink1-8/+6
Previous CLs ensured BlobService and DirectoryService is implemented on AsRef<dyn BlobService> and AsRef<dyn DirectoryService> respectively, so there's no need to require AsRef in here. Change-Id: I1e8b93188ca784e1b9a592f3d35fcf6b9df75c75 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11275 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-03-28 r/7789 refactor(tvix/store/nar/import): use rstest fixtures from castoreFlorian Klink1-14/+18
This stops using the gen_{blob,directory}_service() functions from tvix_castore::utils in favor of the rstest-based fixtures. Change-Id: I4c2fff2926f34af63d3bd5c29c8e939dbdf7e062 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11274 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-28 r/7788 feat(tvix/store): add rstest-based PathInfoService testsFlorian Klink10-4/+216
This introduces rstest-based tests. We also add fixtures for creating some BlobService / DirectoryService out of thin air. To test a PathInfoService, we don't really care too much about its internal storage - ensuring they work is up to the castore tests. Change-Id: Ia62af076ef9c9fbfcf8b020a781454ad299d972e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11272 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-03-28 r/7787 refactor(tvix/store/tests/fixtures): use [u8; 20]Florian Klink4-10/+9
This makes the fixture more use-able when interacting with the trait, the Bytes are only useful for the gRPC version. Change-Id: Iaaea1adc6df18491f236a28c4343f5b4ee5fcfd3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11271 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-27 r/7786 feat(tvix/store): AsRef<dyn PathInfoService> impl PathInfoServiceFlorian Klink1-0/+25
Change-Id: I7fc06ae97a50d04b8c36292b3457c112242a7a70 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11270 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com>