1
00:00:00,260 --> 00:00:00,620
Morning.

2
00:00:01,220 --> 00:00:05,360
Quick thanks to Jellypod for helping make
this daily show a reality.

3
00:00:06,680 --> 00:00:13,380
Last time we walked through the surface of
Codex CLI 0.166.0:

4
00:00:14,140 --> 00:00:18,540
keyboard transcript selection, the resume
flag on codex queue,

5
00:00:19,020 --> 00:00:21,640
and the network only flag on codex doctor.

6
00:00:22,560 --> 00:00:23,380
That was the preview.

7
00:00:24,100 --> 00:00:31,020
The stable release landed October 29 at
19:47 UTC, after alpha

8
00:00:31,200 --> 00:00:35,320
2 through alpha 6, and the bigger story is
underneath those features.

9
00:00:36,108 --> 00:00:40,808
And it's easy to miss, because in the
release notes it's one line under Chores.

10
00:00:41,288 --> 00:00:48,288
PR 57837: shipped the standalone executor
in canonical CLI and app server release

11
00:00:48,368 --> 00:00:48,888
packages.

12
00:00:49,448 --> 00:00:52,088
The binary is called codex exec server.

13
00:00:52,628 --> 00:00:56,488
Before this, if you wanted that piece on
its own, you had a harder time getting a

14
00:00:56,568 --> 00:00:57,828
signed, official copy.

15
00:00:58,348 --> 00:00:59,748
Now it's in the release archives.

16
00:01:00,443 --> 00:01:05,143
Here's what the packaging actually does,
going by the details we have on that PR.

17
00:01:06,163 --> 00:01:12,063
The package metadata advertises the
executor's path through an execServer field in

18
00:01:12,103 --> 00:01:14,063
the codex package JSON file.

19
00:01:15,063 --> 00:01:20,063
It's built and code signed in the release
workflows, with empty entitlements on

20
00:01:20,103 --> 00:01:20,663
macOS.

21
00:01:21,523 --> 00:01:26,683
And the standalone shell installers,
install.sh and install.ps1,

22
00:01:27,263 --> 00:01:30,963
verify and unpack the binary whenever that
metadata says it's there.

23
00:01:31,692 --> 00:01:34,712
So the practical command is the canonical
installer.

24
00:01:35,152 --> 00:01:41,092
curl, dash f s S L, the chatgpt.com slash
codex slash

25
00:01:41,132 --> 00:01:44,332
install.sh URL, piped to sh.

26
00:01:45,072 --> 00:01:49,072
That should leave the executor under your
home directory, in dot codex,

27
00:01:49,292 --> 00:01:50,512
packages, standalone.

28
00:01:51,352 --> 00:01:52,912
After you update, go look for it.

29
00:01:53,412 --> 00:01:53,932
Don't assume.

30
00:01:54,903 --> 00:01:55,743
Why would you care?

31
00:01:56,683 --> 00:01:59,863
This part is our interpretation, not
something the notes spell out.

32
00:02:00,943 --> 00:02:05,963
A dedicated executor binary suggests you
can put just the execution side in a

33
00:02:06,003 --> 00:02:11,303
container, on a remote box, or in a
headless worker, without carrying the whole

34
00:02:11,363 --> 00:02:12,703
interactive CLI there.

35
00:02:13,783 --> 00:02:16,923
If you've been building anything with
paired devices or remote nodes,

36
00:02:17,563 --> 00:02:18,863
that's the direction this points.

37
00:02:19,830 --> 00:02:21,950
Now the gotcha, and it will bite people.

38
00:02:22,690 --> 00:02:27,770
Because of npm registry package size
constraints, the executor is deliberately left

39
00:02:27,850 --> 00:02:31,370
out of the @openai/codex npm package.

40
00:02:31,850 --> 00:02:36,710
So npm i, dash g, @openai/codex gets you

41
00:02:37,250 --> 00:02:44,230
0.166.0, and npm did list it the same day,
but it will not contain the standalone

42
00:02:44,290 --> 00:02:44,670
binary.

43
00:02:45,330 --> 00:02:48,910
The codex exec server subcommand and the
runtime helpers are still there.

44
00:02:49,410 --> 00:02:51,030
The standalone file is not.

45
00:02:51,755 --> 00:02:53,715
And PyPI is a separate problem.

46
00:02:54,415 --> 00:03:00,555
GPTMap checked on October 30 and the
openai codex package there was still at

47
00:03:01,155 --> 00:03:03,115
0.163.0.

48
00:03:03,875 --> 00:03:07,635
That's three versions behind, and the
reason isn't stated officially.

49
00:03:08,415 --> 00:03:15,375
So if a Python based pipeline provisions
Codex, it won't pick up 0.166.0 at

50
00:03:15,515 --> 00:03:15,715
all.

51
00:03:16,735 --> 00:03:21,375
Use npm, or the curl installer, or a
direct binary download.

52
00:03:22,192 --> 00:03:24,772
One more, and this matters if you expose
this thing.

53
00:03:25,372 --> 00:03:31,032
The exec server defaults to loopback,
127.0.0.1 with an ephemeral port,

54
00:03:31,252 --> 00:03:32,652
and no authentication.

55
00:03:33,392 --> 00:03:37,752
If you want a non loopback listener, you
need to set the ws auth flag,

56
00:03:38,132 --> 00:03:43,392
with bearer tokens or capability tokens,
and put TLS or an SSH tunnel in front.

57
00:03:43,752 --> 00:03:46,212
Please don't just bind it to every
interface and hope.

58
00:03:47,268 --> 00:03:52,068
The second half of this release is
reliability, and it's concentrated on resume and

59
00:03:52,228 --> 00:03:52,508
fork.

60
00:03:53,608 --> 00:03:59,968
PR 57227 preserves acknowledged approval
and permission settings when you resume or

61
00:04:00,088 --> 00:04:00,668
fork a thread.

62
00:04:01,748 --> 00:04:06,708
Before that, according to our brief,
resuming an unloaded session or branching into

63
00:04:06,748 --> 00:04:09,708
a fork could reset approvals you'd already
granted.

64
00:04:10,270 --> 00:04:13,490
That's the kind of bug you only notice at
the worst time.

65
00:04:13,950 --> 00:04:18,049
You come back to a long session, and
suddenly it's asking permission again for

66
00:04:18,070 --> 00:04:19,390
things you'd settled hours ago.

67
00:04:19,970 --> 00:04:24,270
Or worse, you fork to try a risky approach
and aren't sure what the fork inherited.

68
00:04:24,730 --> 00:04:27,170
Now the acknowledged settings carry over
to both.

69
00:04:27,810 --> 00:04:32,330
The companion is PR 57839, and it's about
reasoning tokens.

70
00:04:33,230 --> 00:04:36,790
Reasoning token accounting is now
preserved across resume and fork,

71
00:04:37,250 --> 00:04:38,830
to avoid premature compaction.

72
00:04:39,890 --> 00:04:43,990
The way to read it: if the count of
reasoning tokens goes missing on restore,

73
00:04:44,570 --> 00:04:48,350
the system thinks the context is fuller or
emptier than it is,

74
00:04:48,650 --> 00:04:50,250
and compaction can fire early.

75
00:04:51,130 --> 00:04:54,910
Keeping the accounting means a restored
thread behaves like the thread you left.

76
00:04:55,640 --> 00:04:58,140
So here's a workflow check after you
upgrade.

77
00:04:58,640 --> 00:05:03,240
Take a long thread, resume it, and see
whether the approvals you granted still hold.

78
00:05:03,760 --> 00:05:07,340
Then fork it and watch whether compaction
kicks in sooner than it used to.

79
00:05:07,980 --> 00:05:12,540
One caveat: the notes describe the fix,
but they don't give numbers on how often

80
00:05:12,580 --> 00:05:15,600
this was happening, so treat your own
session as the test.

81
00:05:16,262 --> 00:05:18,162
A few smaller things worth a mention.

82
00:05:18,962 --> 00:05:24,502
On NFS mounts, SQLite databases now
initialize with DELETE journaling,

83
00:05:25,362 --> 00:05:31,962
PR 56552, and PR 57225 adds managed
enforcement of that.

84
00:05:32,722 --> 00:05:37,182
If your home directory lives on shared
network storage, that's aimed at lock trouble

85
00:05:37,322 --> 00:05:38,622
and migration failures.

86
00:05:39,145 --> 00:05:43,205
Local image attachments now survive when
you restore killed composer text,

87
00:05:43,665 --> 00:05:45,465
PR 57502.

88
00:05:46,165 --> 00:05:49,745
Unarchiving a parent thread restores the
descendant threads it spawned,

89
00:05:50,205 --> 00:05:54,025
PR 57635, which matters if you use
subagents.

90
00:05:54,825 --> 00:05:59,325
App server thread startup and shutdown
races are fixed, and completed runtimes get

91
00:05:59,345 --> 00:06:03,825
released promptly, PRs 57787 and 57788.

92
00:06:04,425 --> 00:06:09,405
And TUI reconnection recovery is better,
including offline /quit and /exit,

93
00:06:09,925 --> 00:06:11,525
PR 57820.

94
00:06:12,390 --> 00:06:13,670
So the checklist is short.

95
00:06:14,390 --> 00:06:17,790
Update with the curl installer if you want
the executor binary.

96
00:06:18,490 --> 00:06:20,350
Confirm it's actually on disk.

97
00:06:21,070 --> 00:06:24,050
If you run anything over the network,
check the auth flags.

98
00:06:24,750 --> 00:06:27,290
And resume one real session to see the
approvals hold.

