1
00:00:00,220 --> 00:00:00,700
Picture this.

2
00:00:01,240 --> 00:00:05,360
You've got Claude Code running overnight
in a pipeline, it stalls,

3
00:00:05,680 --> 00:00:09,760
and the only clue is a session transcript
the size of a novel.

4
00:00:10,540 --> 00:00:13,100
Today's update is aimed squarely at that
headache.

5
00:00:13,740 --> 00:00:17,800
This is The Claude Code Changelog, brought
to you by Jellypod AI.

6
00:00:18,300 --> 00:00:18,780
I'm Lachlan.

7
00:00:19,362 --> 00:00:20,162
And I'm James.

8
00:00:20,742 --> 00:00:27,582
Version 2.1.307 shipped on October 21st,
2026, and it adds a new OpenTelemetry event

9
00:00:27,642 --> 00:00:29,922
called claude_code.safety_event.

10
00:00:30,542 --> 00:00:34,402
According to the release notes, it fires
for each tool call that a permission rule,

11
00:00:34,702 --> 00:00:38,702
auto mode, a safety check, a hook, or the
sandbox stopped, prompted,

12
00:00:38,822 --> 00:00:39,562
or sent back.

13
00:00:40,062 --> 00:00:42,802
So every time a guardrail gets involved,
you get a data point.

14
00:00:43,475 --> 00:00:45,095
And what's in that data point?

15
00:00:45,455 --> 00:00:48,335
Because an event with no detail is just
noise.

16
00:00:49,212 --> 00:00:52,372
A TurboAI breakdown of the release lists
the attributes.

17
00:00:52,792 --> 00:00:57,112
The tool class and tool name, the tool use
ID, a classifier category,

18
00:00:57,532 --> 00:01:00,972
a sandbox violation count, and whether
sandboxing was enabled.

19
00:01:01,552 --> 00:01:02,792
That combination matters.

20
00:01:03,092 --> 00:01:06,872
The classifier category plus the sandbox
count means you can tell a permission rule

21
00:01:06,912 --> 00:01:11,312
refusal apart from a sandbox block, and
you can count either one without opening a

22
00:01:11,372 --> 00:01:12,152
single transcript.

23
00:01:13,123 --> 00:01:17,443
So the shift is from guardrails as
something you dig for in logs,

24
00:01:17,843 --> 00:01:19,923
to guardrails as a metric.

25
00:01:20,563 --> 00:01:25,763
If you run Claude Code across a team, or
in headless mode, you can finally ask how

26
00:01:25,843 --> 00:01:29,103
often calls get blocked, and which tools
keep tripping it.

27
00:01:29,723 --> 00:01:32,123
Before this, that was a forensic exercise.

28
00:01:32,763 --> 00:01:32,983
Right.

29
00:01:33,443 --> 00:01:34,483
Now, how do you use it?

30
00:01:35,043 --> 00:01:38,463
This assumes you already export
OpenTelemetry from Claude Code.

31
00:01:38,983 --> 00:01:42,503
If you do, there's nothing new to switch
on that I can point to in the release

32
00:01:42,583 --> 00:01:45,763
notes, so check Anthropic's monitoring
docs for the full setup.

33
00:01:46,563 --> 00:01:48,323
The usual exporter variables apply.

34
00:01:48,903 --> 00:01:55,563
OTEL_EXPORTER_OTLP_ENDPOINT pointing at
your collector, so something like

35
00:01:56,003 --> 00:02:01,523
https colon slash slash your collector,
port 4318 for HTTP.

36
00:02:02,383 --> 00:02:09,183
OTEL_EXPORTER_OTLP_PROTOCOL set to
http/protobuf or

37
00:02:09,302 --> 00:02:10,063
grpc.

38
00:02:10,783 --> 00:02:17,083
And OTEL_EXPORTER_OTLP_HEADERS if your
backend wants a bearer token.

39
00:02:17,908 --> 00:02:22,148
Then in your backend, whether that's
Grafana, Datadog, Honeycomb,

40
00:02:22,228 --> 00:02:29,048
whatever you've got, you search for the
event name claude_code.safety_event.

41
00:02:29,828 --> 00:02:30,648
Here's where I'd start.

42
00:02:31,208 --> 00:02:34,428
Filter for a sandbox violation count above
zero.

43
00:02:34,988 --> 00:02:38,548
Those are commands that bumped into the
sandbox's limits, and they're worth a look.

44
00:02:39,385 --> 00:02:42,545
And then group by classifier category and
tool name.

45
00:02:42,985 --> 00:02:45,265
That's my suggestion, not something from
the release notes,

46
00:02:45,425 --> 00:02:46,505
but it's a sensible read.

47
00:02:47,265 --> 00:02:51,025
If one tool keeps getting prompted for
something harmless, that's probably a

48
00:02:51,065 --> 00:02:53,045
permission rule you should tune in your
settings.

49
00:02:53,625 --> 00:02:57,445
If a category you never expected keeps
showing up, that's the one to investigate.

50
00:02:58,110 --> 00:02:58,930
A few caveats.

51
00:02:59,450 --> 00:03:02,810
First, the event covers prompts, not just
hard stops.

52
00:03:03,430 --> 00:03:07,510
If someone's in an interactive session and
Claude asks permission to run a command,

53
00:03:07,890 --> 00:03:08,490
that counts.

54
00:03:08,970 --> 00:03:12,770
So a high number can just mean the agent's
being careful, not that you're under

55
00:03:12,830 --> 00:03:13,270
attack.

56
00:03:13,958 --> 00:03:16,618
Second, this is observability, not
enforcement.

57
00:03:17,098 --> 00:03:20,378
It tells you what a guardrail did after it
evaluated the call.

58
00:03:20,718 --> 00:03:22,998
It doesn't replace your rules or managed
settings.

59
00:03:23,518 --> 00:03:26,018
And third, there's a related fix in the
same release.

60
00:03:26,418 --> 00:03:30,598
Telemetry from Claude Desktop sessions
behind a Claude apps gateway was being

61
00:03:30,638 --> 00:03:36,418
rejected when OTEL_EXPORTER_OTLP_HEADERS
was set.

62
00:03:36,918 --> 00:03:40,278
That's fixed now, so if your data went
missing there, that may be why.

63
00:03:41,067 --> 00:03:43,247
Now some smaller bits worth a mention.

64
00:03:44,007 --> 00:03:49,807
HTTP MCP tool calls used to be sent twice
if the connection closed mid call.

65
00:03:50,347 --> 00:03:55,047
Now Claude Code only retries tools that
are read only or idempotent.

66
00:03:55,487 --> 00:03:59,467
That's a real win if your tool creates a
record or charges a card.

67
00:04:00,325 --> 00:04:04,545
Also, unparseable tool calls now get
retried up to twice before the turn ends with

68
00:04:04,585 --> 00:04:05,045
an error.

69
00:04:05,725 --> 00:04:10,305
For headless runs on macOS, MCP servers no
longer get stuck showing needs

70
00:04:10,365 --> 00:04:12,885
authentication when the login keychain is
locked.

71
00:04:13,325 --> 00:04:17,564
They now say why, and the next run after
an unlock connects without a new sign in.

72
00:04:18,045 --> 00:04:21,345
Same idea for machines that go to sleep
while MCP servers are connecting.

73
00:04:22,261 --> 00:04:24,222
Two more for people running
infrastructure.

74
00:04:24,942 --> 00:04:29,922
On a self hosted runner, checkout hooks
now stop after 30 minutes by default,

75
00:04:30,282 --> 00:04:31,982
and that fails the session's setup.

76
00:04:32,742 --> 00:04:37,542
If your hook legitimately needs longer,
raise the checkout hook timeout minutes

77
00:04:37,602 --> 00:04:39,242
flag, or set it to zero.

78
00:04:40,122 --> 00:04:43,922
And for pull requests, you can now comment
at claude review stop,

79
00:04:44,342 --> 00:04:50,342
or off, or pause, to end an at claude
review always subscription without kicking off

80
00:04:50,382 --> 00:04:51,062
a new review.

81
00:04:51,765 --> 00:04:52,385
One last note.

82
00:04:52,805 --> 00:04:59,765
Version 2.1.308 landed shortly after,
listed only as bug fixes and reliability

83
00:04:59,805 --> 00:05:00,345
improvements.

84
00:05:00,825 --> 00:05:02,265
So if you update, you'll get both.

85
00:05:02,965 --> 00:05:06,825
Go wire up that safety event, and run your
first query on blocked calls this week.

