1
00:00:00,340 --> 00:00:01,180
Picture this.

2
00:00:01,600 --> 00:00:04,180
You are in your terminal, working with an
agent.

3
00:00:04,640 --> 00:00:09,800
You spend three minutes carefully typing
out a complex multi line instruction in the

4
00:00:09,840 --> 00:00:15,140
composer, maybe pasting in a specific code
fix, while the agent is still running a

5
00:00:15,180 --> 00:00:15,900
background turn.

6
00:00:16,552 --> 00:00:20,272
Right, and then the agent starts heading
in completely the wrong direction,

7
00:00:20,852 --> 00:00:23,132
so you hit Control C to interrupt it.

8
00:00:24,003 --> 00:00:25,203
And poof!

9
00:00:26,603 --> 00:00:30,843
Your entire unsubmitted prompt, all those
lines you just typed,

10
00:00:31,463 --> 00:00:32,963
vanish into thin air.

11
00:00:33,803 --> 00:00:34,503
Wiped clean.

12
00:00:34,955 --> 00:00:36,375
It is such a brutal feeling.

13
00:00:37,015 --> 00:00:43,775
But in Codex CLI version 0.157.0, that
whole invisible draft

14
00:00:43,835 --> 00:00:45,615
wiper issue is finally gone.

15
00:00:46,315 --> 00:00:52,215
And before we dive into how pull request
47340 fixes it, a quick shoutout to

16
00:00:52,255 --> 00:00:54,695
Jellypod for helping make this daily show
possible.

17
00:00:55,170 --> 00:00:59,410
So what actually changed under the hood
when you hit Control C now?

18
00:00:59,750 --> 00:01:05,270
So previously, the terminal UI treated a
turn cancellation as a complete reset of

19
00:01:05,290 --> 00:01:06,950
the composer input state.

20
00:01:07,150 --> 00:01:14,070
But PR 47340 introduces what OpenAI calls
conditional turn

21
00:01:14,119 --> 00:01:14,790
interruption.

22
00:01:15,172 --> 00:01:20,072
Okay, meaning it separates stopping the
model from clearing what you typed?

23
00:01:20,458 --> 00:01:21,738
Exactly.

24
00:01:21,788 --> 00:01:27,098
Instead of flushing the composer buffer,
it intercepts Control C and turn completion

25
00:01:27,168 --> 00:01:31,418
signals, holding your pending keystrokes
in a temporary state handle.

26
00:01:31,658 --> 00:01:36,938
So the running turn halts, but your text
stays right there in the composer,

27
00:01:36,991 --> 00:01:38,938
ready for you to edit or send.

28
00:01:39,358 --> 00:01:41,038
Ah, that makes so much sense.

29
00:01:41,778 --> 00:01:46,538
But what if the agent raised an
interactive question, like asking for clarification,

30
00:01:47,038 --> 00:01:51,258
and you typed an answer into the box, but
then the turn ended before you pressed

31
00:01:51,318 --> 00:01:51,598
enter?

32
00:01:51,958 --> 00:01:57,638
That is where PR 47422 and PR 47423 come
in.

33
00:01:57,814 --> 00:02:00,678
Maya, you were looking at those edge
cases, right?

34
00:02:01,088 --> 00:02:01,548
Yeah!

35
00:02:02,068 --> 00:02:03,768
Those handle draft recovery.

36
00:02:04,328 --> 00:02:09,788
When a turn finishes or gets cut off,
Codex now sweeps any unsent question answers

37
00:02:10,148 --> 00:02:12,128
straight back into the main composer box.

38
00:02:12,700 --> 00:02:17,100
Wait, does that disrupt you if you happen
to be doing a reverse history search with

39
00:02:17,140 --> 00:02:20,560
Control R or forward slash at that exact
second?

40
00:02:21,960 --> 00:02:26,220
No, and that is the clever part in PR
47423!

41
00:02:26,820 --> 00:02:31,240
The restoration happens quietly in the
background without kicking you out of your

42
00:02:31,360 --> 00:02:32,640
active history search mode.

43
00:02:33,100 --> 00:02:37,340
So you do not lose your place in your
command history while your draft gets saved.

44
00:02:37,808 --> 00:02:40,608
Now, how does this work when subagents are
involved?

45
00:02:41,328 --> 00:02:46,548
Say a subagent prompts you for input using
request user input async?

46
00:02:47,005 --> 00:02:51,105
If you have unsubmitted drafts from those
async clarification questions,

47
00:02:51,505 --> 00:02:56,025
they get queued sequentially right back
into the composer as editable text when the

48
00:02:56,105 --> 00:02:56,865
turn wraps up.

49
00:02:57,445 --> 00:03:04,265
Plus, PR 47424 clears out pending async
question notifications automatically

50
00:03:04,665 --> 00:03:07,145
so you do not get spammed with stale
popups.

51
00:03:07,680 --> 00:03:09,500
Okay, but there has to be a catch.

52
00:03:10,120 --> 00:03:11,940
Where are these drafts actually stored?

53
00:03:12,440 --> 00:03:14,960
That is a crucial limitation to keep in
mind.

54
00:03:15,640 --> 00:03:19,460
Draft recovery lives entirely in the
terminal client memory.

55
00:03:20,100 --> 00:03:25,280
If your local background server daemon
suffers an unrecoverable crash or gets killed

56
00:03:25,320 --> 00:03:30,640
with a hard kill signal mid turn, those
uncommitted drafts cannot be restored from

57
00:03:30,680 --> 00:03:31,740
SQLite checkpoints.

58
00:03:32,125 --> 00:03:32,885
Got it.

59
00:03:32,952 --> 00:03:37,565
So it protects against turn cancellations,
subagent completions,

60
00:03:37,605 --> 00:03:41,485
and normal process stops, but not a full
process crash.

61
00:03:41,900 --> 00:03:42,280
Right.

62
00:03:42,800 --> 00:03:48,420
Still, for day to day workflow, it removes
a massive source of accidental work loss.

63
00:03:48,750 --> 00:03:55,550
There are a couple of other really handy
quality of life updates in 0.157.0 as well.

64
00:03:55,950 --> 00:04:02,910
PR 47414 adds Shift click selection
extension in fullscreen transcripts.

65
00:04:03,217 --> 00:04:04,337
Oh, finally!

66
00:04:04,777 --> 00:04:09,197
So if you have a huge block of code in the
transcript, you can click the start,

67
00:04:09,637 --> 00:04:13,677
hold Shift, and click the end to select
the whole chunk easily?

68
00:04:14,000 --> 00:04:15,440
Yep, exactly that.

69
00:04:15,560 --> 00:04:22,160
And PR 47122 increases the OpenAI file
blob upload timeout from

70
00:04:22,320 --> 00:04:27,840
60 seconds all the way to 5 minutes,
complete with automatic retry handling for

71
00:04:27,896 --> 00:04:29,360
transient network drops.

72
00:04:29,835 --> 00:04:35,875
That is huge if you are uploading large
context files or diagnostic logs over a

73
00:04:36,075 --> 00:04:36,955
spotty connection.

74
00:04:37,375 --> 00:04:42,015
So if you want that safety net for your
unsubmitted text and smoother transcript

75
00:04:42,066 --> 00:04:44,255
selections, the update is live.

76
00:04:44,399 --> 00:04:47,295
Just run npm install g

77
00:04:47,415 --> 00:04:53,695
@openai/codex@0.157.0 in your terminal.

78
00:04:54,068 --> 00:04:55,848
Definitely worth upgrading today.

79
00:04:56,548 --> 00:04:58,588
Alright, good chatting Ethan, talk soon!

