So I was- I was working on this local refactoring task yesterday,
right?
And I'm about, I don't know, six steps deep into a multi-turn chat in my terminal.
And then I realize...
wait, step two was a completely wrong turn.
I- I completely messed up the prompt.
And normally, you just sigh, copy your file attachments, copy the context,
and start a whole new thread from scratch.
But I was looking at the new Codex CLI v0.145.0 release from July,
and they've actually...
they've added this thing called a contextual branch.
Oh, wait, really?
Like...
like Git branching, but for your actual chat history in the terminal?
Yes!
Exactly like Git.
Instead of overwriting your subsequent turns or- or just totally corrupting the
session history when you go back and edit, it actually forks the conversation log
natively.
It's- it's in PRs 33201 and 33211.
You literally just scroll up in your TUI--your terminal user interface--select that
older prompt, press e to edit, and boom.
It forks.
Huh.
Okay, but how does it handle...
like, if I had three files attached and two tool results from a database query at
that specific step?
Does it just lose them?
No, that's the cool part.
It actually handles the fork at the local SQLite database level.
So it replicates all those file attachments, the tool results,
the @-mentions...
everything active at that exact timestamp is cloned into the new branch.
You get a clean visual indicator of the new path in your terminal,
and the original pathway is just...
preserved.
Okay, wait.
There's got to be a catch here.
If you're branching the conversation history in SQLite, what happens to the actual
physical files on my local disk?
Because if the AI thinks we're back at step two, but my local index.js still has all
the edits from step six...
doesn't that create a massive state drift?
Oh, absolutely.
You nailed it.
That is the big "state drift" trap.
The files on your disk do not automatically roll back.
So the agent's mental state--what it *thinks* is in your workspace based on the
historical branch point--is completely out of sync with what's actually sitting on
your hard drive.
If you're not careful, you'll ask it to edit a function that you've already deleted
or modified in the physical file.
Right.
So you basically have to manually do a git checkout on your code to match the branch
point of your chat.
It's- it's- it's incredibly useful, but you've got to keep those two things in sync
yourself.
Exactly.
It's a tool for your context, not a magic wand for your file system.
But, you know, speaking of the database side, this v0.145.0 update also quietly
fixed a massive pain point for anyone who's used the CLI for more than a couple of
weeks.
They introduced paginated thread history.
Before this, if you had...
I don't know, two hundred local thread files, the terminal startup lag was just
brutal because it tried to load everything at once.
Oh, I remember that.
You'd type the command and just sit there for two seconds waiting for the UI to
render.
It felt so sluggish for a command-line tool.
Right!
Now, with PR 33364, it lazily loads older threads from SQLite.
The initial terminal render is- is sub-millisecond now.
They also added proper search, persisted names, and they stabilized the memories
feature flag under PR 31804.
So it's- it's starting to feel like a really robust local workspace helper rather
than just a wrapper.
Wait, what else is in this release?
Did they do anything with those messy UI visualization files?
Usually, if Codex generates an HTML mockup or a chart, you have to go hunting
through some temporary project subdirectory to actually open it in a browser.
Oh, they actually fixed that too!
PR 33925 introduced clickable visualization links directly in the terminal.
So if it generates an SVG diagram or an HTML mockup, you get a secure,
clickable link right there in the chat UI.
You click it, and it opens instantly in your default browser.
No more digging through .codex/temp/ folders.
That's actually a huge workflow win.
And it looks like they did some heavy under-the-hood chores too.
They upgraded the packaged ripgrep binary to 15.2.0, and...
oh, this is interesting: they migrated the default Bedrock integrations to the newer
GPT-5.6 Sol model, replacing the old GPT-5.4 selections.
Yeah, that's PR 32288.
So the underlying brain is getting a significant bump if you're routing through
Bedrock.
If you want to grab this update, just run your usual package manager upgrade.
Oh, though if you're using pnpm globally, they did just fix a path resolution bug
with global installs in this version, so it should be much smoother now.
Perfect.
Well, I'm going to go play with this branching tool--and remind myself to keep my
terminal and my actual Git repository in sync.
Good chatting, Maya.
Talk soon, Ethan.