You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs-site/src/content/docs/reference/configuration.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,6 +86,33 @@ inert: it does not create model-picker entries, pin sessions, or alter Pool or D
86
86
`max_concurrent_threads_per_session` value under `[features.multi_agent_v2]` in Codex's
87
87
`$CODEX_HOME/config.toml`; enable v2 first so that table exists.
88
88
89
+
## Provider diagnostic outbound safety
90
+
91
+
The dashboard provider connection test and live model discovery use a bounded GET-only outbound
92
+
transport. Without an outbound proxy, opencodex resolves the provider hostname once and connects
93
+
only to that validated address. HTTPS keeps the original hostname for Host, SNI, and certificate
94
+
verification; certificate verification cannot be disabled by provider config.
95
+
96
+
When `HTTP_PROXY`, `HTTPS_PROXY`, or `ALL_PROXY` applies, these two operations keep Bun's native fetch
97
+
so existing proxy behavior is not silently bypassed. URL/literal checks still run. Successful local DNS answers
98
+
are classified, but a local DNS failure is allowed through because proxy-only networks commonly
99
+
delegate name resolution to the proxy. The proxy chooses the final route, DNS answer, and peer, so
100
+
opencodex logs that this path cannot pin or verify the proxy-selected peer. This is an explicit
101
+
security limitation, not equivalent protection against DNS rebinding.
102
+
103
+
Private/local provider destinations require both `allowPrivateNetwork: true` and a matching
104
+
`NO_PROXY` entry whenever an outbound proxy is configured. Loopback entries are added to `NO_PROXY`
105
+
automatically. A LAN provider such as `192.168.1.50` must be added explicitly; otherwise connection
106
+
tests and model discovery reject it with an actionable message instead of sending it to the proxy.
107
+
Metadata and link-local destinations remain blocked even when `allowPrivateNetwork` is enabled.
108
+
The safety guard accepts exact hosts, domain suffixes, optional ports, bracketed IPv6, and `*` in
109
+
`NO_PROXY`; it does not interpret CIDR entries, so list each private provider host or address explicitly.
110
+
111
+
Both direct and proxied diagnostic paths reject redirects and report a credential-stripped target;
112
+
configure the final provider URL directly. Ordinary provider requests, streaming responses, and
113
+
retry paths are not migrated in this phase. Their redirect handling and per-hop destination review
114
+
remain deferred, so this phase does not close the main-request redirect finding.
115
+
89
116
## Combos (`config.combos`)
90
117
91
118
Failover / round-robin aliases live under `combos.<id>` with `targets` (provider + model), optional
@@ -179,6 +206,7 @@ body-occupancy guard):
179
206
|`claudeCode.bodyMaxBytes?`|`number`|`67108864`| Native passthrough cumulative body byte cap (streamed SSE and buffered non-stream). Exactly `0` disables. |
180
207
|`claudeCode.authMode?`|`"proxy" \| "subscription"`| unset (auto) | How `ANTHROPIC_AUTH_TOKEN` is handled at launch. Unset means auto: opencodex detects Claude auth on every launch and picks subscription when it finds any, proxy when it finds none, and subscription with a warning when it cannot tell. An explicit value is never overridden by detection. See [Claude Code](/guides/claude-code/#auth-mode). |
181
208
|`claudeCode.authModeMigratedAt?`|`string`| unset | Internal one-time marker. Written once when an upgrade pins a pre-`auto` config to `subscription`, so a deliberate subscriber is not silently moved onto the proxy. Do not set by hand. |
209
+
|`claudeCode.subagentEffort?`|`"low" \| "medium" \| "high" \| "xhigh" \| "max"`| unset (inherit) | Effort written to every generated `~/.claude/agents/ocx-*.md` definition. Unset lets each subagent inherit the parent Claude Code session effort. This controls Claude Code custom-agent frontmatter; it is separate from Codex `injectionEffort` guidance and proxy-side effort caps. Regenerate the definitions by starting through `ocx claude` after changing it. |
Copy file name to clipboardExpand all lines: docs-site/src/content/docs/ru/reference/configuration.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,6 +120,7 @@ body-occupancy):
120
120
| --- | --- | --- | --- |
121
121
|`claudeCode.bodyStallSec?`|`number`|`90`| Бюджет неактивности тела нативного passthrough в секундах — тишина по сырым байтам от вышестоящей стороны, пока ожидается чтение, а не общая длительность. Минимум 1. Ровно `0` отключает. |
122
122
|`claudeCode.bodyMaxBytes?`|`number`|`67108864`| Ограничение суммарного размера тела нативного passthrough в байтах (потоковый SSE и буферизованный непотоковый ответ). Ровно `0` отключает. |
123
+
|`claudeCode.subagentEffort?`|`"low" \| "medium" \| "high" \| "xhigh" \| "max"`| не задано (наследуется) | Уровень effort, записываемый во все сгенерированные определения `~/.claude/agents/ocx-*.md`. Если значение не задано, subagent наследует effort родительской сессии Claude Code. Это поле управляет frontmatter пользовательского агента Claude Code и не связано с Codex `injectionEffort` или ограничениями effort на стороне proxy. После изменения запустите через `ocx claude`, чтобы пересоздать определения. |
0 commit comments