1020: Do You Read the Code?

š **Source:** [1020: Do You Read the Code?](https://share.snipd.com/episode/f5af9f8b-c5ca-415e-b351-df7b79aaa335)
## Highlights
- **When You Should Still Read Code**
- Reading generated code depends on context: CJ and Scott say read code for production or important projects but skip deep review for throwaway scripts.
- They argue turning off auto-accept and reviewing builds your mental model and prevents sloppy, token-driven engineering.
Transcript:
CJ Reynolds
I think so. I personally I've been staying off of X, but Scott did bring this to my attention and I've been reading some of the replies. So, Scott, do you want to get into this first story? Do you still read the code?
Scott Tolinski
Yes. CJ, gotta say how could you stay off of x the everything app the app that has everything the everything app yeah check it once a week before we go live it's good for mental health but yeah Yeah i believe that yeah man i gotta say one thing that x has been doing a terrible job lately is serving me a bunch of crazy reaction videos like i don't care like this is not TikTok I don't Want to see somebody else watching a video either way the tweet is how much better do the models have to get before you stop reading the code and that led to responses from all kinds of people Uh so even just this first one here um man, it's crazy the amount of people that chimed in on this. So like David K. Piano, Justin Schroeder says negative 20 percent. Reading the code is meaningless now. It always was. You have to verify it. Interesting. Chang Lau, reading code. I barely even look at the folder structure now. That's Mr. Pretext himself. Reason ML. Glauber from Terso, for database or OS code, I will expect that never. A lot of us still routinely read assembly code. So Glauber is big on reading the code, which I mean, Terso, great product.
CJ Reynolds
So I would think like with Glauber, so he's, he maintains a framework, he maintains a library that people use. And I actually watched a video, it was an interview with Rich Harris, the creator of Svelte. And he talked about like, if you're creating a library or a framework, you kind of still need to be reading the code because you're on a bit of a frontier in a sense that the thing you're Making doesn't exist. So I would expect that. And I would hope that people creating the libraries that we use are still reviewing it in a with a human in some way yeah otherwise you're going to get open claw which open claw for all of
Scott Tolinski
Its pot you could argue that because of its popularity that doesn't matter but every single time you update open claw it breaks um where like hermes they do read the code and it is more Curated and hermes never breaks so yeah that's just anecdotal right there uh prime engine says i think this read code slash don't read code really comes down to one thing do devs need Something to fight about this is our new react and prime is nails this here because absolutely before this is is ht a programming language? There's just an endless amount of bike shedding on this kind of stuff that happens. So, yes, devs are just going to fight about anything, reading the code or not. That's not what matters.
CJ Reynolds
And I think the answer, just like with everything else, has nuance and lies somewhere in the middle. Because, I mean, personally, if you've seen my takes on this channel, you would expect that, yes, I read the code, but I will say for some personal projects, for some one-off scripts, I don't, I do actually turn on auto accept edits. And that's because a lot of times those aren't projects that are going to have a long life. It's something that I'm just testing out. I want to get it up and going. So I'm more than happy to just let the AI write the code because I'm, to test the functionality or just like test the thing itself. But when it comes to production code, when it comes to like code that you're shipping for your company or that you're contributing to, you probably should read the code just as an engineer. If you want to pull up the tweet from Kramer, he responded that says, no good engineer will tell you it's useless to read the code, by the way. That's the easiest signal. I think like it's part of our jobs. ([TimeĀ 0:03:23](https://share.snipd.com/snip/69d474d4-0bda-4466-aedb-30a8ff968cdf))
- **Turn Off Auto Accept For Important Features**
- Turn off auto-accept for agent edits on features you care about and manually review AI changes.
- CJ recommends this to preserve code quality, token-efficiency, and your mental model of the codebase.
Transcript:
CJ Reynolds
Because we're also getting into the realm of like, when we were writing code by hand, we're building up this mental model of our code base, right? As we code, we learn more about where this code lives, how it relates to the whole system. We're kind of like building up this mental model as we code it. But when you let AI do everything, you're not building up that mental model. So in a sense, that is moving into the realm of like, well, what is my job anymore? Like, why am I even here? So I think you should be slowing down. I think you should turn off, especially on features that you care about, features that need to be engineered well, need to have good code. You should turn off auto accept. ([TimeĀ 0:15:17](https://share.snipd.com/snip/b90f24d1-16f3-4f3e-8fcf-71841f1c6646))
- **HTTP Gains A QUERY Method**
- RFC 10008 proposes a new HTTP QUERY method that is idempotent like GET but allows a request body.
- Node.js already accepts QUERY server-side; purpose is to avoid misusing POST for complex read-only queries (e.g., GraphQL).
Transcript:
CJ Reynolds
But this is RFC 10008. It's currently a proposed standard. It hasn't made it into any web browsers yet. But Node.js has actually implemented this in their server-side HTTP module. So if you're implementing a server, you could actually listen for it. But the idea is, so it's called query. So now in the long list of methods, so you've got git, put, post, patch, delete, and now query would be a new one. But the idea is sometimes you might have a request that you're cramming data into the query string because you want it to be a get request. So in the example here in the introduction, the common query pattern is like slash feed, which is some endpoint, and then question marks, you have the query string, and then a bunch of Query parameters like q equals foo, limit equals 10, sort equals minus published. And this is essentially how you craft a request that has some data inside of it. Basically, the data is in the URL, and then the server can act on that data. But this is and could be a, I think the right term is idempotent, idempotent request. Basically, it's a request that doesn't modify anything on the server side. It's just a request for data, the server returns something. And we do this a lot. And the reason we do this is because the get method does not officially support putting data inside of the body of the request. So typically, if you do have some more complex data that you want to send, but you still have an idempotent request, you would use a post request. And we actually see this in GraphQL. If you've ever built a GraphQL API, you do like slash, I think it's slash query. It's always a post request. And then it has a big, massive payload of all the things you're requesting or reading. But that's the reason they use a post request is because they need more than just the URL state, they need actual data in the body. And so HTTP query is here to solve that. Essentially, it's an HTTP get, but it can have a body. So you can put those query params in the body as like form URL encoded params, or you could have JSON inside of the body. You could set the content type to whatever you want. But the idea is this will still be classified as an idempotent request. Like it doesn't modify anything on the server. It's really just requesting data. I have this other blog post that shows some more concrete examples. So yeah, in practice, essentially like GraphQL would be one of the things that could adopt this. So instead of a post to slash API slash GraphQL, they do a query. And then that query includes the GraphQL query in the body. Similarly, like they show an example here where instead of using a form URL encoded body, they actually use a JSON body. So you have a query request to an endpoint, include JSON, and it's essentially just a JSON version of the query string, but it can get more readable because you can have like array types Inside of there. Typically, like with query strings, if you want an array type, you'll have like multiple of the same query parameter. So query, it's coming, it's exciting. And like I said, it's only supported in Node.js HTTP module so far. But the idea with an RFC is it's a request for comments. So implementers of browsers and everyone else can kind of chime in to decide, should this thing exist? Should we kind of change the spec a little bit? And eventually, this will make it across the web. ([TimeĀ 0:17:40](https://share.snipd.com/snip/5aa0240e-cc37-4867-97ae-f931f9589020))
- **GitHub CD-ROM Promo Caused Unnecessary Outrage**
- Scott signed up for GitHub's CD-ROM promo and enjoyed the joke despite others complaining about optics.
- He pushed back on critics who accused marketing of diverting funds from infrastructure.
Transcript:
Scott Tolinski
I got something uh very fun in terms of very fun where the internet decided it was going to be giant babies for one day uh github they decided to have a fun little promotion just because The sony playstation announced that they are going diskless i had to make sure i i focused really hard when i was saying that word just now diskless uh and that they will no longer be shipping Disks in packages and so github said oh we heard you and we agree in light of recent developments in physical media github is proud to announce that you can obtain your public repo on a CD-ROM. And they even had a little link here where you can go ahead and get one. And the Internet had a very normal response to this, where everyone just started complaining about it. What in the world? Why would we ever want that? Why don't you fix your infrastructure as if the marketing team at github who's probably just a couple of people putting this promotion on are the ones going to be single-handedly fixing Your infrastructure like oh let's let's re-divert that energy and money like this is costing any kind of money that would then uh cause github to somehow not be able to fix their infrastructure It is crazy and i had people arguing with me left and right about this thing i said this is just a fun promotion they're like you gotta think of the optics it's like brother like people are Just in such a dang grumpy complaint about anything that like I cannot comprehend being mad at this. They're like, you got to think of the timing and the optics. I those two takes like fine. I can understand the optics of it that get hit hasn't had the best uptime lately. But the people who are saying, like, it's diverting funds from infrastructure or this is why GitHub is down all the time. Like, you people are so out to lunch. And I don't know. I got somebody grumpy at me. I'm going to put them on blast, actually. Let me do that. Let me go through my ā my gosh uh yeah let's find this let's find this because this makes for good content uh yes this guy here you youtubers are so out of this world that you can't understand The importance or ways to deliver a better product by all means you got numb to people's real problems. The performative marketing is the only thing you see and appreciate. Theater people, YouTube people, influencers. Brother, I'm not a theater person. Like, what do you think? I spent my whole career as a developer building. And you're going to say that all I understand is performative marketing, I understand that the three people at GitHub that it takes to produce a promotion like this absolutely influence Their infrastructure. Zero percent. Zero. Big old zero. So you're on my you're on my list.
CJ Reynolds
Nice. Yes.
Scott Tolinski
And to be clear, I mean, my my shit list, not my other kind of list.
CJ Reynolds
I will say, Scott, I saw this new story in my RSS feed. So I'm subscribed to the GitHub blog posts and stuff. So I saw it. I clicked the link and I signed up. Done. Because it sounded cool. It's like, let's get the syntax repo on a CD. That'd be really cool. So I was not there for all the discourse. But I think people always find something to complain about. I could see it. But yeah, you have to understand just like, it's not, and also we're like, I'm not backing big, big corpo here, but you do have to understand the nuances of a large corporation. Like there's so many internal organizations, so many things happening that like, I don't think the marketing team talked to the infrastructure team to be like, hey, do you think people Will be mad if we release repos on a CD? Like nobody would even care to have that cross organization communication. So I don't know. I think it's a cool idea. Like physical media is back to I think the marketing team was on the right track but it's potentially maybe the tweet itself like one of the uh chats just said i'm just a bit confused about We heard you we agree which is the first sentence the first sentence of the tweet which you know maybe people people didn't necessarily say they wanted github on a cd but there was they're Trying to tie in like you were saying trying to tie into all the news PlayStation and no more physical media.
Scott Tolinski
Yeah, it's a direct call to the PlayStation stuff, which had blown up. And they assumed that everybody would would know that because that makes sense, because it's it was all over the place. And not only that, other folks were doing the same meme. This had been memed several times. So they weren't the first ones to respond to this and do something like this even other tech companies had made jokes about giving you stuff on dats or or tape or anything like that so uh I i thought they they expected people to understand that and not make a joke about their uptime i do want to shout out um frankie for the i understand the optics for a c-ROM is on point. Yes, Frankie. Absolutely. Optics, CD-ROMs. My God, dude, I just thought this was too ridiculous. It's like GitHub is always known for doing fun and funny stuff like this. That's like always been part of their brand. The Octocat, even as itself is a fun and funny thing and i'm sorry that uh you are immune to fun uh and you you don't get the joke but i just don't i don't get getting grumpy about this i don't
CJ Reynolds
I'm grumpy about getting grumpy about this i'll say that yeah and but i did see that because you were uh backing up a large corporation they did say that one of the tweets said they were Going to give you two CDs, Scott. So I think that's good for you as well. I don't know. Oh, yes. I don't know if the person in charge of it, but they're like, you get two. Do you know who that is? It was like a reply, I think, to your to your quote tweet. Yeah. It was somebody that works at GitHub.
Scott Tolinski
Somebody that works at GitHub. Let me let me you who that is really quick, because it is not just somebody that works at GitHub. It's Kyle Daigle. Kyle Daigle is the COO at GitHub. So, yes. And a long time. He's quite the dude.
CJ Reynolds
Nice. You get two, which is cool. But I think a part of the other news as well was only the first 1,000 people to sign up were able to get one. I don't know how many signups they actually accepted. But that's the other funny thing about all of this is literally only 1,000 people are going to get a CD, but the uproar triggered tens of thousands of people, it seemed like.
Scott Tolinski
Yeah, the first 1,000, it maybe seems like the first 998 because I'm getting two. That's right. Yeah, exactly. Yes. Sick. ([TimeĀ 0:22:41](https://share.snipd.com/snip/94802c49-bf9d-4be4-80a5-c9caa6966d3c))
- **Gia Compiles Classes Into Tiny Runtime**
- Gia is a compiler-first UI framework that compiles classes into minimal runtime updates, blending Svelte's compile-time approach with JSX syntax.
- It uses class-based state (no hooks) for interactivity and ships significantly smaller bundles vs Solid and Svelte.
Transcript:
CJ Reynolds
But this framework is called GEE. It's spelled G-E How would you say that? GEE? GEE? GEE? GEE? GEE? GEE is a good middle ground. I like that. GAIA? GAIA? I'm going to go with Gia. But their tagline is, write JavaScript, get reactivity for free. Now, this actually, I saw this a few weeks ago, but didn't pay too much attention to it. But it got on the front page of Hacker News. I started looking into it. It looks very interesting. It says they're a compiler-first UI framework that turns ordinary classes and functions into surgical DOM updates. No virtual DOM, no hooks, no signals, just your code wired at build time. And you know what this tagline sounds like? Sounds like Svelte. Yeah, it sounds like Svelte. It's like what Svelte tried to do. And so looking through the docs and looking at their examples, it very much seems like Gia is kind of like a middle ground between Solid.js and React, because even Solid.js tries to do A similar thing that Svelte does, which is like compile ahead of time. But you can look at their charts, and they show you that a simple Hello World of GIA is only 214 bytes, whereas a HelloWorld in solid is 10,000 bytes. Svelte is 23,000 bytes. So they're really trying to harp on the idea of like, we have a really optimized compiler that only ships what's needed, no extra stuff. Because I think even Svelte now ships like a tiny runtime for like reactive variables using proxies. And there's a little bit of runtime code, but in this case, Ghia is thousands of bytes smaller than what you would ship with Svelte. And they also have a chart that's not just a hello world, like a to-do app, because that's where the real stuff comes in. But this also shows that it's a lot smaller. So Ghia with MinifyJS is 15,000 bytes. Solid is 16,000 bytes. And Svelte is 38,000 bytes. And so that's what I saw as interesting to me is like you can see how close it is to Solid. And I'll show you the code and talk about the code in a second because it uses JSX. But this was kind of the idea behind Solid as well. Write code that looks a little bit like React, but a lot of it's going to get stripped away there's no virtual dom it uses signals so it's very interesting uh any thoughts so far scott my
Scott Tolinski
Thoughts are a little bit of i hate the the the text treatment on this website. I'm sorry, GFox. It makes it very difficult for me to read this page. Now, I think it's cool. I like this, obviously, because I like Svelte. But in the same regard, I don't think this is moving the needle enough for me. That said, when I looked at the code, I did like the way that it looked. It felt very organized in the way that I like to write code. I don't really love JSX, so for me, that's a bummer. But how they handle stores just being classes, how they handle components just being classes, I like all that. And the fact that you're're really shipping nothing that's all good do i see this going anywhere you know i don't know but i i do think it's a good a cool thing to try and i'm down for people Trying this kind of stuff one thing i i saw was interesting was there was a we're all just going to be saying this differently, I guess. GIA UI, which is based on Zag.js, which I didn't know about anything like that. So one thing I got to love is a framework taking UI components seriously. And that Zag.js, which I'd never heard of before you showed me this a UI components powered by finite state machines. So it's a state machine based UI components library. Now granted, when I went to look at Zag, I didn't really like how the components looked. This felt used like use language from React, it used writable stores instead of hooks or not hooks, runes. And in general, like it's doing a lot of spreading. So Zag, I didn't really love, but I do love that this framework took UI components as being an actual part of the framework.
CJ Reynolds
I love it because that's one of the things that I don't like about the react ecosystem is there's just so much choice around it I mean you could say that nowadays people have kind of settled On using something like shad cn or and like that's built on top of base ui but a framework launching and thinking about that is a good thing so they have things like a button component a Card component input component and then in terms of interactive interactive components that use zag js you've got like dialogues tabs accordions so i think it would make sense like If you're shipping a new framework in this day and age like you have to have it's kind of got to be a bit batteries included if you want to even slightly compete with some of the other frameworks
Scott Tolinski
Out there yeah on re's asking about the brotley versus geia, Bratley being compression algorithm in the browser. And I think what that's saying on their website is that it's saying that here is the size of Gia pre Bratley. Here is the size of Gia without Bratley. And here's how much compression greatly improves Gia.
CJ Reynolds
Or it that's how i read it as well i think that's one of the aspects is it's also potentially more compressible for whatever reason but i would i would read this third column as uh gia with Brotley is 30 times smaller than solid and it's 70 times smaller than uh svelte that's how that's what i'm thinking as well yes yeah it's a little confusing because the column title says Brotley versus gia but i think they mean comparing brot lead gs size to given framework size yes yeah let's talk about the code though because that's that's the thing that a lot of people Care about and i will say like this is one of the other things that I like about it as well I will say I've been a recent critic, a loud critic of React and I will give you more details because One of the things I don't like about React is the entire hooks system every hook that you write inside of a component is run on every single render not necessarily invoked but it's recreated On every render basically everything you put inside a React function component, that code has to run on every render. And I don't like that. I think it's a very silly model. And SolidJS solved this, where essentially you write your SolidJS component, it runs once, and then you have effects that can potentially run later. But you don't have this whole idea of this component runs over and over again. And Gia does that as well. So they ([TimeĀ 0:30:42](https://share.snipd.com/snip/095404a7-b5c2-4c9c-9c5a-8ac5eedd8911))
- **Fable Felt Agentic and Deep During Tests**
- Scott and CJ tested Fable; Scott burned through credits and found Fable very agentic and strong for large, cross-cutting tasks.
- CJ used it to plan a media app; Fable researched external APIs and executed tool calls without extra prompting.
Transcript:
Scott Tolinski
Let me even just show this. So last week, we got Fable. And we received notice that the Department of Commerce has lifted export controls on Fable 5 and Mythos 5. We'll begin restoring access. And then again, it took towards the end of that day, I know this because I was checking, and Fable was restored. And I gotta say, I have used all of my Fable credits as of this morning. So I'm officially booted from Fable because that takes me up until past the deadline at which they will be removing it, which I believe is the 7th. So tomorrow, even though my usage limit said it would reset Thursday. Either way, I no longer have access to Fable. I burned through all my Fable credits. I'm here to tell you that on a Vibes level, it's definitely the best model that I've used. It's done a whole lot of stuff. And one thing that I really liked was the ability for it to execute large things really reliably. But again, one thing that I have not used it on, CJ, is I have not used it on any projects where I actually care about the code. I've been using on my Vibe Coding Slop Fest stuff, and I had to go back and forth with it less. It was able to do more complex things, and it did so better, and with less hand holding so again i as somebody who who's used feels like i used everything that's come out i think the hype Around fable was real in fact um i can even show you some of the stuff it built for me um yeah it so papers made uh shaders I think it was Paper Shaders. They released open source shaders. And one thing that it did for me, where is the water, water effect? One thing that it did for me was port it to my WebGL project here. And actually, this is not, it's WebGPU, not WebGL. I get those messed up here. And so I'm building a programic, uh, what do you call this? You'd call it like a programic video interface to generate video.
CJ Reynolds
So whether that is, um, whether that is titles, think after effects style things as well.
Scott Tolinski
Yes. Yes. Think after effects with sound effects and all this kind of stuff. So I'm building it to be programic that AI agents can create these things or you can create every single one of these examples can be done in JSON. So these all exist as JSON and they all have various different things. And it one-shotted to me, which this one actually I've tweaked recently, but it one-shotted for me this kind of stuff where I said, take me mermaid diagrams and turn it into a timeline And then have several different themes for it or whatever. To mermaid diagrams and have them look nice, which, again, Opus to me, or Opus, Claude models to me remain goaded on having a better aesthetic, just a better aesthetic barometer. But it did quite a bit of restructuring this large repo, which this repo, very large, very interesting. It did a lot to take every single thing that I had working as just animations and turn it into something that could be manipulated by the UI, something that allowed for keyframes. Oh yeah, built a whole keyframing system for me. And these demos right now, CJ, I will say these demos are just kind of like tossed together demos to have a demo. Let me do, let me do for keyframes. It built this whole keyframing system that is like, let's see, like a DaVinci Resolve style keyframing, where you can modify various properties on the keyframes and have them. I mean, it's, it's DaVinci Resolve-esque, you know, uh, it's pretty crazy that it was able to do this. So I, I personally, I mourn the loss of my Fable credits because I think I was really enjoying my time with it. Uh, did you get a chance to use it?
CJ Reynolds
I can talk a bit about my experience with it. And I'm sharing my screen now to show my co-pilot usage because I'm all out of co-pilot credits. But over the weekend, I was building a physical media management app. So I've been ripping, I've been finding CDs at thrift stores and record shops and ripping them. I'm trying to create my own basically streaming server of music. And I was planning out that project. And I thought a good test would be to use all of these four models to plan that project. Essentially, I have a folder of artists, albums, files. I needed to scan that and then also sync with MusicBrain's API to show me metadata about the actual albums and everything. So I wrote out a big prompt, copy pasted it into all three. One aspect of this is Kimi K2.7 is now available in GitHub Copilot. So I was able to test with that. But I basically pasted that prompt in, I described what I wanted to build, I described my tech stack. And this chart isn't exactly right because both Opus 4.8 and GPT 5.5 were used for building it. But I will say, you see this bar graph here for Fable. That's how much usage it took to do the same amount of planning. Now, I will say like the one piece of it that made it feel better was it went really deep. So for the plans that were generated by GPT 5.5, Opus 4.8, and Kimi 2.7, it basically took the prompt that I wrote, maybe did a few documentation lookups and was like, okay, this is the Plan that I'm going to present to you. But Fable just went, just started researching. It was like, okay, this is what you want to build, but I see you also want to talk to the Amazon API. And so it started reverse engineering the Amazon music API. And like, it was just tool call after tool call. So it definitely is more agentic. Basically the way that they've trained it is it will try and try and try more before it's done. And so that's really the only thing that I could see before I completely ran out of usage credits on GitHub Copilot. But I will say comparing the four models, that was the main difference. Like it took the prompt and also rolled with it. Like it basically did things that I had to later prompt the other models for, but it just went ahead and started doing it. ([TimeĀ 0:41:31](https://share.snipd.com/snip/ce583e7c-4775-4d31-ae6b-809f6973e2f4))
- **Use Min Release Age To Block Fresh Malicious Packages**
- Enable minimum release age in your package manager to delay installs of freshly published packages.
- CJ notes npm/pnpm/bun/yarn now support this to reduce supply-chain risk by blocking immediate installs of new releases.
Transcript:
CJ Reynolds
The first thing is good news for the JavaScript ecosystem. So this was a tweet from Colin Hacks, the creator of Zod. But they show that in all of the tools you use in the JS ecosystem to manage your dependencies, whether it's NPM, PNPM, Bun, or Yarn, Now, every single tool supports the minimum release Age property. And it's spelled differently across every tool, but every tool now has that as an option, where essentially you can say, install, let's say you do a PNPM install for a new package. If there is a recent publish of that package, with this setting, that package, that new version, would have had to have been published for a specific amount of time based on this setting. And this is to prevent certain supply chain attacks, right? Because a lot of times when a package is compromised, it's actually caught within the first few hours. And if you have this setting set, that means your code would not have even tried to install or update to that version because it basically waits a certain number of days or hours after A certain release has been out in the wild. And so this is one thing that your teams should adopt to prevent the spread of supply chain attacks. ([TimeĀ 1:04:00](https://share.snipd.com/snip/cebd0935-239c-4cec-bb4a-f5ead37a2d2a))
- **Plan For 72 Hour Lock When Using Recovery Codes**
- Expect high-impact npm publisher account changes to enter a 72-hour read-only state when recovery codes are used.
- GitHub/npm added this to stop hijacked accounts from publishing malicious updates immediately.
Transcript:
CJ Reynolds
Exactly. Yes. Throw this in your config. And so that's one piece of good news, but I'm actually linking this up with a post from GitHub where, and the title is, NPM adds preventative account protection for high impact accounts. So the idea is if you are the owner and maintainer of a package on NPM that gets millions of downloads, I don't know what their exact classification of high impact account is, but basically Just think some of the most downloaded packages on NPM. Anybody that is a publisher for those accounts, if the accounts running those packages uses one of their two-factor authentication recovery codes, those are the codes that you like Write down on paper or save to a hard drive when you first sign up to a service, not the ones generated by your authenticator app. And the idea is if you're using a recovery code, that means you lost access to your authenticator app. So if you use one of those codes, if you change or if you change your email, that account is placed into a 72 hour read only state. And again, this is to help prevent the spread of supply chain attacks, because a lot of times people lose access to their account accounts in this way, whether they were phished or maybe They got hacked and got access to those recovery codes. And this will now prevent whoever potentially got access to those things from publishing malicious packages. Now, it's a little bit of an inconvenience for the person because let's say you do legitimately want to change your email. Now you just have to plan for that and know that for the next 72 hours, you won't be able to publish new versions. ([TimeĀ 1:05:20](https://share.snipd.com/snip/63aeab29-d149-4385-83e9-32e8dea7dcb8))
- **Auto Continue Defaults Create Risk With Agents**
- Claude Cloud Code auto-continued prompts after 60s by default, causing unwanted actions and token usage; it was later turned off by default after complaints.
- This highlights the danger of unattended agents acting on ambiguous defaults.
Transcript:
CJ Reynolds
Yes, I have two things related to Cloud Code. And I use Cloud Code at work. I don't use it for personal stuff. But this was a bug that was filed five days ago. And it says there was no response after 60 seconds continued without an answer. So if you're not familiar, Claude has the ability, and a lot of these other coding, agentic coding tools have the ability as well to ask you a question to get clarification on something. So maybe you're writing a plan. It'll ask you, oh, do you want to use this versus that? Or how do we want, do we want to approach it this way or that way? And you can answer that question with a prompt or by choosing from multiple choice. But the Claude team secretly added this feature where if the user does not answer within 60 seconds, it just automatically chooses an answer and keeps going.
Scott Tolinski
Wow. The recommended one?
CJ Reynolds
Yeah. Well, yeah, it chooses like whatever. Yeah. Cause a lot of times they'll be like, I recommend you choose this answer, but here are some other options. And so, yeah, it'll choose the recommended option or whichever option it thought. Um, and just keep on coding. And there's a massive thread on GitHub that filed this as a bug that was like, this should not be on by default. I agree with that. Yeah. There are multiple stories in the, in the GitHub comments of like, this happened to me. Like I was running three different sessions and I don't always have every session in focus. So it just kept on coding and then like did some stuff in production, I didn't want it to. And I think like, that's the other aspect of this, they actually had detection to see, okay, if the terminal is not focused, meaning like you're using the web browser or some other app, That's when this will kick in. So it's never if you are, directly have your terminal focused. But yeah, people went wild in the comments.
Scott Tolinski
I never have my terminal focused when it's cooking on something. I just let it go and then look at something else. Oh, I'm looking at something else now, yes.
CJ Reynolds
And on macOS, at least, even Cloud Code running in the terminal has notifications. So if it does ask me a question, I can see, oh, a notification pops up. I'm going to go take a look at that in a second when I'm done with whatever else I'm working on. I would never want it to just keep on coding if I don't respond for 60 seconds. So I do believe they, and here's the other issue, they fixed it, but they left it on by default. And then people kept complaining more and more. And finally, it's off by default, I do believe.
Scott Tolinski
All they had to do was prompt their model to fix it. And if nobody takes a look at it, it will fix itself, right? That's the feature, yeah.
CJ Reynolds
Exactly. So, yeah, we've talked about this before, but the fact that Anthropic owns the harness, right? They own cloud code. They can kind of decide how it works. In a sense, auto continue after 60 seconds makes them more money because it just starts consuming tokens. You would expect that. I mean, and this also gets into what we were talking about at the beginning of the video of like if you don review it, or if you don't have the chance to review it, it's just going to keep on Coding. So it's kind of pushing you in that direction anyways. ([TimeĀ 1:10:17](https://share.snipd.com/snip/925b4d07-217e-44d4-97d2-e3bf320f05c6))
- **Claude Code Steganographically Fingerprints Requests**
- Claude Code's CLI fingerprints requests by subtly altering date and punctuation characters based on region and domain.
- The steganographic markers (slashes vs dashes, alternate apostrophe) help detect origin and deter distillation attacks by specific labs.
Transcript:
CJ Reynolds
And the title is CloudCode is Steganographically Marking Requests.
Scott Tolinski
Okay, that's a word. What's that word mean?
CJ Reynolds
So steganography is when you hide information inside of something. Typically you see it with images. So like steganography can like hide a message inside of an image or something like that. But they use that word to say that the way that Claude Code, the CLI, is writing its prompts, is allowing them to do certain things on the backend. And they basically reverse engineered the Cloud Code locally. But the idea is when you send a prompt with Cloud Code, it has a piece of text at the top that says today's date is year-month And that's the standard format. But there is some code that will detect, like if you're running cloud code from the Asia Shanghai time zone or the Asia Urimki. I don't know where that is. Is that like Russia or I don't know.
Scott Tolinski
I'm going to go ahead and say I do not know.
CJ Reynolds
Yeah. Okay, I'll look it up. I'll let that run in the background. Northwest, oh, it's Northwestern China. So they're actually just two different Chinese time zones. So basically, if it detects that you're in either of these two Chinese time zones, it changes the prompt to have slashes instead of dashes. And then it changes the apostrophe to use a different Unicode value instead. So if you were working on code in China, and let's say you were just watching the request that CloudCode was making, you would kind of have no idea that it basically just fingerprinted You as someone using CloudCode in China. But the way it fingerprints is it uses a different apostrophe character and uses slashes instead of dashes. The other thing is it detects, I think, what domain you're running from. And this is essentially to help prevent distillation attacks, where some of these Chinese labs like DeepSeek and some of the others like ZAI are potentially prompting Claude, saving The responses, and then using that as training for their own models. So it detects where you're running from in terms of your domain. And there's a whole list of like DeepSeek, Moonshot, Minimax, and all of that is passed in the prompt as well. So all of this to say that the Claude code harness that you're using locally is able to do things like this, like auto accept your code after 60 seconds if you don't respond or let their API know on the back end that you're running this code from a specific part of the world or from a specific company, which is fascinating. I mean, like they built the tool. They have every right to do that. ([TimeĀ 1:13:27](https://share.snipd.com/snip/d8bb7451-2ff5-4cbe-b9cc-b2f0184bdf78))