1
00:00:00,000 --> 00:00:03,440
So I was- I was tweaking my local
developer environment yesterday,

2
00:00:03,480 --> 00:00:08,880
right, and suddenly my build scripts for
Claude Code start throwing these weird,

3
00:00:08,938 --> 00:00:10,960
unexpected permission prompts.

4
00:00:11,040 --> 00:00:17,440
Turns out Anthropic quietly dropped
version 2.1.195, and it radically changes how

5
00:00:17,502 --> 00:00:20,560
security hooks evaluate tool names under
the hood.

6
00:00:20,667 --> 00:00:23,360
It is brought to you by Jellypod AI, by
the way.

7
00:00:23,500 --> 00:00:28,560
But, mate, they completely changed the
regex pattern matching for hyphenated MCP

8
00:00:28,630 --> 00:00:29,520
servers.

9
00:00:30,105 --> 00:00:32,857
Wait, hyphenated MCP servers?

10
00:00:32,964 --> 00:00:38,297
So you mean like when you have a tool
named, say, mcp__brave-search?

11
00:00:38,409 --> 00:00:41,297
That was causing collision issues because
of substring matching,

12
00:00:41,317 --> 00:00:41,497
right?

13
00:00:41,777 --> 00:00:42,417
Exactly!

14
00:00:42,497 --> 00:00:43,137
Spot on.

15
00:00:43,297 --> 00:00:48,577
See, before v2.1.195, if you had a
permission hook configured for

16
00:00:48,737 --> 00:00:54,497
mcp__brave-search, the engine used a loose
substring regex.

17
00:00:54,737 --> 00:01:01,217
So if you ran a tool called
mcp__brave-search-premium or some other variation,

18
00:01:01,244 --> 00:01:03,697
it would- it would just blindly match it.

19
00:01:03,937 --> 00:01:08,897
It was a massive security blind spot
because a malicious or poorly written tool

20
00:01:08,950 --> 00:01:13,457
could easily hijack the permissions of a
more trusted, similarly named tool.

21
00:01:13,697 --> 00:01:17,217
Now, they've shifted to an exact-match
regime.

22
00:01:17,773 --> 00:01:19,213
Ah, that makes sense.

23
00:01:19,293 --> 00:01:23,613
But wait, if they're doing strict
exact-matching now, does that mean if I have an

24
00:01:23,733 --> 00:01:28,253
MCP server with ten different sub-tools, I
have to write ten separate permission

25
00:01:28,293 --> 00:01:29,293
rules in my config?

26
00:01:29,453 --> 00:01:32,413
That sounds like a total nightmare to
manage manually.

27
00:01:32,715 --> 00:01:36,395
Nah, luckily they didn't leave us entirely
out in the- out on the curb.

28
00:01:37,502 --> 00:01:43,195
To handle those multi-tool MCP servers,
you now have to use explicit wildcard

29
00:01:43,257 --> 00:01:43,835
matching.

30
00:01:44,128 --> 00:01:49,035
So instead of just relying on the old
substring fallback, you've got to define it

31
00:01:49,099 --> 00:01:55,915
like mcp__brave-search__.* in your
configuration file.

32
00:01:56,208 --> 00:02:00,555
It forces you to be deliberate about using
wildcards, which honestly,

33
00:02:00,608 --> 00:02:02,395
is how it should have been from day one.

34
00:02:02,688 --> 00:02:08,475
If you don't update your config to use
that explicit __.* suffix,

35
00:02:08,507 --> 00:02:12,555
your automated workflows are going to
grind to a halt on the next update because

36
00:02:12,612 --> 00:02:16,475
Claude's going to block the execution and
wait for manual approval.

37
00:02:16,982 --> 00:02:19,315
Right, because it won't match the bare
string anymore.

38
00:02:19,459 --> 00:02:21,315
That is a crucial fix.

39
00:02:21,404 --> 00:02:25,155
Speaking of terminal pain points, did you
see the new environment variable they

40
00:02:25,195 --> 00:02:26,515
added for terminal UX?

41
00:02:26,595 --> 00:02:29,475
The CLAUDE_CODE_DISABLE_MOUSE_CLICKS one?

42
00:02:29,762 --> 00:02:31,522
Oh, mate, don't get me started.

43
00:02:32,402 --> 00:02:37,284
If you're like me and you use a terminal
emulator that supports mouse reporting,

44
00:02:37,320 --> 00:02:42,324
clicking inside the terminal to focus the
window or copy some text often ends up

45
00:02:42,384 --> 00:02:47,524
sending random ANSI escape sequences
straight into Claude's interactive prompt.

46
00:02:47,711 --> 00:02:52,884
It completely messes up your cursor
position or, worse, triggers random actions.

47
00:02:53,024 --> 00:02:59,364
Now you just export
CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1 in your shell profile,

48
00:02:59,444 --> 00:03:02,644
and it completely ignores those stray
mouse clicks.

49
00:03:02,751 --> 00:03:05,524
It's an absolute lifesaver for my sanity.

50
00:03:05,934 --> 00:03:08,761
Oh, I am definitely adding that to my
.zshrc tonight.

51
00:03:08,894 --> 00:03:13,881
No more accidental executions because I
wanted to highlight a line of log output.

52
00:03:13,977 --> 00:03:18,761
They also quietly rolled out a couple of
quality-of-life fixes for non-English devs,

53
00:03:18,793 --> 00:03:19,321
didn't they?

54
00:03:19,385 --> 00:03:21,321
Something about voice dictation?

55
00:03:21,627 --> 00:03:22,347
Yeah, they did.

56
00:03:22,411 --> 00:03:26,107
They fixed the voice dictation formatting
for space-less languages,

57
00:03:26,155 --> 00:03:28,027
like Japanese and Chinese.

58
00:03:28,107 --> 00:03:32,507
Previously, the transcription engine was
trying to force Western-style spacing rules

59
00:03:32,619 --> 00:03:37,067
onto those inputs, which completely broke
the syntax and semantics when feeding it

60
00:03:37,120 --> 00:03:37,947
to the LLM.

61
00:03:38,087 --> 00:03:40,587
Now it correctly respects the script
rules.

62
00:03:40,699 --> 00:03:44,587
Plus, they polished up some of the remote
connection checklist items,

63
00:03:44,633 --> 00:03:48,347
making the connection handshakes a lot
more resilient when you're working over

64
00:03:48,427 --> 00:03:50,107
spotty SSH tunnels.

65
00:03:50,733 --> 00:03:52,002
Simple but essential.

66
00:03:52,215 --> 00:03:58,962
So, the big takeaway here is: update to
v2.1.195, explicitly

67
00:03:59,082 --> 00:04:04,402
add __.* wildcards to your hyphenated MCP
security configs,

68
00:04:04,442 --> 00:04:07,362
and export that mouse click disable flag
immediately.

