about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2021-05-25 r/2628 chore(whitby): Add ZNC state to Restic backupsVincent Ambo1-1/+1
Until we have declarative ZNC config (which requires a solution for secrets handling in it), make sure we back this up as well. Change-Id: Idb186327da171eb6d3dbbd83801639f1f9321a40 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3159 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-24 r/2627 fix(tvl-slapd): Replace deprecated OpenLDAP module optionsVincent Ambo1-5/+7
Use the new module settings which apply configuration in cn=config instead of slapd.conf. The module performed this update via lib.mkChangedModuleOption, I've applied the transformations contained therein manually. Note that some of the settings were already in place, which means that the `suffix` and `database` options seemingly disappear into the void. Fixes b/105. Change-Id: I8a968c1eb8cb7827618cb732cdb46006a5d011f9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3157 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-24 r/2626 refactor(ops/nixos): Pass `depot` as a special argumentVincent Ambo2-7/+36
This changes the evaluation order for the `depot` argument and ensures it is partially evaluated before the module system starts resolving imports. This way we can import modules from `depot.path` without `depot` having to come from readTree. Fixes b/129. Change-Id: Icf4dd2be15011055dac8b27e991a4ff6a12bf827 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3156 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-24 r/2625 fix(atward): Update link to use at.tvl.fyiCynthia Revström1-1/+1
The link for atward's source code was using atward.tvl.fyi, this makes the cs cookie (if set) for at.tvl.fyi not work. Change-Id: I644f0341ecaf2caea0b71a950686579dfd18d092 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3155 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-24 r/2624 chore(ops/users): Update email address for cynthiaCynthia Revström1-1/+1
Change-Id: Ieb59d9215c5c1159113375dea0dd96d3d29e1303 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3154 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-05-24 r/2623 fix(ops/users): Rehash password for knKlemens Nanni1-1/+1
This time using `tools.hash-password` because login did not work with the initially created hash. Change-Id: I1eb62a496d2d8497d27573af47bf8bf70dac9bbb Reviewed-on: https://cl.tvl.fyi/c/depot/+/3153 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-05-24 r/2622 chore(3p/overlays): Remove LLVM11 bump from overlayVincent Ambo14-30/+26
* This was mostly for //third_party/nix and its dependencies which now have been set to use llvmPackages_11 manually. * For //users/grfn/achilles we also manually select the newer LLVM version. * //tools/cheddar doesn't seem to need llvm anymore. * //third_party/buzz also compiles with clang 7.1.0 * replace clang-tools everywhere with new attribute clang-tools_11 For the future we may want to have something similar again, but it may not be necessary to invest too much time into it: nixpkgs is set to upgrade their default llvmPackages to LLVM 11 as well at some point in the near future. Co-Authored-By: sterni <sternenseemann@systemli.org> Change-Id: Id83868dbc476a6c776b59518b856c933f30ea79d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3135 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi>
2021-05-24 r/2621 feat(ops/users): Add knKlemens Nanni1-0/+5
Change-Id: Ib615743fc57357b0de17600c9a3f400c48fd0f70 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3151 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi>
2021-05-23 r/2620 feat(dns): Add record for deploys.tvl.fyiGriffin Smith1-10/+11
This will be used to serve (nix-) diffs for pending deploys of whitby Change-Id: Ia864993b1fcb3b7ce5fcc21f32a27528a4c31f08 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3149 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-23 r/2619 fix(whitby): Fix irccat configuration for incorrectly named optionVincent Ambo1-1/+3
irccat is passing the realname option as the ident of the user, which doesn't match what is in ZNC. It hasn't seen any upstream commits in a long time, so I'm just leaving this as is and fixing it locally in our config. Change-Id: I3bf865f37b8df9c1cd891a94245ca3fad376bbe1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3150 Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-05-23 r/2618 chore: Replace remaining mentions of ##tvl[-dev] with #tvlVincent Ambo5-9/+10
... and fix the capitalisation of hackint Change-Id: I800aef75152d2dc77a33876888e36530143e9d3e Reviewed-on: https://cl.tvl.fyi/c/depot/+/3148 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 r/2617 feat(whitby): Let sterni bear the wheelVincent Ambo2-2/+2
Change-Id: Ib4f7dcbdc754d2fc271f501a9ea270e983a3645f Reviewed-on: https://cl.tvl.fyi/c/depot/+/3147 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-23 r/2616 fix(ops/users): Fix hash format for cschillingVincent Ambo1-1/+1
Change-Id: Ib0c53e8f6bc030cbdfe31020ed9d6764bd732a62 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3146 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-05-23 r/2615 fix(panettone): Don't display the full before/after of issue bodiesGriffin Smith1-15/+18
Issue bodies tend to be very long, so displaying the full diff whenever the issue is updated takes up a lot of visual room and is very hard to read. Specifically for this field, this changes the display to only show "updated the body of this issue", hiding the previous and new values. At some point in the future, I'd love to have some CSS fun with active anchor links to have an "expanded" view that *does* display the previous and new value, but for now this should be fine - the data isn't gone, after all! Fixes: b/111 Change-Id: I0188540188729142e0b9205ff5cc9ea576c4edb6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3142 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 r/2614 fix(panettone): Fix username display on issue eventsGriffin Smith1-2/+3
7aebba7, which added anchor links to comments, also incorrectly added only the *key* for the `:id` attribute to the `li` element for issue *events*, swallowing up the next form (which happened to be the username) as the value. this adds a *proper* value for the `:id` attribute, bringing back the actual display of the username. Fixes: b/97 Change-Id: I33ee628ddfd4a291e069980512fcc5f74014aac4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3141 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 r/2613 fix(panettone): Fix handling of issue-not-foundGriffin Smith2-3/+3
The accessor function to get the ID of the `model:issue-not-found` condition is `not-found-id`, not `id`! Also, add a missing space to the title. Fixes: b/127 Change-Id: I91c71feaf1fe877e6a14453a9e75cf27d56fee31 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3140 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-05-23 r/2612 fix(hash-password): Ensure OpenLDAP with correct module is usedVincent Ambo1-2/+2
This is fixed in upstream nixpkgs, but we're not yet at a commit where it's used, so it's important to use the OpenLDAP from //third_party Change-Id: I7c033cd23f45a95c4a4af864ffe561c496833a0d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3143 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 r/2611 feat(ops/users): Add cschilling to userssterni1-0/+5
Change-Id: I8afc23c749a5318d7c2ce893903980112ff13c12 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3137 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
2021-05-23 r/2610 feat(whitby): Enable fail2banGriffin Smith1-0/+2
I like running fail2ban on any machine that has stuff like ssh world-open, to limit the potential for password brute-force attacks etc. Change-Id: I0c60811ae5a2fddb44f04679fb455e646b8e39c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3138 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-22 r/2609 chore: Replace Freenode mentions with HackIntVincent Ambo5-6/+15
This doesn't replace all of them in the repo, but at least the ones that are relevant to our move. Change-Id: I842e7594b4c16af30d880272417874f6b29afd22 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3134 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2608 feat(tverskoy): Add mail fetching timer for lieerVincent Ambo1-0/+19
Change-Id: I60b09d2c81c3c69f744a12adc41fbdc43d0fb488 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3133 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-22 r/2607 refactor(tazjin/emacs): Switch to sending mail via lieerVincent Ambo5-59/+7
This drops the msmtp requirement from my configuration; there's still some cleanup to be done but I need to double-check this in a few environments first. Change-Id: I298f4ff77b45cb214fbccee84e9bbd861508d11a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3132 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-22 r/2606 feat(ops/owothia): Add owothia module and deploy on whitbyVincent Ambo2-0/+75
This configures owothia to use her new bouncer to HackInt. Change-Id: I80eb8191c2b0f2a6f8a31d19b60250ade27c1913 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3129 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2605 feat(3p/litestream): Add derivation for litestreamVincent Ambo1-0/+23
This is a simple Go module build for https://litestream.io/ If this ends up being useful, we should upstream this to nixpkgs. Change-Id: I3beb64c9adb3b57fcef4e1dfb27f293a15f90a76 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3085 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2604 chore(whitby): Move clbot to HackIntVincent Ambo1-9/+7
Points clbot at the new local ZNC instead. This will make it part of the things happening through the `tvlbot` account. Relates to b/101 Change-Id: I1c15ffa5720d3af34475c15bee3fdaa537ac659b Reviewed-on: https://cl.tvl.fyi/c/depot/+/3127 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2603 feat(clbot): Add a flag to disable TLS connectionsVincent Ambo1-2/+14
The local bouncer on whitby does not use TLS. Change-Id: Idf9c56f94129b0ddce620eb559082a8f2f088078 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3128 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2602 chore(whitby): Move irccat & panettone notifications to HackIntVincent Ambo1-5/+4
Change-Id: I6bd5c183d2c1c28b8c6b0201bdf22a66333d4aea Reviewed-on: https://cl.tvl.fyi/c/depot/+/3131 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-22 r/2601 feat(fun/owothia): add configurable join channels.multi1-8/+20
owothia is hardcoded to join ##tvl, which is a remnant of when TVL was on freenode, and on hackint the IRC channel is single-hash #tvl instead. Instead of hardcoding another channel name, let's make this configurable, so we don't need to recompile owothia for every different channel we want her in. It's now possible to set IRC_CHANNELS in owothia's environment to '["#foo", "#bar"]' to make her join both #foo and #bar automatically. Additionally IRC_IDENT can now be set to configure owothia's ident, which is required for ZNC compatibility. Change-Id: I0fc0856f4ea35f59255b76ae0e594325f18ef993 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3130 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-22 r/2600 feat(whitby): Add shadowsocks serverFlorian Klink1-1/+8
This adds a shadowsocks service, running on port 8443, tcp and udp. The password is read from /etc/secrets/shadowsocks-secret.sec, and needs to be populated externally. Change-Id: I6797150db108ba14459502dee43d8e4ed6cfa910 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3125 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-21 r/2599 feat(apereo-cas): move away from 127.0.0.1:8443Florian Klink2-2/+2
The following commit itends to bind on port 8443 on all interfaces, so let's move this to something else. Change-Id: Ibb94a0f4e6892b6e543b542b89bcdaaefb617f23 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3126 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-21 r/2598 feat(whitby): Initial ZNC configurationVincent Ambo1-0/+27
Bouncer to be used for TVL's IRC bots, see b/101 Change-Id: Ic9f71ecd94365d3baa31e0552b1ce16362f94557 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3124 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2021-05-20 r/2597 fix(ops/nixos): Fix typo in NIX_PATH nameVincent Ambo1-1/+1
Change-Id: Ic29b219ca1c536f8a99860ecdf2957a62ba95889 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3123 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-05-19 r/2596 docs: Minor updates & fixes for depot READMEVincent Ambo1-6/+10
* update some of the project listings * remove an invalid link to my previous Twitter account (this is from back before TVL was a multi-person project) Change-Id: I049c05704d5feecc8c40718665fe98315008423f Reviewed-on: https://cl.tvl.fyi/c/depot/+/3122 Tested-by: BuildkiteCI Reviewed-by: cynthia <cynthia@tvl.fyi>
2021-05-17 r/2595 feat(tools): add rust-crates-advisoryProfpatsch8-11/+208
We have a bunch of crates in `third_party/rust-crates`; it would be great if we could check them for existing CVEs. This tool does that, it takes the rust security advisory database, parses the applicable CVEs, and cross-checks them against the actual crate versions we list in our package database. The dumb parser we wrote is tested against all entries in the database, so we will notice when upstream breaks their shit. Checking the semver stuff is easy enough with the semver crate. If an advisory matches, it prints the whole thing and fails the build. Change-Id: I9e912c43d37a685d9d7a4424defc467a171ea3c4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2818 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-17 r/2594 fix(nix/writers/rust): remove args overrideProfpatsch2-11/+5
We can be closed world, so let’s restrict the arguments to the subset we need for now. The existing override was wrong, in that `// args` would use the arguments we already added, again. So instead of deliberating about how to make this work right in all cases, we don’t need it, we trim it. Change-Id: I6443a0808b8bfd5e4db939b669c6afc741954db8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3057 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-13 r/2593 feat(grfn/modules/laptop): Enable TLP serviceVincent Ambo1-0/+2
This service performes automatic power tuning and has effectively replaced powertop's tuning functionality in modern systems. Change-Id: I63c6999beed64d96c77b8b9287ed0d5fa6ddd9fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/3121 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-13 r/2592 fix(yeren): Force enable ASPM in kernel parametersVincent Ambo1-0/+1
This might help with the issue of devices being stuck in a slow power-saving mode after hibernation. Dell enables this on laptops shipping with Linux by default according to some forum posts. Change-Id: I3d7fdb5c2ed5e24289a6c20f21d027e11b7826e5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3120 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
2021-05-12 r/2591 docs(cheddar): fix typo in build.rs commentsterni1-1/+1
Change-Id: Id323b4a187b3837d60ac6b8917f3e8571954b8e6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3119 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-05-12 r/2590 feat(tvl/template): use atward for dispatching to README.mdsterni1-1/+1
Ideally this means everyone gets to use their preferred code viewer. Change-Id: I11005023c33eb111afd6c19b36d05dc581494ceb Reviewed-on: https://cl.tvl.fyi/c/depot/+/3118 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2589 feat(web/atward): make checkbox label clickablesterni1-2/+3
Change-Id: I147f1f2eee4f6b8f7ecea1b341d192477182d61c Reviewed-on: https://cl.tvl.fyi/c/depot/+/3116 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2588 refactor(web/atward): translate index page to markdownsterni1-56/+48
Change-Id: I03ccbec1dd8ba58d80bd97eb40148dd395e500b2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3115 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2587 feat(tvl/template): support markdown via cheddarsterni1-19/+29
Since the template already was a derivation we can just reimplement a specialized writeText which runs cheddar on parts of its input to avoid import from derivation. Change-Id: I0cffd0e86fd23a749599174260d04269379f4b5f Reviewed-on: https://cl.tvl.fyi/c/depot/+/3114 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2586 feat(tvl/template): link to atward in footersterni1-0/+2
Change-Id: I929b8344251ceaba5a22c735c599407a0ec162a6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3113 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2585 refactor(web): common template for index pages of tvl and atwardsterni7-152/+216
Use simple string interpolation based approach to templating and allow changing the main body, the title and to inject extra HTML into the head element. Additionally we can use `https://tvl.fyi/` instead of `/` when referring to assets. One limitation currently is that the template only works for index pages (it link to self using `href="/"`), but this should be easy to fix. For atward, instead of using the `onload` attribute of `body`, we now register an event listener in JavaScript which makes the template code less complicated. When building the derivation the template is rendered to HTML and injected into the source. Change-Id: I2ea0c5bf5f6286e781285ade7751a348bab3bdc8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3112 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2584 chore(tazjin/emacs): Ignore messages from blocked senders in telegaVincent Ambo1-1/+3
telega actually supports this for group chats, too, which is very pleasant. https://zevlg.github.io/telega.el/#client-side-messages-ignoring Change-Id: I510207c2de19f748359168d460a25aa9c4e45975 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3111 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 r/2583 feat(atward): Support reading configuration from cookiesVincent Ambo2-15/+139
Adds support for reading configuration (currently only the `cs` parameter) from cookies and from URL query parameters. The latter take precedence if set explicitly. This is useful for users which can not edit their search query parameters. To make this easier to use the atward landing page has been updated with a simple form where settings can be toggled. This requires Javascript, but the script is small, embedded and MIT licensed (as is the rest of this project). Users without Javascript will be shown a notice about this. It is of course possible to set the cookies manually, too. Change-Id: Ie9a9dbeab4d9a97a349d7988e21f1b46037e1f72 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3110 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-12 r/2582 feat(gs/emacs): Update async test snippet for tokio 1.xGriffin Smith1-1/+1
Change-Id: I897f3efae7920dee678f6ca03d743b12212b766c Reviewed-on: https://cl.tvl.fyi/c/depot/+/3109 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-05-12 r/2581 fix(gs/emacs): Correct next/prev error bindingsGriffin Smith1-4/+4
next-error and prev-error are weirdly broken in ways I don't entirely understand, but I only really use flycheck so I can just use the flycheck ones instead Change-Id: Icdb25950f6fdcca163c68db30366af0f6fa28d7d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3108 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-05-11 r/2580 fix(web/tvl): add two pixels to make favicon squareFlorian Klink1-0/+0
Fixes b/126. Change-Id: I5caac45797738bccdbc346288fdf891dafdcefbb Reviewed-on: https://cl.tvl.fyi/c/depot/+/3106 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-05-11 r/2579 feat(atward): Serve OpenSearch XML file to support FirefoxVincent Ambo3-0/+20
Firefox users can not easily add search engines to the browser unless the page serves an OpenSearch description. This CL adds said description according to the documentation: https://developer.mozilla.org/en-US/docs/Web/OpenSearch Change-Id: I358c5940304f4abd9e45dd72a64e46d3ce44b3e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3105 Tested-by: BuildkiteCI Reviewed-by: cynthia <cynthia@tvl.fyi>