Kimiyu-openai
43156fe482
fix(codex): add remote WebSocket heartbeat and reconnect ( #116135 )
2026-07-30 15:38:26 -07:00
Peter Steinberger
b9377f6048
fix(codex): enforce native MCP tool access ( #116054 )
...
* fix(codex): enforce native MCP tool access
* chore: remove prerelease changelog entry
* chore: restore changelog to main
* refactor(codex): build MCP server patches from entries
2026-07-29 17:06:49 -04:00
Peter Steinberger
a854cea4f7
fix(codex): stop supervision flag from gating the whole plugin config ( #114413 )
...
The plugin re-resolved its own enable state with supervision.enabled as
enabledByDefault, so an operator who only declared plugins.entries.codex.config
(auto-enabled by core) silently lost every codex setting, including
appServer.homeScope=user, whenever supervision was absent or off.
Use a live plugin config block as the plugin-side default, matching core's
plugin-tool-configured auto-enable and the onepassword convention. Supervision
stays gated in its own tool surface.
2026-07-27 04:34:38 -04:00
keshavbotagent
46f4018ff9
fix(codex): recover in-place session resets ( #114056 )
...
* fix(codex): recover in-place session resets
* fix(codex): preserve retired generation fences
---------
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-07-26 16:49:57 -07:00
Peter Steinberger
0e792b6de3
refactor(channels): centralize inbound orchestration and remove internal compat ( #109716 )
...
* refactor(channels): centralize inbound turn orchestration
* refactor(runtime): remove stale compatibility paths
* chore(guards): reject internal deprecated API use
* refactor(channels): simplify core turn planning
* chore(guards): keep deprecated checks boundary-focused
* refactor(memory): keep modern config off compat barrel
* fix(msteams): preserve feedback learning
* test(channels): align modern inbound fixtures
* refactor(channels): finish modern inbound migration
* refactor(channels): tighten core inbound kernel
* fix(channels): preserve turn assembly narrowing
* test(sdk): keep runtime mock binding immutable
* test(matrix): isolate read policy runtime
* test(msteams): mock canonical reply factory
* test(slack): mock core inbound turn dispatch
* test(telegram): inject core session recorder
* test(signal): inject core session recorder
* test(googlechat): assert canonical inbound routing
* test(synology-chat): align core turn fixture
* fix(sdk): preserve direct DM runtime compat
* refactor(channels): own inbound envelope compat in core
* refactor(channels): trim inbound dispatch seams
* refactor(channels): remove redundant async wrappers
* test(synology-chat): type canonical dispatcher mock
* refactor(channels): remove remaining dead compat seams
* chore(sdk): refresh API baseline after rebase
* fix(channels): preserve direct DM identity metadata
2026-07-17 00:56:46 -07:00
Peter Steinberger
7eeb1096db
fix(codex): re-home app-server usage reporting on the harness seam
...
The deleted text provider's usage hook was the only source for the /status
Codex subscription usage line. Harnesses can now contribute an optional
usage snapshot (provider hooks keep priority; only distinct synthetic hook
owners fall through), and the codex harness reports app-server rate limits
via account/rateLimits/read with the same conversion and account identity
as before. No text provider resurrected; deadcode and SDK surface gates
clean.
2026-07-16 03:06:47 +01:00
Peter Steinberger
3c8269ca52
refactor(codex)!: fold the codex text provider into openai with a doctor migration
...
The live codex text provider was a redundant projection of the openai
catalog (exclusive provider ownership; the openai plugin's ChatGPT OAuth
discovery already serves gpt-5.6-* route-aware). Folding it:
- extensions/codex no longer registers a text provider, catalog entry, or
synthetic text auth; provider.ts/provider-catalog.ts/provider-discovery.ts
and the route-blind model-name heuristics are deleted; the narrow
post-harness reasoning fallback moves to an app-server-owned module
- openai thinking policy keys on explicit selected-route provenance
(api === openai-chatgpt-responses) instead of value-shape inference
- models.list gains an optional additive agentRuntime field (configured
intent); session agentHarnessId remains the execution proof
- doctor --fix migrates the shipped codex/* config shape end to end:
every model slot, provider-config merge with blocker-aware conflict
handling, sessions, cron payloads (two-phase: runtime policy persists
before cron refs rewrite), transcripts; migrated refs carry model-scoped
agentRuntime.id=codex preserving the shipped wizard semantics; auto
runtime policies normalize to codex with sibling fields preserved;
blocked provider conflicts retain the whole legacy namespace fail-closed
with an actionable warning
- the stale openai:default profile cleanup (#91352 ) was deliberately
deferred to a follow-up after review showed it needs per-agent identity
proofs; doctor keeps warning about unusable profiles
Fixes #105561
Fixes #84637
Fixes #90420
2026-07-16 03:06:43 +01:00
Peter Steinberger
9d4610cbd1
fix(codex): settle plugin activation, align plugin/list with codex 0.144, bound discovery per turn ( #108311 )
...
* fix(codex): settle plugin activation, align plugin/list with codex 0.144, bound discovery per turn
- plugin/list curated queries omit cwds and marketplaceKinds (0.144 semantics:
explicit kinds disable the automatic global remote catalog; cwds:[] never
suppressed it), and the missing-marketplace check recognizes the current
openai-curated-remote wire name via the shared predicate (#107305 )
- curated plugin/list snapshots settle in a process-local metadata cache
(coalesced, invalidated on install/identity change/restart, 1h freshness
window matching the app-inventory cache) so a missing marketplace or plugin
no longer re-runs blocking discovery RPCs on every embedded-Codex turn;
fail-open local-only responses (upstream warns without a load error when the
remote catalog fetch fails) are never cached, and workspace-directory
queries stay live because external activation has no invalidation signal
- the whole plugin-config build shares one bounded startup deadline with
remaining-budget propagation per RPC and a deny-all apps fallback, so a hung
plugin/list cannot consume the turn (#107305 )
- guarded thread requests (start/resume/fork under the native-config fence)
must carry a finite timeout or abort signal, closing the unbounded-fence-hold
window for raw callers (#106719 hardening)
* chore(codex): keep plugin metadata types and deadline builder module-local
Deadline behavior tests exercise the production provider composition instead
of a test-only export.
2026-07-15 06:40:29 -07:00
Peter Steinberger
80e1509fe8
fix(codex): keep parent binding on cross-key handoff and stop foreign-transcript mirror warns ( #108042 )
...
- session_end with a provably different nextSessionKey (dashboard "New Chat",
fork child) no longer permanently retires the still-live parent Codex
binding; same-key rollovers, unknown-key ends, and terminal ends retire as
before (#106778 )
- mirrored session-history reads treat well-formed non-Codex transcripts as an
empty mirror instead of a read failure, so codex harness hooks stop warning
on every non-Codex model run; corrupted session headers stay on the warn
path (#106556 )
2026-07-14 23:50:01 -07:00
Peter Steinberger
644d4c3d23
fix: explain and control native session discovery ( #107162 )
...
* fix: make native session discovery configurable
* refactor: split native session discovery helpers
* chore: keep release notes in PR body
* fix: refresh generated session protocol models
* test(ui): avoid shared lazy-element mock race
2026-07-14 00:18:18 -07:00
Peter Steinberger
96f0983a85
fix(onboarding): skip setup for configured gateways and require inference first ( #102883 )
...
* fix(crestodian): keep onboarding RPCs restart-safe
* fix(profiles): isolate approval state migrations
* fix(crestodian): bypass configured gateway setup
* test(crestodian): type onboarding mocks
* fix(onboarding): require inference before Crestodian
* fix(onboarding): enforce verified inference handoff
* fix(macos): reset setup on gateway endpoint edits
* chore(i18n): refresh native source inventory
* fix(gateway): keep socket on request cancellation
* test(packaging): require workspace templates
* fix(onboarding): bind setup to verified inference
* fix(onboarding): align inference gate contracts
* fix(crestodian): classify concurrent policy rejection
* test(crestodian): expect registry restoration
* fix(onboarding): bind setup to configured gateways
* fix(codex): preserve startup phase deadlines
* test(crestodian): match fail-closed policy ordering
* test(onboarding): assert bound gateway handoff
* fix(codex): bind runtime resolution to spawn cwd
* test(crestodian): assert policy rejection order
* fix(cli): preserve gateway routing across restarts
* fix(macos): fail closed during gateway edits
* test(macos): cover gateway route generation races
* chore: keep release notes out of onboarding PR
* fix(ci): refresh onboarding generated checks
* style(swift): align gateway channel formatting
* fix(ci): refresh plugin SDK surface budgets
* fix(ci): resync native string inventory
* refactor(swift): split gateway channel support
* test(doctor): isolate plugin compatibility registry
* test(macos): isolate gateway onboarding fixtures
* test(macos): assert gateway lease health ordering
* fix(codex): reconcile computer-use startup changes
2026-07-11 10:25:14 -07:00
Peter Steinberger
fa77fe10d5
chore: migrate active GPT-5.5 references to GPT-5.6 ( #104452 )
...
* chore(models): migrate active GPT-5.5 references
* test(workboard): expect GPT-5.6 Sol default
* chore: keep release notes in PR body
* test(models): align picker fixtures with Sol default
* test: update PDF default model expectation
* test(qa): migrate thinking smoke to Luna
* test(gateway): align mock catalog with Sol default
* ci: retrigger exact-head PR checks
* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
Peter Steinberger
f94a7dc183
feat(codex): supervise native Codex sessions ( #104045 )
...
* feat(codex): add native session supervision
* fix(codex): harden supervision integration
* fix(codex): preserve locked harness ownership
* fix(codex): fence native session archive
* fix(codex): revalidate archive binding ownership
* feat(codex): integrate supervision runtime
* feat(sessions): preserve harness-owned execution
* feat(sessions): persist harness ownership invariants
* feat(gateway): enforce harness-owned sessions
* feat(setup): enable detected Codex supervision
* feat(mac): expose supervised Codex sessions
* feat(ui): make Codex sessions actionable
* docs(codex): document session supervision
* test(codex): cover integration ownership
* chore(i18n): refresh supervision inventories
* fix(setup): finalize Codex activation atomically
* test(codex): narrow binding store update
* fix(sessions): preserve legacy model locks
* test(macos): serialize Codex catalog fixtures
* fix(sessions): preserve legacy lock admission
* chore(i18n): reconcile supervision metadata
* test(sessions): mark legacy lock fixture
* fix(macos): drain final Codex catalog frame
* docs: leave supervision note to release
* style(macos): satisfy Codex catalog type length
* chore: record session accessor seam owners
* fix(macos): honor configured Codex supervision
* fix(codex): preserve harness-owned model locks
* fix(codex): satisfy supervision lint gates
* chore(i18n): refresh native supervision inventory
* fix(codex): align supervision validation contracts
* fix(codex): close supervision boundary gaps
* fix(codex): preserve supervision activation contracts
* fix(codex): dispose standalone supervision runtime
* fix(codex): pin supervised source connection
* fix(plugins): bind delegated runs to exact session target
* fix(codex): scope supervised sessions to configured agents
* fix(codex): fingerprint effective supervision home
* fix(codex): normalize supervision plugin policy
* fix(codex): keep supervised bindings stable across upgrades
* fix(codex): guard all supervised binding connections
* fix(codex): preserve catalog filters and pending CAS identity
* fix(codex): preserve supervision identity for diagnostics
* fix(codex): bind uncertain commits to supervision connection
* fix(codex): satisfy supervision type boundaries
* fix(macos): reconcile current main validation
* fix(codex): handle absent runtime config in supervision
* fix(doctor): own local audio acceleration check
* fix(codex): satisfy integration lint gates
* fix(codex): satisfy lifecycle safety guards
2026-07-11 00:12:08 -07:00
Peter Steinberger
a789b92b39
fix(macos): harden fresh AI onboarding ( #102637 )
...
* fix(macos): bootstrap Codex before onboarding test
* fix(plugins): activate deferred runtimes on demand
* fix(macos): stage Codex runtime for onboarding probe
* fix(macos): expose sanitized onboarding errors
* fix(codex): reuse native CLI auth during onboarding
* fix(macos): hide Crestodian without inference
* fix(codex): honor explicit runtime policy during setup
* fix(onboarding): redact verification errors
* fix(macos): reset onboarding state with gateway route
* fix(onboarding): persist Codex plugin install metadata
* chore: refresh onboarding inventories
* fix(macos): restart AI setup after gateway change
* chore: refresh native onboarding inventory
* fix(onboarding): defer gateway restart until setup persists
* fix(macos): reset Crestodian on gateway changes
* chore(macos): refresh native i18n inventory
* fix(onboarding): harden inference setup state
* docs(skills): reuse pristine Parallels snapshots
* chore(macos): refresh onboarding i18n inventory
* fix(onboarding): prevent stale gateway and install state
* docs(skills): preserve saved Parallels sessions
* fix(macos): balance AI onboarding layout
* fix(parallels): parse npm workspace pack output
* chore(macos): refresh onboarding i18n inventory
* fix(parallels): bundle workspace runtime in package artifact
* fix(parallels): isolate canonical package helper
* fix(parallels): pack self-contained workspace artifact
* fix(packaging): exclude macOS app bundle
* fix(macos): restart inference checks after route changes
* docs(changelog): defer onboarding note to release
* fix(onboarding): enforce inference-first gateway setup
2026-07-10 04:59:15 +01:00
Peter Steinberger
0d981095d4
refactor(codex): store app-server thread bindings in SQLite plugin state ( #101210 )
...
* test(codex): shorten placeholder auth fixture strings
* feat(plugin-state): add reject-new overflow policy for keyed namespaces
* feat(agents): thread agent identity and session generation through reset and hooks
* refactor(codex): add SQLite-backed app-server thread binding store
* refactor(codex): move app-server runtime callers onto the binding store
* refactor(codex): move conversation, entry, and thread-tool flows onto the binding store
* refactor(codex): move command handlers onto the binding store
* feat(codex): import legacy binding sidecars via doctor state migration
* fix(codex): keep doctor sidecar scan inside stateDir
* fix(codex): make binding migration landable
* chore(changelog): defer release note
* test(plugin-state): stabilize durable-capacity ordering
2026-07-07 03:03:44 +01:00
Peter Steinberger
3d6a2216ea
feat(codex): share native threads across Codex clients ( #99821 )
...
* feat(codex): share native threads across clients
* test(codex): track coexistence temp dirs
* fix(codex): preserve native source on thread forks
* test(codex): use public temp fixtures
* fix(codex): preserve owner context for deferred tools
* fix(codex): forward owner identity to dynamic tools
* fix(codex): forward owner status to harness attempts
* docs(security): document shared Codex home
* docs(security): document shared Codex home
* docs(security): document shared Codex home
2026-07-04 01:43:21 -07:00
Jason (Json)
1e0062b44a
feat: add Codex hosted web search ( #93446 )
...
Adds Codex as a selectable hosted web-search provider, routes native Codex search safely across model overrides, and isolates bounded hosted-search workers from configured tools.\n\nVerification: focused post-merge regression suite passed 202/202 tests on exact head 23824af49a .
2026-06-16 00:38:16 -06:00
Peter Steinberger
6868cde4d4
docs: document large extension sources
2026-06-04 21:40:44 -04:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
4c33aaa86c
refactor: unify OpenAI provider identity ( #88451 )
...
* refactor: unify OpenAI provider identity
* refactor: move legacy oauth sidecar doctor helpers
* test: align OpenAI fixtures after rebase
* test: clean OpenAI provider unification
* fix: finish OpenAI provider cleanup
* fix: finish OpenAI cleanup follow-through
* fix: finish OpenAI CI cleanup
2026-05-31 00:29:44 +01:00
Peter Steinberger
42387aff59
test(codex): align provider claim expectation
2026-05-27 11:03:50 +01:00
Kevin Lin
f169e0aafd
fix(codex): guard against stale codex app snapshots leading to plugin invocation failure ( #83807 )
...
* feat(codex): add plugin enable disable list commands
* fix(codex): escape plugin management output
* test(codex): narrow plugin command coverage
* fix(codex): gate plugin management writes
* test(codex): type command plugin context
* fix(codex): recover plugin app bindings
* fix(codex): fail closed on missing app inventory
* fix(codex): restore plugin thread config log signal
* revert(codex): drop plugin management commands
* fix(codex): warn on missing plugin app inventory
* fix(codex): trim plugin binding debug logs
* fix(codex): restore thread lifecycle json import
* chore(codex): remove plugin app debug logs
* fix(codex): redact plugin thread config logs
2026-05-18 18:57:48 -07:00
Peter Steinberger
c32878d1b7
fix(messages): keep Codex source replies tool-gated
2026-05-18 13:51:21 +01:00
Peter Steinberger
4b35003051
fix(messages): keep Codex direct replies automatic
2026-05-18 13:51:21 +01:00
Kaspre
69a0c925b8
fix(codex): cover side-question native hooks ( #82559 )
...
* fix(codex): cover side-question native hooks
* fix(codex): enforce native approvals for app-server requests
* fix(codex): preserve approval fallback after native relay noop
* fix(codex): satisfy approval relay json typing
* fix(codex): run approval relay in report mode
* fix(codex): keep relay pre-tool decisions deny-only
* fix(codex): remove dead relay approval branch
* fix(codex): dedupe app-server relay approvals
* fix(codex): fail closed on native relay rewrites
* fix(codex): preserve side-question provider context
* fix(codex): route side-question replies to origin
* fix(codex): preserve native hook channel context
* test(codex): align native relay rewrite assertion
* fix(codex): align side-question hook config
* fix(codex): route side-question approvals safely
* test(codex): fix side-question hook typing
* fix(codex): preserve side-question hook policy context
* fix(codex): close native hook relay review gaps
* fix(codex): keep dynamic tool hook channel context
* fix(codex): preserve native finalize hook channel context
* fix(codex): scope dynamic tool result hooks by channel
* fix(codex): drop stale deadcode allowlist entry
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-17 12:02:17 +01:00
Josh Avant
e57b137aef
fix(codex): enforce native tool policy ( #82496 )
...
* fix(codex): enforce native tool policy
* docs: add changelog for codex native policy fix
* fix(codex): satisfy native hook relay lint
2026-05-16 03:02:28 -05:00
Peter Steinberger
14b871efd9
test: dedupe codex registration mock calls
2026-05-12 13:36:21 +01:00
statxc
278ffbdb53
fix(qqbot): type active config provider
2026-05-11 14:19:34 +01:00
Peter Steinberger
12a51163a4
test: tighten codex plugin assertions
2026-05-11 07:19:27 +01:00
pashpashpash
0e8a7e12da
Enable Codex native code mode for OpenClaw harness runs ( #80001 )
...
* fix(codex): enable native code mode in harness
* test(codex): update code mode prompt snapshots
* test(codex): align code mode thread config expectations
* chore(protocol): refresh generated Swift agent params
* fix(codex): enable code-mode-only harness threads
* test(discord): fix test mock type assertions
* test: fix remaining test type assertions
* test(matrix): guard avatar loader test callback
2026-05-11 08:18:03 +09:00
Shakker
32fa492629
test: tighten codex provider assertion
2026-05-10 22:39:53 +01:00
Peter Steinberger
c1ac243d0f
test: tighten codex registration callbacks
2026-05-09 06:34:27 +01:00
Peter Steinberger
f0af64958c
test: strengthen plugin registration assertions
2026-05-08 12:31:03 +01:00
pashpashpash
439d8edf68
Add structured heartbeat responses and Codex tool replies
...
* Add structured heartbeat response tool
* agents: default codex replies to tools
* agents: use flat heartbeat tool enums
2026-05-01 11:30:41 -07:00
pashpashpash
027ea5f08b
Isolate Codex app-server state per agent ( #74556 )
...
* fix(codex): isolate app-server home per agent
* fix(codex): isolate native Codex assets per agent
* fix(channels): mark inbound system events untrusted
* fix(doctor): warn on personal Codex agent skills
* test(doctor): cover personal Codex agent skills warning
* fix(codex): forward auth profiles to harness runs
* fix(codex): preserve auto auth for harness runs
* fix(codex): auto-select harness auth profiles
* test(codex): type harness auth mock
* feat(codex): select migrated skills
* fix(codex): satisfy migration selection lint
* docs: add codex isolation changelog
2026-05-01 04:49:02 +09:00
Vincent Koc
ad954dd1ca
test(plugins): fix codex inspector capture regression
2026-04-28 02:19:56 -07:00
Vincent Koc
5f3b8b4100
fix(plugins): harden inspector runtime capture
2026-04-28 02:19:56 -07:00
Peter Steinberger
90b6665ded
refactor: move plugin api test helper to sdk
2026-04-28 00:24:54 +01:00
Peter Steinberger
69566e43cb
feat(codex): add app-server protocol bridge
2026-04-24 04:24:08 +01:00
Peter Steinberger
cec3482175
fix: support codex app-server image understanding
2026-04-24 01:43:30 +01:00
Peter Steinberger
47c0ce5f85
refactor: narrow codex harness selection
2026-04-11 00:13:08 +01:00
Peter Steinberger
c643e3c72d
fix: dispose codex app-server harnesses
2026-04-10 23:29:58 +01:00
Peter Steinberger
31a0b7bd42
feat: add Codex app-server controls
2026-04-10 22:19:00 +01:00
Peter Steinberger
84098a2267
fix: keep Codex harness opt-in by default
2026-04-10 21:22:16 +01:00
Peter Steinberger
dd26e8c44d
feat: add Codex app-server harness extension
2026-04-10 21:22:16 +01:00