1
00:00:00,280 --> 00:00:05,780
If you've ever pointed Codex at a gateway
that isn't OpenAI and watched a long

2
00:00:05,920 --> 00:00:09,560
session fall over right as it approached
the context limit,

3
00:00:10,100 --> 00:00:11,420
today's episode is for you.

4
00:00:12,380 --> 00:00:16,340
And thanks to Jellypod for helping make
this daily show a reality.

5
00:00:17,340 --> 00:00:24,140
The change is in Codex CLI 0.162.0,
released October 8th, 2026.

6
00:00:24,940 --> 00:00:29,920
It adds a capabilities block for custom
model providers that speak the Responses

7
00:00:30,060 --> 00:00:30,540
API.

8
00:00:31,280 --> 00:00:37,860
It lives in your config.toml under
model_providers, then your provider ID,

9
00:00:38,260 --> 00:00:39,480
then capabilities.

10
00:00:40,235 --> 00:00:41,135
Here's why it matters.

11
00:00:41,795 --> 00:00:44,795
Codex only speaks the Responses wire
protocol now.

12
00:00:45,315 --> 00:00:50,575
The old chat wire API is gone, and if you
configure it you get a deserialization

13
00:00:50,635 --> 00:00:50,855
error.

14
00:00:51,555 --> 00:00:55,235
For first party providers, meaning OpenAI
and Azure Responses,

15
00:00:55,735 --> 00:00:58,055
remote compaction defaults to version two.

16
00:00:58,655 --> 00:01:01,575
That means when a conversation gets close
to the context window,

17
00:01:02,075 --> 00:01:08,615
Codex sends a compaction_trigger item over
the slash v1 slash responses protocol and

18
00:01:08,635 --> 00:01:10,215
lets the server handle the truncation.

19
00:01:10,875 --> 00:01:15,655
The problem is that local gateways,
private proxies, and third party engines often

20
00:01:15,715 --> 00:01:16,655
can't parse that item.

21
00:01:17,375 --> 00:01:23,475
People running things like LiteLLM, vLLM,
or Ollama behind a Responses shim reported

22
00:01:23,675 --> 00:01:29,035
HTTP 400 errors, dropped WebSockets, or
aborted tasks right when a long session

23
00:01:29,075 --> 00:01:29,875
needed compaction.

24
00:01:30,435 --> 00:01:33,035
Short sessions looked fine, which made it
painful to debug.

25
00:01:33,673 --> 00:01:35,353
So there are two switches.

26
00:01:36,013 --> 00:01:41,013
The first is external_web_access, a
boolean.

27
00:01:41,853 --> 00:01:46,593
It controls whether hosted web search,
initiated by or for that provider,

28
00:01:47,133 --> 00:01:49,013
is allowed to reach the live internet.

29
00:01:49,913 --> 00:01:56,033
Set it to false and an on premises or air
gapped provider can't leak requests out

30
00:01:56,093 --> 00:01:56,833
through web search.

31
00:01:57,653 --> 00:02:03,233
The second is remote_compaction, and it's
a string with two valid values.

32
00:02:03,953 --> 00:02:09,933
Version two, written as the string v2,
sends those compaction_trigger items to the

33
00:02:09,992 --> 00:02:10,293
server.

34
00:02:11,173 --> 00:02:16,333
Unsupported, written as the string
unsupported, tells Codex to skip that and do the

35
00:02:16,373 --> 00:02:18,533
compaction locally on your machine
instead.

36
00:02:19,357 --> 00:02:20,657
Let me walk through a config.

37
00:02:21,237 --> 00:02:24,617
At the top level, you set model to
whatever your gateway serves,

38
00:02:24,817 --> 00:02:30,057
say mistral large latest, and
model_provider to a provider ID.

39
00:02:30,437 --> 00:02:31,917
I'll call it corpgateway.

40
00:02:32,737 --> 00:02:37,637
Then you add a table called
model_providers dot corpgateway with a name,

41
00:02:37,977 --> 00:02:44,417
a base_url pointing at your proxy's slash
v1 endpoint, wire_api set to the string

42
00:02:44,457 --> 00:02:49,577
responses, and env_key naming the
environment variable that holds your key,

43
00:02:49,937 --> 00:02:52,777
for example CORP_AI_KEY.

44
00:02:53,697 --> 00:02:59,377
Then comes the new part, a second table
called model_providers dot corpgateway dot

45
00:02:59,437 --> 00:03:00,097
capabilities.

46
00:03:00,777 --> 00:03:07,357
Inside it, external_web_access equals
false, and remote_compaction equals the

47
00:03:07,437 --> 00:03:08,497
string unsupported.

48
00:03:08,997 --> 00:03:09,757
That's the whole fix.

49
00:03:10,537 --> 00:03:12,997
You can also test it ad hoc without
editing the file.

50
00:03:13,537 --> 00:03:19,617
Run codex with the c flag and pass
model_providers dot corpgateway dot capabilities

51
00:03:19,917 --> 00:03:23,457
dot remote_compaction equals quoted
unsupported.

52
00:03:24,137 --> 00:03:28,017
And codex doctor will confirm your
provider configuration and connection health.

53
00:03:28,673 --> 00:03:29,753
Now the caveats.

54
00:03:30,553 --> 00:03:33,013
First, local compaction isn't free.

55
00:03:34,033 --> 00:03:39,073
When Codex compacts on the client, it
spends extra prompt round trips and tokens to

56
00:03:39,113 --> 00:03:41,933
condense the history, instead of the
server doing it.

57
00:03:42,553 --> 00:03:45,553
So you're trading a crash for some cost
and latency.

58
00:03:46,633 --> 00:03:50,813
Second, any capability you omit inherits
the provider defaults,

59
00:03:51,333 --> 00:03:55,013
and those assume an OpenAI style Responses
feature set.

60
00:03:55,973 --> 00:03:59,593
If you leave remote_compaction out on a
gateway that can't handle it,

61
00:04:00,073 --> 00:04:01,233
you're back where you started.

62
00:04:01,933 --> 00:04:03,093
So be explicit.

63
00:04:03,733 --> 00:04:08,053
Don't assume your proxy supports the full
surface just because it accepts basic

64
00:04:08,093 --> 00:04:08,573
requests.

65
00:04:09,303 --> 00:04:12,823
One more thing to watch if you use
model_catalog_url.

66
00:04:13,523 --> 00:04:20,303
Since 0.160.0, bundled models are no
longer merged in with a provider's

67
00:04:20,343 --> 00:04:21,323
remote catalog.

68
00:04:22,023 --> 00:04:27,403
That means the catalog your provider
returns has to explicitly list every model you

69
00:04:27,423 --> 00:04:28,063
want to select.

70
00:04:28,683 --> 00:04:31,723
If a model you expect is missing from the
picker after this change,

71
00:04:32,203 --> 00:04:35,383
check that catalog before you blame the
capabilities block.

72
00:04:35,815 --> 00:04:41,555
The companion fix is 0.162.1, which
shipped October 9th.

73
00:04:42,375 --> 00:04:48,995
In 0.162.0, if the shared background
daemon was running with a different feature set

74
00:04:49,035 --> 00:04:51,995
than your CLI defaults, startup could
fail.

75
00:04:52,815 --> 00:04:57,135
The usual trigger was launching Codex from
different folders or worktrees.

76
00:04:57,975 --> 00:05:04,655
The patch, pull request 52648, narrows
that compatibility check so it applies only

77
00:05:04,695 --> 00:05:09,415
to explicit command line feature
overrides, meaning the c flag,

78
00:05:09,675 --> 00:05:12,075
the enable flag, and the disable flag.

79
00:05:12,995 --> 00:05:18,375
If you hit a silent startup lockout on
0.162.0, upgrade to

80
00:05:18,635 --> 00:05:20,215
0.162.1.

81
00:05:21,115 --> 00:05:25,235
The same release fixes a terminal crash
when asynchronous questions contained

82
00:05:25,415 --> 00:05:26,295
multiple lines.

83
00:05:26,855 --> 00:05:29,995
It now keeps the line breaks and the full
hyperlink destinations.

84
00:05:30,888 --> 00:05:34,868
A few smaller things from 0.162.0 are
worth knowing.

85
00:05:35,388 --> 00:05:39,928
In the agent Command Center, press p on a
task and it moves into a shared Pinned

86
00:05:40,028 --> 00:05:41,828
group, when the server supports it.

87
00:05:42,368 --> 00:05:46,888
For transcripts, the slash copy command
lets you navigate and copy transcript

88
00:05:46,908 --> 00:05:52,928
blocks, Control plus Insert copies a
selection, and tui.mouse_scroll_speed tunes the

89
00:05:52,968 --> 00:05:53,488
mouse wheel.

90
00:05:53,888 --> 00:05:56,548
It takes a positive number, and the
default is 1.0.

91
00:05:57,348 --> 00:06:01,168
URLs are now clickable in approval
headers, questions, MCP prompts,

92
00:06:01,308 --> 00:06:04,108
warnings, and banners, even when they wrap
across lines.

93
00:06:04,788 --> 00:06:10,188
On Windows or DOS files, apply_patch now
preserves existing CRLF line endings by

94
00:06:10,228 --> 00:06:12,788
default, so you don't need the old opt in
flag.

95
00:06:13,388 --> 00:06:18,608
And Codex now honors the server's Retry
After header on retryable Responses and

96
00:06:18,688 --> 00:06:22,108
WebSocket failures, which helps when a
provider is shedding load.

97
00:06:22,828 --> 00:06:25,648
One calendar item, and it's today.

98
00:06:26,528 --> 00:06:33,048
October 14th, 2026 is the retirement date
for GPT 5.5 in

99
00:06:33,108 --> 00:06:37,628
ChatGPT, ChatGPT Work, and Codex, on all
plans.

100
00:06:38,528 --> 00:06:41,388
It doesn't apply to the OpenAI API.

101
00:06:42,568 --> 00:06:49,568
If any config, script, scheduled task, or
custom agent still names gpt 5.5,

102
00:06:50,068 --> 00:06:50,868
update it now.

103
00:06:51,888 --> 00:06:58,728
The options are GPT 6.1 Sol, GPT 6 Sol, or
GPT 6 Luna.

104
00:06:59,668 --> 00:07:05,828
Grep your repos and your config.toml, and
then run codex doctor once to check

105
00:07:05,968 --> 00:07:07,148
everything still resolves.

