Commit Graph

769 Commits

Author SHA1 Message Date
Peter Steinberger
bdb33c1850 fix: restore release ci checks 2026-05-27 10:40:58 +01:00
Peter Steinberger
65118c86ea refactor: remove legacy provider compat paths 2026-05-27 10:40:54 +01:00
Peter Steinberger
85f3e9e988 refactor: extract shared llm runtime
Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout.
2026-05-27 10:40:15 +01:00
Cathryn Lavery
730ac1a68d fix(agents/harness): validate forced plugin harness support before pinning (#74341)
Validates forced plugin harness support for the requested provider/model before pinning Codex or any other plugin harness. This prevents an explicitly forced Codex runtime from accepting unsupported OpenAI-like providers through a hardcoded bypass while preserving implicit PI fallback and CLI runtime alias passthrough.

Regression coverage covers forced Codex rejection for unsupported openai/openai-codex support, Codex provider support declarations, CLI attempt routing, pi-embedded auth/profile forwarding fakes, Testbox scenario probes, and live Docker Codex plugin E2E.

Thanks @cathrynlavery.
2026-05-27 09:59:04 +01:00
Vincent Koc
ca990f2ce1 fix(codex): keep attempt watchdog for queued terminal turns
Keep the Codex app-server full attempt watchdog armed after a terminal turn notification is queued, so a wedged notification projector cannot leave a run stuck indefinitely.

Proof:
- `git diff --check origin/main...HEAD`
- `node scripts/run-oxlint.mjs extensions/codex/src/app-server/run-attempt.ts extensions/codex/src/app-server/run-attempt.test.ts`
- `node scripts/run-vitest.mjs run extensions/codex/src/app-server/run-attempt.test.ts --testNamePattern "keeps the attempt watchdog armed"` passed in PR proof (`1 passed | 232 skipped`)
- `OPENCLAW_TESTBOX=1 pnpm check:changed` passed in `tbx_01kskyg44ej461k574jee8ffjc`
- CI required checks green after `build-artifacts` rerun job `78031279635` passed

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-27 08:50:59 +01:00
Peter Steinberger
e718d471f2 test(codex): mirror raw reasoning event order 2026-05-27 08:29:18 +01:00
Peter Steinberger
4314eadc79 fix(codex): keep raw assistant release path intact 2026-05-27 08:29:18 +01:00
Peter Steinberger
284098d2d8 fix(codex): preserve raw reasoning source-reply guard 2026-05-27 08:29:18 +01:00
Username
4d6bcf9f17 test(codex): verify completion idle watch arms after non-assistant rawResponseItem/completed
Regression test for the binary stall fix: when rawResponseItem/completed
arrives with a non-assistant type (e.g. "reasoning") and all tracked
items have completed, the completion idle watch must stay armed so the
stall is caught in 60s, not 30 minutes.

Refs openclaw/openclaw#87071

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-27 08:29:18 +01:00
Username
a36c82ba8b fix(codex): arm completion idle watch after rawResponseItem/completed with no active items
When the codex binary emits rawResponseItem/completed and all tracked
items have completed (activeTurnItemIds empty, no active requests), the
binary should deliver turn/completed imminently. Previously, a
rawResponseItem/completed that didn't qualify as a post-tool assistant
completion would actively disarm the completion idle watch, leaving only
the 30-minute terminal timeout to catch a stalled binary. This caused
turns to hang for up to 30 minutes when the OpenAI Responses API fails
to deliver response.completed to the binary.

Now, rawResponseItem/completed with no active items arms the 60s
completion idle watch and is excluded from the disarm path, so stalled
binaries are detected in 60s instead of 30 minutes.

Refs openclaw/openclaw#87071

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-27 08:29:18 +01:00
Steady-ai
eb8f9b46da fix(codex): avoid native compaction on budget triggers (#86772)
* fix(codex): avoid native compaction on budget triggers

* fix(codex): require manual trigger for native compaction

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 05:04:35 +01:00
Peter Steinberger
d2711c900d perf(gateway): reuse prepared auth stores 2026-05-27 04:51:43 +01:00
Peter Steinberger
1ce363743a test: speed up codex app server run attempts 2026-05-27 04:51:20 +01:00
Peter Steinberger
231a812276 build(codex): update Codex CLI to 0.134.0 2026-05-27 04:42:12 +01:00
Peter Steinberger
0cfccdb0c7 fix(codex): keep WebChat delivery hints out of user requests
Land PR #87003 from @ragesaq with a maintainer fix for routed room events.

Co-authored-by: Forge <forge@psiclawops.dev>
2026-05-27 03:44:27 +01:00
Vincent Koc
d7d037b46f fix(codex): quarantine unsupported dynamic tool schemas 2026-05-27 04:02:07 +02:00
Shakker
c0f8224109 fix: resolve final codex mirror prompt 2026-05-27 02:38:58 +01:00
Shakker
2bd38da4b0 fix: mark final codex mirror user persistence 2026-05-27 02:38:58 +01:00
Shakker
c86214345f fix: keep user turn enrichment off dispatch 2026-05-27 02:38:58 +01:00
Shakker
696fb41c5b fix: restore user turn persistence checks 2026-05-27 02:38:58 +01:00
Shakker
44bdc521f7 refactor: carry prepared user turns on recorder 2026-05-27 02:38:58 +01:00
Shakker
ce465d4422 refactor: let recorder track runtime persistence pending 2026-05-27 02:38:58 +01:00
Shakker
51d3e363e3 fix: return persisted codex mirror user messages 2026-05-27 02:38:58 +01:00
Shakker
8caed9d66d fix: honor transcript hooks in user turn fallbacks 2026-05-27 02:38:58 +01:00
Shakker
dc692aa6f6 perf: avoid duplicate transcript idempotency scans 2026-05-27 02:38:58 +01:00
Shakker
209eadcd2d fix: notify codex prompt mirror persistence 2026-05-27 02:38:58 +01:00
Shakker
cf265732c7 fix: mirror prepared codex user turns 2026-05-27 02:38:58 +01:00
Peter Steinberger
1dbd9a3154 fix(codex): avoid false queued terminal idle timeout (#87096) 2026-05-27 01:57:08 +01:00
Peter Steinberger
a43da0c8c5 perf: reduce gateway cpu churn 2026-05-27 01:52:27 +01:00
uday
0f18d52f16 fix(codex): raise dynamic tool timeout 2026-05-27 01:25:48 +01:00
Thesaranshn8n
6729dea36f fix(codex): share native hook relay registry (#73950)
Co-authored-by: Sar Jeeves <sar-jeeves@example.com>
Co-authored-by: Kaspre <kaspre@gmail.com>
Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2026-05-26 15:02:03 -07:00
Peter Steinberger
5a7d5c6def fix(codex): bound app-server timeout fallout
Retire timed-out Codex app-server clients with lease-aware cleanup and keep harness-owned timeouts out of provider fallback.
2026-05-26 22:41:02 +01:00
Peter Steinberger
cee8c8773b build: use rastermill 0.3.0 2026-05-26 21:55:57 +01:00
Peter Steinberger
80655fe955 test: fix current suite drift 2026-05-26 16:40:08 -04:00
Peter Steinberger
d8a14e77c3 fix(deps): pin shrinkwrap patch drift to pnpm lock 2026-05-26 16:35:10 -04:00
Andy Ye
bf0228b5c2 fix(codex): project newer history on app-server resume (#86677)
Project newer external OpenClaw chat history into resumed Codex app-server threads when the saved binding is older than user-visible transcript messages, while filtering Codex-owned mirror records on consecutive resumes.

Thanks @TurboTheTurtle!
2026-05-26 21:07:07 +01:00
pashpashpash
3a64dc7623 fix(codex): keep turn timeouts inside Codex (#86476)
Keep Codex app-server turn timeouts within the Codex runtime boundary so they interrupt the active turn without retiring the shared app-server client, poisoning auth-profile cooldowns, or falling through to generic provider/model fallback.

Preserve concrete non-timeout provider failures for auth-profile rotation and fallback, and add regression coverage for prompt-stage timeouts, assistant idle timeouts, auth-profile cooldowns, and app-server timeout handling.

Thanks @pashpashpash.
2026-05-26 21:06:19 +01:00
Keshav's Bot
21c25bbb9d fix(codex): gate profiler timing and startup setup 2026-05-26 20:51:00 +01:00
Eva
7a147419db fix(codex): preserve oversized native thread reuse
Reworks the Codex app-server native thread reuse guard so OpenClaw no longer adds a user-facing token config. Token clearing now prefers Codex's reported model context window, falls back to a high internal recovery fuse, and preserves context-engine thread-bootstrap reuse while keeping byte guard behavior intact.

Verification:
- `fnm exec --using v24.15.0 -- node scripts/run-vitest.mjs run extensions/codex/src/app-server/run-attempt.test.ts extensions/codex/src/app-server/run-attempt.context-engine.test.ts --reporter=dot --pool=forks --no-file-parallelism`
- `git diff --check`
- `.agents/skills/autoreview/scripts/autoreview --mode local --base origin/main`
- Testbox `check:changed`: `tbx_01ksjm1hy7mfrc5bebzyckqdew`, GitHub Actions run https://github.com/openclaw/openclaw/actions/runs/26463150977, exit 0
- PR CI green after rerunning unrelated `checks-node-agentic-agents` flake and stuck OpenGrep scan

Co-authored-by: Eva (agent) <eva+agent-78055@100yen.org>
2026-05-26 18:33:59 +01:00
Peter Steinberger
fdb7848a7c chore: remove stale codex test conversion 2026-05-26 17:40:44 +01:00
Peter Steinberger
ead847f606 fix: ignore other codex thread completions 2026-05-26 17:16:17 +01:00
Vincent Koc
5ef812293b fix(codex): bridge cli api-key auth into app-server 2026-05-26 17:19:50 +02:00
Peter Steinberger
30e59b4090 test: speed up slow CI regressions 2026-05-26 13:13:19 +01:00
Peter Steinberger
4c8e9da033 test(codex): widen app-server wait timeout type 2026-05-26 10:42:30 +01:00
Vincent Koc
3f6b63aa1d fix(codex): preserve sandbox bootstrap path style 2026-05-26 10:21:47 +02:00
Peter Steinberger
3548cff14b refactor: migrate validators to TypeBox (#86639)
* refactor: migrate validators to typebox

* fix: preserve json schema resource refs

* chore: clean schema preflight recursion

* refactor: remove lobster ajv shim

* fix: support schema array refs

* fix: validate schema dependencies

* fix: preserve schema contract checks

* fix: support same-document schema refs

* fix: preserve untyped map defaults

* fix: preserve schema default semantics

* test: avoid thenable schema literals

* test: build conditional schema key

* fix: defer resource id refs to typebox

* fix: reject invalid schema enum metadata

* fix: preserve default branch semantics

* fix: resolve schema resource refs

* fix: narrow conditional default fallback

* fix: preserve uri format validation

* fix: preserve validator compatibility

* test: avoid ajv cache lint violation

* fix: preserve typebox validation diagnostics

* fix: validate defaulted conditional schemas

* fix: normalize mcp draft schemas

* fix: preserve tuple schema defaults

* fix: resolve relative schema refs

* fix: scope typebox format semantics

* fix: align conditional format defaults

* fix: decode schema pointer refs

* fix: filter grouped secretref diagnostics

* fix: preserve default conditional compatibility

* fix: preserve nullable schema compatibility

* fix: settle defaults before conditionals

* fix: preserve default validation invariants

* fix: validate dynamic schema refs

* fix: reject malformed nullable schemas
2026-05-26 08:45:28 +01:00
Peter Steinberger
083377adb8 test(codex): wait for diagnostic event locally 2026-05-26 06:53:40 +01:00
Peter Steinberger
11b1b7c888 test(codex): complete diagnostic turn explicitly 2026-05-26 06:32:54 +01:00
Peter Steinberger
bee8ad34a0 test(codex): avoid app-server diagnostic notification race 2026-05-26 04:17:16 +01:00
Peter Steinberger
609d70d35e fix(release): stabilize beta validation after rebase 2026-05-26 03:30:54 +01:00