So, I- I- I was spinning up the new Claude Code terminal agent this morning,
right?
Version 2.1.210.
And bang, right out of the gate, my terminal starts yelling at me with these bright
yellow startup warnings.
It- it- it was all about deprecated permission rules.
Apparently, my old ~/.claude.json is basically ancient history now.
Yeah, they completely gutted the old permission model.
If you've got Write, NotebookEdit, or Glob in your config, Claude is going to
complain.
They're forcing everyone over to a unified model.
It's basically just Edit and Read now.
And honestly, thank goodness.
Because, man, the old way was a proper headache.
Like, you'd have Write(path) and NotebookEdit(path) and Glob(path).
It was so fractured.
I remember setting up a project last month where I let the agent edit a file,
but because of some weird edge case with Write versus NotebookEdit,
the agent just completely choked when it tried to spin up a new file in that same
directory.
It just sat there throwing permission errors at itself.
Right, because previously, writing a brand-new file and modifying an existing one
were treated as totally separate capabilities.
Now, with the unified Edit(path) rule, if Claude has permission to touch a path,
it can read, write, create, or modify.
It simplifies the entire security boundary.
Your .claude.json goes from this massive, bloated block of fine-grained rules to
just a couple of clean lines of Edit and Read array mappings.
Exactly!
It's like, why make the agent ask three different times just to do one job?
Now, if you want to clean up your config, you literally just open up your global
~/.claude.json or your project-local one, and you collapse those old arrays.
If you had "Write": ["src/**/*"] and "NotebookEdit": ["src/**/*"],
you just delete both of those and replace them with "Edit": ["src/**/*"].
It's incredibly clean.
But, uh, speaking of long operations, did you see what they did with the terminal UI
for tools that take a while to run?
Oh, the ticking timer!
Yes!
That is such a massive quality-of-life upgrade.
Before, when Claude was running a long-running tool-like a heavy test suite or a big
build step-the tool summary would just collapse, and you'd sit there staring at a
static spinner.
You had no idea if the process was actually hung or if it was just taking its sweet
time.
Now, there's a live, ticking elapsed-time counter right next to the collapsed tool
summary.
It actually counts up, second by second, so you know the daemon hasn't just
flatlined on you.
Mate, yes!
It's the little things.
It saves you from that awkward...
you know, that "is it broken or is it just slow?"
dance where you're tempted to hit Ctrl+C and ruin the whole run.
And they also tweaked the claude attach behavior, right?
Something about the daemon settling?
Yeah, exactly.
When you run claude attach to hook into an existing session,
the background daemon integration is much more robust now.
They added a settling delay to make sure the state is fully synchronized before the
terminal prompt hands control back to you.
No more race conditions where you start typing commands while the background process
is still waking up.
Brilliant.
Oh, and for the Vim nerds out there, they finally added a setting for custom
keybindings.
There's a new JSON option called vimInsertModeRemaps that you can drop straight into
your settings file.
So if you're like me and your muscle memory is hardwired to use jk or jj to escape
insert mode, you can finally do that in the Claude terminal interface without losing
your mind.
That's huge.
No more accidental jj strings scattered all over our prompts.
Alright, update your global configs, people.
We are out of here.