1
00:00:00,000 --> 00:00:05,280
Until this week, a fresh local Codex
session could quietly switch off reasoning

2
00:00:05,360 --> 00:00:08,360
summaries before you typed a single
prompt.

3
00:00:08,580 --> 00:00:11,920
A pull request merged on October 4th stops
that.

4
00:00:12,034 --> 00:00:15,840
Thanks to Jellypod for helping make this
daily show a reality.

5
00:00:15,968 --> 00:00:19,040
This is The Codex Changelog, I'm Ethan.

6
00:00:19,202 --> 00:00:19,902
And I'm Maya.

7
00:00:20,522 --> 00:00:27,081
The change is PR 50811, commit afb436d,
merged into

8
00:00:27,161 --> 00:00:30,562
openai codex main on October 4th, 2026.

9
00:00:31,102 --> 00:00:33,562
It builds on something we mentioned
briefly before.

10
00:00:34,122 --> 00:00:41,022
In 0.160.0, PR 49144 made the terminal UI
preserve reasoning

11
00:00:41,122 --> 00:00:42,822
summary settings for server connections.

12
00:00:43,362 --> 00:00:45,142
That fixed connections to a server.

13
00:00:45,522 --> 00:00:49,742
This one closes the remaining gap, which
is the embedded local TUI thread you get

14
00:00:49,762 --> 00:00:51,042
when you just run codex.

15
00:00:51,375 --> 00:00:52,335
Here's the mechanism.

16
00:00:52,479 --> 00:00:57,135
When you launched an embedded session
without any explicit reasoning summary

17
00:00:57,192 --> 00:01:02,095
configuration, the TUI runner injected its
own launch override.

18
00:01:02,223 --> 00:01:05,615
That override set model reasoning summary
to false.

19
00:01:05,802 --> 00:01:10,495
So from the model's point of view,
somebody had configured summaries off,

20
00:01:10,559 --> 00:01:11,855
even though nobody had.

21
00:01:12,035 --> 00:01:17,535
The model's own default, and any default
coming from a remote or managed server,

22
00:01:17,595 --> 00:01:19,855
got overridden by a client that was
guessing.

23
00:01:20,135 --> 00:01:21,995
And the models in question matter here.

24
00:01:22,415 --> 00:01:29,275
The brief names GPT 6.1 Sol, GPT 6 Luna,
and Astra as models that may emit reasoning

25
00:01:29,495 --> 00:01:29,895
summaries.

26
00:01:30,475 --> 00:01:32,115
I'd stress the word may.

27
00:01:32,475 --> 00:01:35,595
This isn't a promise that every model will
now show you a summary.

28
00:01:35,995 --> 00:01:39,735
It's that the decision goes back to the
model and the server instead of being made

29
00:01:39,775 --> 00:01:41,415
by the TUI at startup.

30
00:01:41,792 --> 00:01:46,912
The fix is that embedded threads and
remote or app server threads now share the same

31
00:01:46,958 --> 00:01:48,512
launch override resolution.

32
00:01:48,779 --> 00:01:53,632
If you haven't set a summary preference,
the TUI sends nothing,

33
00:01:53,672 --> 00:01:57,072
and the upstream configuration and model
defaults decide.

34
00:01:57,285 --> 00:02:00,352
If you have set one, it's forwarded
faithfully.

35
00:02:00,464 --> 00:02:04,432
That applies to model_reasoning_summary,
and also to

36
00:02:04,494 --> 00:02:08,752
features.concurrent_reasoning_summaries.

37
00:02:08,885 --> 00:02:14,192
Explicit false values are preserved, and
explicit true values are preserved.

38
00:02:14,372 --> 00:02:17,792
The only thing that changed is the
unconfigured case.

39
00:02:18,112 --> 00:02:19,592
Why does that matter in practice?

40
00:02:20,112 --> 00:02:20,792
Two reasons.

41
00:02:21,412 --> 00:02:26,452
First, if you run on a team where a server
defines reasoning visibility defaults,

42
00:02:26,892 --> 00:02:32,012
maybe for auditability, your local TUI
could have been undercutting that policy

43
00:02:32,052 --> 00:02:33,292
without anyone noticing.

44
00:02:33,992 --> 00:02:38,872
Second, if you ever wondered why summaries
showed up in one surface and not in your

45
00:02:38,932 --> 00:02:41,632
terminal, this is a plausible explanation.

46
00:02:42,192 --> 00:02:46,492
I'd call that interpretation, not
something the PR states, but the behavior it

47
00:02:46,532 --> 00:02:49,432
describes would produce exactly that
symptom.

48
00:02:49,708 --> 00:02:50,748
So how do you use it?

49
00:02:50,888 --> 00:02:53,148
The zero config path first.

50
00:02:53,328 --> 00:02:55,948
Get onto a build that includes the change.

51
00:02:56,135 --> 00:03:02,908
It landed on main after the stable 0.160.0
release, and it should be in the

52
00:03:03,068 --> 00:03:08,988
0.162.0 alpha stream, around alpha 12 and
alpha 13.

53
00:03:09,148 --> 00:03:12,668
Then launch codex with no summary settings
anywhere.

54
00:03:12,855 --> 00:03:17,708
If your model or server defaults to
producing summaries, they should now show up on

55
00:03:17,735 --> 00:03:18,348
their own.

56
00:03:18,775 --> 00:03:21,555
If you'd rather be explicit, you can say
so in config.

57
00:03:21,955 --> 00:03:27,975
In your home codex config.toml, or in a
project level dot codex config.toml,

58
00:03:28,535 --> 00:03:33,235
set model_reasoning_summary to true, or to
false if you want them off.

59
00:03:33,895 --> 00:03:38,735
Then under the features table, set
concurrent_reasoning_summaries to true if you

60
00:03:38,775 --> 00:03:41,255
want reasoning streamed alongside the
response.

61
00:03:41,935 --> 00:03:43,275
There's also a command line route.

62
00:03:43,595 --> 00:03:47,555
You can pass the model reasoning summary
startup flag with true or false,

63
00:03:48,015 --> 00:03:52,835
or put the value in a profile, and the
runner now honors either boolean instead of

64
00:03:52,875 --> 00:03:54,435
treating unconfigured as off.

65
00:03:54,833 --> 00:03:58,753
Now the caveats, and the first one is the
one most likely to bite.

66
00:03:59,046 --> 00:04:01,313
Stale workaround configs.

67
00:04:01,457 --> 00:04:08,433
Some people hardcoded
model_reasoning_summary equals false in config.toml during

68
00:04:08,493 --> 00:04:15,393
earlier regressions, the brief mentions
the 0.155.1 proxy choking problem.

69
00:04:15,537 --> 00:04:18,033
That line is now strictly respected.

70
00:04:18,193 --> 00:04:22,833
It was never wrong to have it, but it
means you won't see the new default behavior.

71
00:04:23,046 --> 00:04:25,393
If you want it, delete the line.

72
00:04:25,777 --> 00:04:27,437
Second, stream overhead.

73
00:04:27,877 --> 00:04:31,857
Concurrent reasoning summaries send
additional chunks over your connection.

74
00:04:32,477 --> 00:04:36,997
If you're behind a strict enterprise proxy
that already struggles with long running

75
00:04:37,177 --> 00:04:42,657
HTTP streaming or chunked transfers,
turning that on, or inheriting it from a server

76
00:04:42,697 --> 00:04:45,977
default, could mean latency or dropped
connections.

77
00:04:46,457 --> 00:04:51,817
If that's you, test it before you roll it
out, and keep the explicit false setting

78
00:04:51,937 --> 00:04:52,857
as your escape hatch.

79
00:04:53,250 --> 00:04:55,090
Third, channel timing.

80
00:04:55,154 --> 00:04:57,250
This is alpha stream material.

81
00:04:57,376 --> 00:05:04,290
Stable users on 0.160.0 won't see it until
it reaches the next stable minor

82
00:05:04,350 --> 00:05:04,930
release.

83
00:05:05,143 --> 00:05:09,330
So if a teammate on stable says summaries
look different from yours,

84
00:05:09,383 --> 00:05:11,570
check versions before you check config.

85
00:05:11,803 --> 00:05:13,843
A few smaller items from this week's
commits.

86
00:05:14,343 --> 00:05:19,963
PR 50720, from October 3rd, fixes Shift
plus Enter in Windows Terminal.

87
00:05:20,503 --> 00:05:24,643
Windows Terminal sends it as an escape
sequence, ESC 13;2u.

88
00:05:25,203 --> 00:05:30,483
Codex now decodes that with a 50
millisecond deadline, so you get a newline in the

89
00:05:30,523 --> 00:05:30,963
composer.

90
00:05:31,523 --> 00:05:35,423
Before, keys could be dropped, stray
Escape events could fire,

91
00:05:35,723 --> 00:05:37,303
or a draft could submit early.

92
00:05:37,542 --> 00:05:43,302
PR 50447, October 2nd, removes
namespace_tools from

93
00:05:43,364 --> 00:05:44,662
ProviderCapabilities.

94
00:05:44,822 --> 00:05:50,502
Tool namespaces and collaboration tool
configs no longer need provider gate checks,

95
00:05:50,622 --> 00:05:54,262
and they use Responses Lite serialization
directly.

96
00:05:54,475 --> 00:05:57,862
If you maintain a custom provider, that's
worth a look.

97
00:05:58,195 --> 00:06:04,835
PR 50384 adds an opt in for 16 KiB ARM64
code pages in macOS code

98
00:06:04,895 --> 00:06:05,215
signing.

99
00:06:05,775 --> 00:06:07,515
You enable it with the environment
variable

100
00:06:07,775 --> 00:06:14,695
OAI_RCODESIGN_ARM64_16K_CODE_PAGES set

101
00:06:14,735 --> 00:06:15,215
to true.

102
00:06:15,975 --> 00:06:20,115
The stated purpose is supporting newer
Apple Silicon kernel memory page alignments,

103
00:06:20,355 --> 00:06:22,895
so it mostly matters if you build Codex
yourself.

104
00:06:23,167 --> 00:06:24,927
And two more from October 2nd.

105
00:06:25,274 --> 00:06:32,207
PR 50128 exposes current_turn_model
through the API, so you can audit

106
00:06:32,260 --> 00:06:34,527
which model handled a turn in real time.

107
00:06:34,874 --> 00:06:41,567
PR 50082 lets V2 subagents inherit parent
scoped tool registrations

108
00:06:41,627 --> 00:06:45,807
dynamically, so child agents pick up the
tools the parent has.

109
00:06:46,113 --> 00:06:48,093
The action item for today is small.

110
00:06:48,533 --> 00:06:55,473
Open your config.toml, search for
model_reasoning_summary, and decide whether that

111
00:06:55,513 --> 00:06:58,573
line is still a choice or just an old
workaround.

112
00:06:59,293 --> 00:07:00,273
That's the show for today.

113
00:07:00,493 --> 00:07:02,733
We'll be back tomorrow with the next
changelog.

