Jamie Tanna

https://www.jvt.me/kind/articles

52 posts · 10 Votes

Tech 63% · Life 35% · Writing 2%

Subscribe via RSS

  1. Exporting your chats from Claude.ai

    I'm about to switch subscriptions for one of my Claude accounts, and as part of it, will lose access to any chats I had in the Claude.ai web view (and i.e. on apps, if I used them). Unfortunately there doesn't seem to be any way to export these natively - maybe by design? - but fortunately, at least as of writing, we can take to the trusty Network tab. Open the Network tab Load a chat conversation i.e. https://claude.ai/chat/90000000-0000-0000-0000-000000000009 Search for the conversation ID…

    0
  2. Week Notes 26#35

    A busy week at work, publishing 10 advisories for Renovate, and working on a number of other bits As GitHub Stacked PRs now support Merge Queues, I've been using them a fair bit this week, mostly simplifying a number of things And it'll be interesting to see how this will help with our next major release Also a very rainy week. A particularly big thunderstorm on Monday led to Morph coming upstairs too - he felt a lot safer, which is good, and Cookie was good with him, but he kept also jumping…

    0
  3. Determining if your branch is part of a GitHub Stacked PR

    🤖 This post includes some LLM-derived content 🤖 Since the availability of GitHub's Stacked PRs finally landing for repositories that use a Merge Queue, I've been "kicking the tyres" with some of my contributions to Renovate. They're working mostly well so far, but I'm finding it a bit annoying trying to remember if I'm on a branch that's part of a stack. I'd started wiring this into my zsh config, still using Grml's zsh config as a base, and found it was a bit awkward. I decided to outsource it…

    0
  4. My new workflow for local code review with `tuicr`

    I spend a fair bit of my life reviewing code. Even if you discount the increase in code review that comes from increased usage of the output from Large Language Models, I'm still doing a lot of code review. Not only am I doing internal code review at work, but as a maintainer on Renovate and oapi-codegen, I spend a lot of time reviewing community contributions, as well as those from our collaborators and maintainers. You can see how GitHub breaks this down on my GitHub profile: If you ignore my…

    0
  5. Updating dependent branches when rebasing, automagically

    I'm regularly rewriting my history, often with the lens of improving my commit messages. On the Renovate project, we use a Merge Queue with Squash Merge, which means that if I do want to have atomic commits, I need to split them across PRs, which adds a bit of noise to manage them. Alternatively, I could bypass branch protection requirements to do a rebase merge, but that's the only way to do a rebase merge with a Merge Queue. Now that GitHub has launched stacked PRs, it's now possible to get…

    0
  6. Week Notes 26#34

    A busy week at work, juggling a few fairly complex things that have meant I've been a bit brain busy outside of work Wrote a couple of blog posts, Why I still hand write my commit messages being the main one, which got picked up later in the week, and ended up being on the front page of Lobsters for just shy of 48 hours! I also discovered the selfh.st newsletter - thanks for featuring me! GitHub's outage on Monday was pretty counter-productive, and meant a large gap in being able to do anything…

    0
  7. What commit did I branch off from?

    Sometimes, you create a branch off another branch, do some work on it, and want to know what the original branch was pointing at. For instance, if you're looking to clean up your Git history, but don't want to rebase off origin/HEAD as you know there are some gnarly conflicts you may have to deal with, you want to know the last known "good" commit. I'd previously look down my commits, work out what the first commit was that didn't look like one of mine on this branch and refer to that SHA.…

    0
  8. I'm on Fallthrough: A Modest Proposal Proposal

    In this week's Fallthrough podcast episode, I joined Kris Brandow and Matthew Sanabria to talk about a few things, but mainly the new Go proposal proposal. I don't think this was a particularly good appearance from me - I'd been at GopherCon UK the few days before, and was very noticeably flagging 😅 This was very much on me for agreeing to try and squeeze it in, and I think if I'd have had one more sleep, I'd have been a bit more alive. Either way, I hope it's a good episode, and I know Kris…

    0
  9. Announcing some improvements to `renovate-pretty-log-tui`

    As I've blogged about before, I've written a tool for improving the experience of working with Renovate's debug logs, providing a more targeted experience for viewing the logs. While there are a few options out there at the moment, including part of our products at Mend, it's also nice having an agnostic tool I can use across different products, or where a customer or a user has provided logs to us. Last week, I finally sat down to listing out some of the key improvements I'd like to have…

    0
  10. Why I still hand write my commit messages

    For over a decade, I've been a proponent of writing detailed Git commit messages. I find it a valuable use of my time, and continue to double down on it, even in a world where you can get a Large Language Model (LLM) to write it for you. In the past, I've written about at least 89 strong feelings I have about Git commits, so I'm naturally biased to the benefit of commit messages, but why does this still hold in the current age, where a lot of people are delegating that to an AI agent, if at…

    6
  11. Week Notes 26#33

    The main thing this week has been GopherCon UK - an expensive week, and unfortunately not as good as previous years - but you can see my writeup for more info On Tuesday night when I got in, I went over to Monohon Ramen which was nice A bit of delays on the way home didn't help after a busy few days 🥱 Recorded a Fallthrough episode with Kris and Matt when I got back on Friday, but feel that I shouldn't have tried to get it in after being at the conference - I was pretty exhausted and feel I was…

    0
  12. GopherCon UK 2026

    For the 3rd year running, I've been at GopherCon UK and am surprised to have survived the heat in London - highs of 36 degrees yesterday - but thankfully The Brewery is a lovely and cool event space. I'm writing this on the train home, with a slightly tired voice, and a little tired after a good time - thanks again to the organisers for putting it on! How to Stay Passionate in the Age of AI Ainsley Clark kicked us off by talking about ways that we can stay passionate with the reshaping of our…

    0
  13. Finding which PRs have been taken out of the Merge Queue due to failed status checks

    🤖 This post includes some LLM-derived content 🤖 In the Renovate project, we use the Merge Queue to merge PRs. If a PR fails its status checks, it will be pulled out of the Merge Queue, and a maintainer will need to re-queue it, if it is a transient error. For those of you unaware, GitHub are having a pretty hard time recently with outages, which means that we're seeing an increase in the number of PRs being pulled out of the Merge Queue due to transient errors due to GitHub's instability (and…

    0
  14. Finding which PRs have been taken out of the Merge Queue due to failed status checks

    🤖 This post includes some LLM-derived content 🤖 In the Renovate project, we use the Merge Queue to merge PRs. If a PR fails its status checks, it will be pulled out of the Merge Queue, and a maintainer will need to re-queue it, if it is a transient error. For those of you unaware, GitHub are having a pretty hard time recently with outages, which means that we're seeing an increase in the number of PRs being pulled out of the Merge Queue due to transient errors due to GitHub's instability (and…

    0
  15. Week Notes 26#32

    Ditto to last week: still not finished my Canada blog post Was a bit of a busier week with Anna in the office for a good chunk of the week And a pretty intense week at work on top of that 😬 Continuing to try and refine the plan Claude needs to implement for my Micropub rewrite Had a nice weekend down in London for my mum's birthday The a very bad drive down - took an extra ~90 minutes, including traffic as we were trying to get onto the M1 and by Hemel, with standstill traffic, and Waze…

    0
  16. Week Notes 26#31

    Ditto to last week: still not finished my Canada blog post Work's been particular busy this week with various bits going on, and an accidental major release And as it'd been a pretty intense week, Friday was a little bit more a "catch your breath" day where I worked on a couple of bits, got Claude Fable to investigate some things for me (and it got some pretty good investigations, similar to what I would have done!) Had a nice massage on Friday, and a lil' mooch about town This week I've been…

    0
  17. How much AI can a maintainer get away with using without losing their humanity?

    🤖 This post includes some LLM-derived content 🤖 I've been recently thinking about how Open Source maintenance seems to be becoming a little more a slog recently - largely with the increased amount of contributions possible with AI agents - and how it impacts being a maintainer. I'm very fortunate that my literal job is to be an Open Source project maintainer (among other things) and that it's a privilege not many others have. That being said, it still doesn't mean that undoes the amount of work…

    3
  18. Merging the default branch into a PR, from the API

    When contributors raise PRs to Renovate, there are times where they'll merge main into their PR while they're waiting for a merge. Because we use a Merge Queue, we don't necessarily need this - as maintainers we'll manually merge main into a PR if we think it needs it, but it's mostly a case of waiting for the Merge Queue to handle it. Although we have a label that we add if we notice the author of a PR is merging main in - unnecessarily - we'll add a label which adds an automated nudge to say…

    0
  19. Week Notes 26#30

    A busy week at work Got accepted to the Claude for Open Source program I've been looking, again, at rewriting my Micropub endpoint - it's been a long time on my list but I've never sat down with the time to do so - I'd like to get it into a nice place, but the time is always the difficulty. With that in mind, today I've been seeing if Claude can dig through my codebase, get some bits together to work out what features I've got and what'd need to be there, and then end up doing the rewrite, so…

    0
  20. Reducing overly nested Vendir paths

    🤖 This post includes some LLM-derived content 🤖 I've recently been using the pattern I described to combine Renovate and Vendir to sync files in a number of repos, as a means to track OpenAPI spec dependencies. However, one thing I've found a bit painful is that when using Vendir to track these dependencies, the directory structure gets very nested. For instance, with config such as: # via https://github.com/rootlyhq/rootly-go/blob/61c86b8660b6f25d1e8d8638417de173350dfb61/vendir.yml apiVersion:…

    0
  21. Week Notes 26#29

    A busy week back at work, catching up on what I'd missed, doing some decision making + Product-y thinking A fair bit of stuff to catch up did make it a slightly stressful start to the week, though Had a fun time at the GitHub Secure Open Source Fund's "Red Team - Repository Under Attack" event GitHub Secure Open Source Fund: Red Team - Repository Under Attack: A Hands-On Incident Response Exercise Helpful to get some more practice on how to handle your repository/organisation being compromised…

    0
  22. Week Notes 26#26

    A busy week before our trip to Canada 🎉 (Full Canada holiday writeup to come) It was very toasty this week As a way to reduce the overall heat, I ended up leaving my PC off while working, and found that worked quite well - but does mean I need to listen to music through my phone, which isn't ideal Sainsburys had the shutters down over their fridges But people didn't put them back after perusing - so spent a bit of time going round and putting them back while looking around but it also tripled…

    0
  23. Week Notes 26#27

    (Full Canada holiday writeup to come) Reading: Tiamat's Wrath Leviathan Falls Watched: The Drama (2026) Fantastic Beasts: The Secrets of Dumbledore (2022) Switzerland vs Algeria (World Cup 2026) Canada vs Morocco (World Cup 2026)

    0
  24. Week Notes 26#28

    (Full Canada holiday writeup to come) Got ~1 hour sleep on the plane, and ~1 hour in the cab home, so didn't get going to pick up Cookie right away from Anna's parents - but after some caffeine I was ready to drive us to pick up Cookie Then Cookie decided to be rather alert during the night, so didn't catch up on sleep particularly well, and then last night Morph was the annoying pet 😅 So hoping to get some more sleep tonight, cause it's kinda getting to us! It's been much warmer coming home…

    0
  25. Week Notes 26#25

    Enjoyed the last of the Selkirk Bannock A busy week catching up, dealing with a bit of fallout while I was OOO, picking up a few high-priority bits and doing some product-y evaluation of our backlog Some more good work on rootly-go this week oapi-codegen's now - on main - got initial OpenAPI 3.1 support, which we'll release in a few weeks One night, Morph was wailing at something - it turns out another cat was in one of our flower beds, and didn't want to leave, but don't worry, Cookie helped 🤭…

    0
  26. Determining adoption of AI through Git commits

    🤖 This post includes some LLM-derived content 🤖 Let's say that you're trying to determine what percentage of your work is using AI - for instance as part of a performance review - how would you go about doing that? I've written before about how I personally attribute code and content from a Large Language Model. I still very much appreciate myself following the practice, and find it useful - even if others don't want to follow a similar process - as it helps "keep myself honest" with noting…

    0
  27. Week Notes 26#24

    A lovely week in Scotland at No. 2 Braefoot Cottage, which I very much recommend! Was lovely to get more chilled time with my parents, catching up and having some chill time I didn't bing my laptop charger with me by mistake, and fortunately nothing went wrong that needed it! Had some good walks and got some pretty awesome views - and mostly good weather, very impressively considering it was Scotland 😹 My new walking boots were good, and glad to have broken them in a little more now Cookie got…

    0
  28. Week Notes 26#23

    A busy week ahead of a holiday away in Scotland Thinking about pausing my Changelog++ subscription, as right now there's not really much happening Changelog wise, which is a shame A nice dinner at Everyday People with Carol, Alan and Nisha - a bit loud (with it being busier due to Restaurant Week) but good food 😋 A pretty good drive up to Scotland and some pretty great views and beautiful nature - expect to see some photos in the coming week! I'll potentially add a few things to these over the…

    0
  29. Week Notes 26#22

    A nice relaxed Bank Holiday Monday We spent the day mostly trying to hide from the heat - highs of ~32 made it rather toasty Glad I did the decking on Saturday/Sunday, as it was so toasty And playing Clair Obscur: Expedition 33 almost all the day - continuously until the game crashed in the evening 🫣 A pretty busy work week One very good thing is that we're back to being able to publish npm packages 🚀 Had a good chat with Brian about our integrations with Maven Central Enjoyed doing my first…

    0
  30. Is there space for 'craft' in the world of AI?

    My friend Alan wrote yesterday in a thread on Bluesky: In my end-of-year review I was described as a 'craft engineer' more than once. I don't disagree with this, but I have to wonder if this approach (one that has been comfortable for me for more than 10 years) is totally incompatible with modern AI tooling and a 'deliver it' mindset in a team? I want to split this across what I do; use the new tools and deliver quickly in my workplace, and not use AI at all for my personal work and use that…

    0