1
00:00:00,119 --> 00:00:05,380
So, Maya, I was looking at the latest
Codex CLI release, version zero point one

2
00:00:05,420 --> 00:00:10,599
hundred and forty six point zero, and it,
it, it actually solves this incredibly

3
00:00:10,760 --> 00:00:13,599
annoying problem I used to hit all the
time when branching threads.

4
00:00:14,299 --> 00:00:19,139
You know, when you hit Esc Esc to
backtrack and edit an earlier prompt,

5
00:00:19,539 --> 00:00:21,000
or when you use the fork command?

6
00:00:21,382 --> 00:00:22,241
Oh, yeah.

7
00:00:22,501 --> 00:00:23,901
The, the disk bloat.

8
00:00:24,561 --> 00:00:29,221
I remember my project directory ended up
with, like, gigabytes of these massive

9
00:00:29,361 --> 00:00:30,901
JSONL rollout files.

10
00:00:31,462 --> 00:00:34,741
It felt like every time I wanted to try a
quick alternative prompt,

11
00:00:35,141 --> 00:00:37,801
my laptop fan would just start screaming.

12
00:00:38,484 --> 00:00:38,904
Yes!

13
00:00:39,125 --> 00:00:39,804
Exactly.

14
00:00:40,345 --> 00:00:45,964
Because under the hood, Codex was copying
the entire rollout dot JSONL conversation

15
00:00:46,065 --> 00:00:46,845
file on disk.

16
00:00:47,524 --> 00:00:49,224
Every single time.

17
00:00:49,824 --> 00:00:54,524
If you had a long running developer
session, say, reaching up to forty megabytes in

18
00:00:54,645 --> 00:00:57,884
size, that duplicate write took several
seconds.

19
00:00:58,404 --> 00:01:01,625
It was a massive lag spike right when you
were in the zone.

20
00:01:02,225 --> 00:01:05,684
And the worst part, actually, was what it
did to the metadata.

21
00:01:06,465 --> 00:01:11,125
Every copied record had its timestamp
rewritten to the exact instant the fork was

22
00:01:11,184 --> 00:01:11,604
created.

23
00:01:12,165 --> 00:01:14,485
It totally collapsed your historical
timeline.

24
00:01:14,921 --> 00:01:20,221
Wait, so you lost the original timestamps
of when you actually wrote those early

25
00:01:20,281 --> 00:01:20,661
prompts?

26
00:01:21,081 --> 00:01:25,441
That sounds like a nightmare for auditing
or just tracking your own train of thought

27
00:01:25,481 --> 00:01:26,581
over a long afternoon.

28
00:01:27,098 --> 00:01:27,917
It really was.

29
00:01:28,417 --> 00:01:33,157
You couldn't tell what was written at two
PM versus four PM because everything

30
00:01:33,217 --> 00:01:37,577
suddenly got stamped with four fifteen PM,
the moment you hit fork.

31
00:01:38,338 --> 00:01:42,317
But the breakthrough in v zero point one
hundred and forty six point zero,

32
00:01:42,918 --> 00:01:47,378
which came out of pull requests
thirty-five thousand two hundred and twenty and

33
00:01:47,397 --> 00:01:51,477
thirty-five thousand two hundred and
fifty-one, is this dynamic,

34
00:01:51,878 --> 00:01:54,197
fork by reference architecture.

35
00:01:54,789 --> 00:01:56,490
Fork by reference.

36
00:01:56,970 --> 00:02:00,329
So, like, pointers instead of copying the
whole house?

37
00:02:00,966 --> 00:02:01,887
Exactly!

38
00:02:02,326 --> 00:02:07,686
Instead of duplicating megabytes of JSONL
records, the newly minted fork simply

39
00:02:07,726 --> 00:02:12,386
references the parent thread using a field
called forked_from_id.

40
00:02:13,206 --> 00:02:18,187
Then it dynamically lazy loads the
paginated history as you scroll or query.

41
00:02:18,886 --> 00:02:22,966
It slashes branch creation latency from
several seconds down to,

42
00:02:23,606 --> 00:02:25,587
well, practically zero milliseconds.

43
00:02:26,044 --> 00:02:28,585
Wow, zero milliseconds.

44
00:02:29,105 --> 00:02:31,105
That is a massive difference.

45
00:02:31,784 --> 00:02:37,164
And I assume since it is just referencing
the parent, those original per message

46
00:02:37,244 --> 00:02:39,424
timestamps actually stay intact now?

47
00:02:39,951 --> 00:02:40,491
They do.

48
00:02:41,012 --> 00:02:43,311
The timeline stays completely pristine.

49
00:02:43,851 --> 00:02:48,451
And you save gigabytes of disk space over
a week of development because you aren't

50
00:02:48,512 --> 00:02:52,491
saving dozens of identical forty megabyte
historical blocks.

51
00:02:52,571 --> 00:02:54,071
It is incredibly clean.

52
00:02:55,944 --> 00:02:57,125
Thank goodness.

53
00:02:57,664 --> 00:03:00,744
My SSD is breathing a sigh of relief.

54
00:03:01,585 --> 00:03:03,984
But, okay, what about the visual clutter?

55
00:03:04,324 --> 00:03:09,404
Because even if it is fast and cheap on
disk, my sidebar used to get absolutely

56
00:03:09,664 --> 00:03:13,144
flooded with these tiny, one off trial
conversations.

57
00:03:13,545 --> 00:03:15,645
It was impossible to find my main threads.

58
00:03:16,257 --> 00:03:17,937
Right, the sidebar graveyard.

59
00:03:18,337 --> 00:03:19,377
They thought of that too.

60
00:03:19,938 --> 00:03:24,918
They have introduced these temporary, non
persisted forks designed specifically for

61
00:03:25,077 --> 00:03:27,258
subagents or quick side queries.

62
00:03:27,857 --> 00:03:29,997
You trigger them with the slash side
command.

63
00:03:30,717 --> 00:03:33,718
These temporary sessions run in complete
isolation.

64
00:03:34,298 --> 00:03:38,277
They don't pollute your sidebar, and they
don't even appear when you run a global

65
00:03:38,357 --> 00:03:39,657
codex list in your terminal.

66
00:03:40,138 --> 00:03:40,617
They just...

67
00:03:41,157 --> 00:03:42,257
vanish when you are done.

68
00:03:42,551 --> 00:03:44,271
Oh, that is beautiful.

69
00:03:44,711 --> 00:03:50,471
So you can spawn a subagent to go write a
test, let it do its thing in a sandbox,

70
00:03:50,831 --> 00:03:54,611
and it doesn't leave a permanent scar on
your workspace index.

71
00:03:55,276 --> 00:03:55,917
Exactly.

72
00:03:56,436 --> 00:03:58,816
But, okay, it is not all smooth sailing.

73
00:03:59,397 --> 00:04:02,616
There is this fascinating bug that popped
up in the terminal UI,

74
00:04:03,156 --> 00:04:07,217
tracked as Issue thirty-five thousand two
hundred and eighty-six.

75
00:04:07,276 --> 00:04:12,357
It is called the chain forking input trap,
and it is a bit of a wild ride if you are

76
00:04:12,396 --> 00:04:14,796
a fast typer or use macro pads.

77
00:04:15,132 --> 00:04:16,992
A chain forking trap?

78
00:04:17,492 --> 00:04:19,672
That sounds like some kind of recursive
loop.

79
00:04:20,313 --> 00:04:21,112
How do you trigger it?

80
00:04:21,576 --> 00:04:26,417
So, if you quickly press Esc Esc Enter to
back up and edit a prompt,

81
00:04:27,016 --> 00:04:31,636
those keystrokes are buffered in your
terminal stream while the app server is busy

82
00:04:31,696 --> 00:04:33,076
attaching the new thread.

83
00:04:33,656 --> 00:04:38,017
But because the input is buffered, the
moment the new thread finally attaches,

84
00:04:38,437 --> 00:04:41,356
those queued keypresses replay against it
instantly.

85
00:04:41,856 --> 00:04:44,816
Which, guess what, triggers a second fork!

86
00:04:46,214 --> 00:04:47,034
Oh no!

87
00:04:47,055 --> 00:04:51,654
And then that buffers the next keypresses,
which triggers a third fork?

88
00:04:52,281 --> 00:04:53,042
Yes!

89
00:04:53,101 --> 00:04:54,881
It is a runaway cascade.

90
00:04:55,441 --> 00:04:59,741
The issue report actually documented
someone hitting up to thirteen recursive

91
00:04:59,781 --> 00:05:02,741
chained forks in under eleven seconds.

92
00:05:02,882 --> 00:05:05,841
Just a domino effect of threads spawning
threads.

93
00:05:08,714 --> 00:05:11,714
Thirteen forks in eleven seconds!

94
00:05:12,355 --> 00:05:17,934
That is hilarious, but also incredibly
frustrating if you are just trying to fix a

95
00:05:17,974 --> 00:05:18,434
typo.

96
00:05:19,054 --> 00:05:23,315
Is there a way to stop it, or do you just
watch your terminal explode?

97
00:05:24,347 --> 00:05:28,487
Well, they are working on it, but for now,
you just have to be a little patient with

98
00:05:28,507 --> 00:05:30,907
your keypresses when the server is
loading.

99
00:05:31,587 --> 00:05:35,068
And speaking of things to watch out for,
there is another issue,

100
00:05:35,467 --> 00:05:40,308
number thirty-five thousand two hundred
and ninety-two, that affects anyone using

101
00:05:40,427 --> 00:05:44,527
high tier models, like gpt-five point
six-sol ultra.

102
00:05:44,923 --> 00:05:45,362
Oh?

103
00:05:45,882 --> 00:05:47,762
What is happening with the ultra models?

104
00:05:48,182 --> 00:05:51,823
When you use that Esc Esc backtrack
shortcut to edit a prompt,

105
00:05:52,302 --> 00:05:57,182
it silently resets your active model and
your reasoning effort back to the default

106
00:05:57,343 --> 00:05:59,503
configured standard model.

107
00:05:59,543 --> 00:06:02,662
And it does this without showing any
warning in the UI.

108
00:06:03,342 --> 00:06:07,783
So you think you are still querying your
high tier model, but you have actually been

109
00:06:07,822 --> 00:06:09,242
downgraded to the basic one.

110
00:06:09,572 --> 00:06:11,951
Oh, that is a sneaky one.

111
00:06:12,691 --> 00:06:17,031
You could be waiting for a complex
response, wondering why the quality suddenly

112
00:06:17,051 --> 00:06:21,451
dropped, without realizing the system
changed the model under the hood.

113
00:06:22,252 --> 00:06:27,052
So I guess you have to manually re select
your model every time you edit a prompt?

114
00:06:27,577 --> 00:06:28,657
Yes, exactly.

115
00:06:29,137 --> 00:06:33,777
Until they patch that, you have to
manually double check your model settings after

116
00:06:33,857 --> 00:06:34,898
any backtrack edit.

117
00:06:35,637 --> 00:06:40,257
But, on the bright side, this release does
bring some really nice quality of life

118
00:06:40,338 --> 00:06:40,817
updates.

119
00:06:41,577 --> 00:06:46,617
For one, you can now name new sessions
immediately at launch by passing arguments

120
00:06:46,677 --> 00:06:49,138
directly to /new or /clear.

121
00:06:49,837 --> 00:06:53,557
Like /new refactor-router instead of
renaming it later.

122
00:06:53,944 --> 00:06:55,184
That is handy.

123
00:06:55,504 --> 00:06:58,184
I like being able to keep things organized
right from the start.

124
00:06:58,784 --> 00:06:59,844
Can you pin them too?

125
00:07:00,447 --> 00:07:00,867
Yes!

126
00:07:01,308 --> 00:07:06,067
You can now pin critical workspace threads
directly to the top of your sidebar so

127
00:07:06,108 --> 00:07:07,107
they don't get lost.

128
00:07:07,688 --> 00:07:11,427
And under the hood, they have unified the
HTTP client pool.

129
00:07:12,088 --> 00:07:16,507
This means your proxy settings are now
universally honored across token refreshes,

130
00:07:17,107 --> 00:07:21,007
MCP connections, and even local LM Studio
connections.

131
00:07:21,442 --> 00:07:24,962
Oh, that is actually huge for enterprise
users.

132
00:07:25,463 --> 00:07:30,642
There is nothing worse than silent auth
drops because a background token refresh

133
00:07:30,702 --> 00:07:33,022
decided to ignore your corporate proxy.

134
00:07:33,722 --> 00:07:37,763
It sounds like they are really hardening
the CLI for serious work,

135
00:07:38,263 --> 00:07:40,462
even with those weird forking quirks.

136
00:07:40,969 --> 00:07:41,949
Absolutely.

137
00:07:41,990 --> 00:07:43,809
It is a big step forward.

138
00:07:43,849 --> 00:07:48,389
Well, that is the quick run through of
Codex point one hundred and forty six.

139
00:07:48,449 --> 00:07:51,829
Let's see if we can avoid spawning
thirteen threads on the next run.

140
00:07:53,095 --> 00:07:55,634
Yeah, no fast fingers on the Esc key
today.

141
00:07:56,255 --> 00:07:57,074
Good chatting, Ethan!

142
00:07:57,616 --> 00:07:58,136
Talk soon!

