Transcription: OpenAgents Episode 117 - AutoDev Git Diffs

June 9, 2026 ยท View on GitHub

Source: https://x.com/OpenAgentsInc/status/1819475835713474868 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 117: AutoDev Git Diffs We extend our HUD UI to show beautifu... Upload date: 20240802 Transcription model: gpt-4o-mini-transcribe Generated at: 2026-06-01T17:15:14Z

Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.

[00:00] Speaker: So that's where we're headed, but before we have too much fun, we're going to focus on paying the bills with AutoDev. I'm about 50% more productive with AutoDev than I was with Claude Artifacts. I still need it for a couple of things, but we're able to create features. I got a feature request for something earlier. Implemented that in like five minutes. Had to clean up one little thing with Claude, but like we're about at the point where stuff's going to start happening really quickly. And I think the main thing that I want to be able to communicate to potential users of AutoDev is just sort of how it works. I'm going to be kind of studying who signs up, who uses it in what ways. We've got early access launched today, so you can sign up and use this. For now, we're going to have people asked to get kind of whitelisted, dealing with some rate limit stuff on Sonnet that we got to figure out. So in the meantime, we're going to kind of manually approve people, but as you're wanting to test this and provide feedback, just shoot us a DM and we'll get you in there. So I want you to just kind of follow along with me as I develop using AutoDev. We're going to be doing this kind of development stuff day by day until this gets just so compelling that you all people are all just throwing money at us. OK, so I'm in the middle right now of adding diffs. So the idea is I don't want to have to leave this interface at all. And one of the things that I am leaving the interface for nowadays is checking my GitHub commit history to see what it does because we're logging in with GitHub. We're giving AutoDev the ability to basically create commits on our behalf. And so I keep coming in here. I'm like, OK, what did you actually do? So I want to see the diffs in the actual interface. Let me find the most recent version of the deployment. So let's test out, see where we're at now. I built a little bit of this already. This is all live at openagents.com, by the way. And then we're on a development branch that we'll push to main after this. All right, OpenAgents Inc, openagents.com, branch. We're on diffs 2, I think. OK, so let's do create a demo edit of scratchpad.md. I've got just a little markdown file in the root directory. OK, so I've got this view changes button. And then this uses the React diff viewer library. I've just started adding some styling here. But a simple and beautiful text diff viewer made with diff and React featuring split view, inline view, word diff, line highlight and more. That looks nice. Our styling of it is not quite so nice here. But that's OK. But I like this. This is kind of the needed info that we need. So I think functionally that's great. That's what we need. And we're getting that because I'm passing back from the tool the old content and the new content and just throwing that into the diff viewer and it can generate this. So let's just kind of tweak this so that it actually looks pretty and visually similar to the rest of the application. And then we'll push it live. We should be able to get that done in less than 10 minutes, right? OK, and then the goal is to just not touch an editor at all. Just kind of describe what needs to be done. OK, so we need to bring the styling of React diff viewer in line with the rest of our application, which is heavily duotone, colon, white border and text with black background. No gray or anything else. We can keep just the red and green highlighting in the diff viewer, but everything else needs to look like this. We also want that pop up to look like our pane.tsx does. Maybe make it a pane. Look in readme and then make all changes. So having someone just kind of be able to think about it and put their thoughts down should be enough. The AI agent should be able to pull in whatever context is needed from there. So let's see how this goes. Understood. I'll analyze the project structure, locate the relevant files and make the necessary changes to align the React active viewer styling with the duotone theme of your application. Let's start by examining the project structure in the readme file. Viewing the hierarchy at root. Now let's view the contents of the readme file. I need to also add a button. Maybe I'll do this next or later for if I want to see what it views in terms of the file content. Based on the project structure and readme, we need to modify the styling of the React diff viewer component to match the duotone theme of your application. We need to locate the file, blah, blah, blah. It's likely being used in the tool result. That's correct. Now that we have the content of the tool result.tsx file, we can make the necessary changes to align the styling with the duotone theme. We'll modify the custom diff styles object and update the dialog component to use the pane component. Here's the updated tool result file. Edited. The changes have been successfully applied. Here's a summary. We imported the pane component from at components pane. Updated the custom diff styles object to use black backgrounds and white text for better contrast. Changed the text color. Refresh. Can I just refresh this here? Changed the text color classes. Updated the. OK, I don't really know how Vercel is staging things. It would be awesome if I could preserve the current state. So I have no idea what's happening right now. I have no idea what's happening right now. Oh. That button seems different, right? I didn't even ask you to change this button, but. OK, that's a lot closer. What do we think, Chat? What do we think, Chat? That's pretty good. That's pretty good for a single prompt. Here's what I did. I imported pane. I could leave it there, folks. I could leave it there. Here's what I want to say. That's really good, but I don't see a title bar. Check pane.tsx. And also look in store slash HUD.ts for thoughts on pane height and stuff. Because right now it seems to be full height and I want it a little more like 90% height max. And maybe constrain width similarly. Look at how we define the chat pane style initial thingy. Thingy, you can say thingy. And base it off that. Wow. I'm so excited to add voice back into this. Jarvis, it needs to be freaking Jarvis. Very nice. Very nice. It would be exciting to also add error logging. So if it can like check with the Vercel API if there's a build error with some types that can kind of like autoheal. I think we have all the CI CD hooks that we would need to have that nice. And then when that build is ready, I should get a little notification thing here. Oh my gosh. OK, so this is not the changed version yet. Here's a summary of the modifications. Imported the use HUD store hook. Added the X icon for the close button. Nice. Removed the dialog component and replaced with the pane component. Updated the handle view contents function to use add pane. Oh my God. Now give me my new deployment. It takes about 45 seconds usually. Refresh. This is already amazing, but there's so much more that can be done for code base knowledge, agentic loops, holy shnikes. Are you ready? What do you think is going to happen? Well, we have a pane. We've got a beautiful pane. That makes a beautiful pane, but nothing is inside it. Look at pane chat pane and HUD to figure out why. Pretty sure there's like a weird thing that we're doing about rendering different types of panes and probably haven't registered a new type. And yeah, we need to add our X button. I can't see. I hope this update works because I can't see very much now. You know this little window here, you know, this is making me think that we're building an operating system. We're building an operating system, an agent operating system. What's it doing back there? Rewrite file, which I can't see the changes of. Oh, here's the second pane for you. Is there anything else? Well, I'll let you know in 45 seconds. I could be pulling this stuff down to my local environment, but I'm really liking the staging flow. I didn't know that you just click the button to swap in the new stuff preserving your current session. I tried to get away from Vercel with a spin through Laravel realm, but just too good. It's just too good. This plus the Vercel AI SDK. They got us. Refresh. Well, there it goes. Would that not generate a log? Well, that's not good. Now you get to watch me stumble around and try to solve it, but that's educational too, right? All right, let's pull this. Okay, so fortunately, even though I don't have that same context, I can at least keep editing in the live version. Okay, so first we need to diagnose what's wrong because something broke as a client error. It didn't generate a server log. I don't know what's going on, so we dropped down to the local environment where I'll get a better error. Give me an example. Edit to the scratchpad.md. Oh, okay. src popper dot what the hell is popper? Well, this means there's some hook-related infinite recursion somewhere probably. I don't know. Help diagnose this. We changed tool result.tsx, so I'm guessing it's in there. Something related to diff and opening that. All right, now we got to go look through our commit history to see what the hell the problem is. Okay, yeah, that'll do it. One of these is triggering some kind of infinite recursion there

[19:59] Speaker: Some formatting messed up, hang on. Look at pane.ts and toolresult.tsx, HUD.tsx, and store slash HUD.ts. OK, the other issue may have been fixed. I just can't see anything because these things are blocking. And I can't close it. Oh, why didn't I just resize? I forgot I made these. Here, I'm gonna put myself in a little... I'm gonna put myself in a HUD pane here. It's already implemented. The issue is that the pane component in HUD is not passing the title bar buttons prop. Let's update the HUD.tsx file to include the close button for non-chat panes. That's nice. Do you think this button will work? No. Oh, wait. Give me it. Give me. Weird. It's like putting it in there. Oh, my gosh. It's opening. It looks great from what I can see. It's just nested in the tool result component, which is not at all correct. We need to be keeping track of panes only in the HUD and rendering them via the HUD.tsx. Remove everything else. That's probably not what I want to say. Fix it. I apologize for the confusion. You're absolutely right. I love it when it tells me that I'm absolutely right, even though it's not the best judge of that always. First, let's modify the tool result. I won't be able to look at that, right? That's messed up. It doesn't dismiss. All right, the first two lines look great. Yeah, that looks correct. If pane type adds content. If that triggered one deployment per commit, let's cancel the oldest one. OK. All right, so let's see. Let's think about it while we've got 45 seconds here. That one is not the one we want, right? We want the add three lines in HUD. OK, so in tool result, remove the pane component and the react diff viewer. Updated the handleviewContents function to add a new pane with type diff and the necessary content. In HUD.tsx, added handling for the diff pane type. Implemented the react diff viewer inside the pane component for diff type panes. Added custom diff styles for consistent styling. In store slash HUD.ts, updated the pane type to include diff as a possible type. Added a content field of the pane type to store all content and new content for diff views. Now when you create view changes in the tool result component, it will create a new pane managed by the HUD store, which will be rendered in the HUD component with the correct content and styling. It's just amazing that I don't have to keep track of all of this. See, I can keep track of it from the perspective of like a senior developer overseeing a junior who's responsible for keeping it all in their brain. And this junior happens to have a really big brain. Do you think it worked? Oh, yeah. Oh, yeah. Hey. Hey, that's really good. Does it work here too? Oh, yeah. Done. Done. I am very happy with this. I didn't even ask it to restyle this button. It was just like, oh, you want duotone? Here's this other thing that you didn't even ask for. Do we like green there or do I want a different color? Oh man, that's like screenshot worthy. Wait, hang on, hang on. Yo. I can resize it. Oh yeah. Is that good? Is that good? All right, I'm gonna do this on a full big screen with a voice. Should I do some like little shadow? Little shadow behind it? Okay, we're just gonna keep cranking on new cool stuff like this. Please give us some feature requests of stuff that you'd like to see. Otherwise, I'm just gonna keep scratching my own itch of what makes my development process easier. And holy shit. See you soon.