Commit Graph

1265 Commits

Author SHA1 Message Date
xingzhou
e2ca148d4b fix(codex): preserve JSONL framing across WebSocket writes (#110384)
* fix(codex): preserve UTF-8 websocket frames

* test(codex): satisfy websocket transport lint

* fix(codex): preserve websocket JSONL framing
2026-07-19 17:07:03 +08:00
Peter Steinberger
ea54060223 feat(codex): fork upstream-linked sessions at a message via thread/fork (#111149)
* feat(codex): fork upstream-linked sessions at a message via thread/fork

* fix(gateway): fail closed for rewind and branch switch on upstream-linked sessions

* fix(codex): fail closed on first-message forks, image-only prompts, and orphan archival

* fix(codex): baseline retained history and reject paginated threads on upstream fork

* fix(codex): validate the full fork prefix and fail closed across crash windows

* fix(codex): treat all non-text inputs as unverifiable in fork drift checks

* fix(codex): support first-message forks as empty-history upstream cuts

* fix(codex): reject source-id reuse and unverifiable hidden inputs in fork boundaries

* refactor(codex): materialize upstream forks from verified thread read-back

* fix(codex): satisfy strict type lanes and knip for upstream fork
2026-07-19 00:11:10 -07:00
Peter Steinberger
208036afdc fix(codex): session permissions persist across resumed turns (#111136)
* test: harden Codex compaction command oracle

* test: accept omitted Codex command exit code

* fix(codex): apply stored session permissions

* test: harden Codex gateway stress evidence

* test: accept successful Codex command retries

* test: classify Codex evidence as live helper
2026-07-18 19:56:42 -07:00
Peter Steinberger
968f9ad0f3 test(codex): split event projector suites (#111097) 2026-07-18 18:17:25 -07:00
Kris Wu
e5b2ca3c6b feat(config): add compaction.thinkingLevel to override thinking level during compaction (#98074)
* feat(config): add compaction.thinkingLevel to override thinking during compaction

* fix: make compaction.thinkingLevel override inherited session thinking

* fix: warn on compaction.thinkingLevel ignored by Codex native runtime

* feat(config): add compaction thinking override

Co-authored-by: wu.duozhen@xydigit.com <wu.duozhen@xydigit.com>

* test(agents): remove duplicate compaction harness

Co-authored-by: wu.duozhen@xydigit.com <wu.duozhen@xydigit.com>

* test(plugin-sdk): account for thinking level export

Co-authored-by: wu.duozhen@xydigit.com <wu.duozhen@xydigit.com>

* chore: keep release note in PR metadata

* chore: reconcile plugin SDK surface budgets

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-18 17:18:28 -07:00
Peter Steinberger
f3f6eb2321 fix(codex): stop fallback for superseded sessions (#110980) 2026-07-18 23:02:03 +01:00
Peter Steinberger
b6f905b410 test(codex): repair app-server extension shard fixtures (#110951) 2026-07-18 21:29:36 +01:00
Omar Shahine
bbad877aed fix: deliver Codex-generated images on message-tool routes (#110893)
* fix: deliver Codex-generated images on message-tool routes

* test(codex): cover native image delivery path

Document trusted harness artifact provenance and cover the runner-to-dispatch bridge.\n\nRelease note: Codex-generated images now reach message-tool-only routes while normal source suppression remains intact.\n\nCo-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>

---------

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-18 20:45:57 +01:00
Peter Steinberger
04a9552a1f chore(codex): update app-server to 0.144.6 [AI] (#110821)
* build(codex): bump app-server to 0.144.6

* build(codex): align ACP runtime to 0.144.6

* test(codex): harden live image probe

* test(codex): accept alphanumeric image tokens

* test(codex): stabilize image probe glyphs

* test(gateway): disable cron probe delivery

* test(codex): enlarge live image token

* test(codex): tie compaction proof to native output

* test(codex): accept wrapped native stress commands

* test(codex): stabilize compaction acknowledgements

* docs(changelog): note Codex 0.144.6 update

* docs(changelog): defer Codex note to release
2026-07-18 19:19:17 +00:00
Peter Steinberger
f14947d256 fix(codex): persist automatic compaction history (#110587)
* fix(codex): persist automatic compaction counts

* test(codex): stress compaction and restart recovery

* test(codex): bind compaction waves to fresh counts

* chore: keep Codex release note in PR
2026-07-18 10:37:25 +01:00
Peter Steinberger
d7de67ae02 feat: ask_user follow-ups — harness convergence, channel finalization + reactions, native cards, docked web panel (#110372)
* feat(ask-user): follow-up harness slice

* feat(ask-user): follow-up channels slice

* feat(ask-user): follow-up native slice

* feat(ui): dock question panel above composer with stepper and compact stream summaries

* docs: refresh follow-up integration maps

* test(ui): align terminal summary proof

* fix(infra): echo declared option answers in terminal status when free-text is allowed

* fix(infra): keep reaction answering when display labels are formatter-adjusted

* fix(agents): settle plain-text claims only after question registration commits

* fix(agents,apps): commit-ordered claim persistence, claim-aware prompt delivery, non-blocking question refresh

* fix(harness,infra): reaction-appropriate question copy, caller presentations honored

* fix(native,infra,agents): local-expiry eviction, value-addressed reactions, reserve-before-request

* fix(infra,android): dual-mode question resolver for compact callbacks; reset terminal retention on replayed pending

* fix(harness,discord): claim-aware prompt delivery in run helper; escape finalization labels

* fix(macos): merge transient-content visibility with question cards after main sync

* fix: repair ask user follow-up CI

* test: update limited bootstrap scope expectation

* fix: retain shared question card API

* chore: refresh native i18n inventory
2026-07-18 03:32:39 -04:00
Peter Steinberger
3997a996d4 fix(codex): bound app-server resume history (#110396)
* fix(codex): harden app-server resume protocol

* chore(codex): defer release note to release process

* fix(codex): align bounded resume checks
2026-07-18 06:25:17 +01:00
Peter Steinberger
3659c85e53 fix(codex): distinguish available usage after limit errors (#110381) 2026-07-18 04:42:08 +01:00
Peter Steinberger
28c2f4c075 fix(codex): retire shared app-server client only when unclaimed (#110227) 2026-07-18 04:33:13 +01:00
Peter Steinberger
60ed910639 fix(diagnostics): own run activity listener lifecycle (#110312) 2026-07-18 03:29:06 +01:00
Peter Steinberger
d8f2645c2c refactor(memory-wiki): move compiled cache to plugin state (#110167)
* feat(plugin-sdk): prepare memory prompts asynchronously

* refactor(memory-wiki): move compiled cache to plugin state

* fix(plugin-sdk): export memory prompt preparer type

* refactor(plugin-sdk): keep prompt preparer type private

* test(memory-wiki): isolate compiled cache state

* chore(memory-wiki): satisfy changed gates

* fix(memory): preserve prepared prompts across context engines

* docs(plugin-sdk): refresh API baseline

* fix(memory): revalidate prepared prompt ownership

* fix(codex): propagate sandboxed memory context

* test(memory-wiki): seed durable vault identity

* refactor(memory-wiki): keep cache lifecycle internal

* fix(memory-wiki): harden compiled cache publication

* style(memory-wiki): format cache lifecycle changes

* test(memory-wiki): support extension test lib target

* style(memory-wiki): remove redundant catch

* refactor(memory-wiki): keep vault generation helper private
2026-07-18 03:05:03 +01:00
Dallin Romney
14caaf3d4c fix: make live harness planning QA fail closed (#109282)
* test(qa): prove live harness planning signals

* test(qa): satisfy scenario static checks

* test(qa): scope planning evidence per attempt

* test(qa): derive planning scenarios from coverage
2026-07-17 16:45:57 -07:00
Dallin Romney
a9dc393f7e test(qa): prove Codex auth product migration (#109291) 2026-07-17 16:10:23 -07:00
Peter Steinberger
781913025b improve: stream native sessions as hosts finish (#110211)
* perf: stream native session catalogs by host

* fix: satisfy session catalog CI contracts

* fix: retain changed-session refresh timing

* fix: keep catalog refresh helpers private
2026-07-17 23:59:57 +01:00
Peter Steinberger
ed34646bc5 refactor(codex): inline projector no-op cases (#110116) 2026-07-17 23:01:28 +01:00
Alex Knight
ddb4ed9a47 feat: trace Claude Code CLI model calls (#108304)
* feat: trace Claude CLI model calls

* fix: align Claude CLI trace hierarchy

* fix: distinguish model request and turn telemetry

* fix: satisfy diagnostics CI checks

* fix: distinguish agent-turn telemetry

---------

Authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-07-18 06:23:49 +10:00
Peter Steinberger
67a5ffab77 perf(session-catalog): bound slow node fan-out (#110106) 2026-07-17 19:24:27 +01:00
ooiuuii
7a5e0e992c fix(codex): warn and continue on projector drift (#99287)
* fix(codex): diagnose projector protocol drift

Co-authored-by: luyifan <al3060388206@gmail.com>

* fix(codex): warn and continue on projector drift

Co-authored-by: luyifan <al3060388206@gmail.com>

* test(codex): publish materialized auth snapshot

Co-authored-by: luyifan <al3060388206@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-17 18:34:19 +01:00
Peter Steinberger
f341a013af test(release): repair plugin prerelease coverage 2026-07-17 13:43:12 +01: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
2b18ef7426 feat(codex): surface native questions and goals (#109724)
* feat(codex): bridge native questions and goals

Co-authored-by: EVA <eva@100yen.org>

* fix(ui): preserve native question text encoding

* fix(codex): keep secret answers off action paths

* fix(codex): validate native action keys exactly

* fix(codex): isolate new goals and free-form answers

* style(codex): satisfy extension lint

* fix(codex): keep goal replacement non-destructive

* fix(codex): separate native goals from continuation

* fix(codex): preserve exact native answer labels

* test(codex): assert goal continuation stays disabled

* fix(codex): remove unused bridge exports

* test(codex): refresh goal feature snapshots

---------

Co-authored-by: EVA <eva@100yen.org>
2026-07-17 00:35:39 -07:00
ooiuuii
fbfad6eb42 feat(codex): show answer candidates in Activity (#90610)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 23:58:16 -07:00
marchpure
6b4f372ff6 fix(codex): expose assistant completion idle timeout config (#97233)
* fix(codex): expose assistant completion idle timeout config

* chore: rerun codex idle timeout config checks

* docs(codex): document assistant completion idle timeout

* test(codex): cover assistant idle timeout default

* fix(codex): preserve runtime option compatibility

---------

Co-authored-by: marchpure <marchpure@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 22:22:38 -07:00
Mert Başar
9d6133a931 fix(agents): block fallback completion delegation (#92011)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 21:06:40 -07:00
Peter Steinberger
b1541c933f test: accelerate Codex startup timeout coverage (#109614) 2026-07-16 20:43:21 -07:00
clawsweeper[bot]
1c5c3d5201 fix(codex): before_prompt_build receives conversation messages (#101752)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: xingzhou <275915537+zhangguiping-xydt@users.noreply.github.com>
2026-07-16 20:10:25 -07:00
Peter Steinberger
40b10eb3d1 perf: avoid plugin cold loads in request hot paths (#109348)
* perf: avoid cold plugin discovery in hot paths

* chore: remove stale harness policy re-export

* fix: preserve active thinking clamps in status
2026-07-16 14:54:32 -07:00
Peter Steinberger
5680791d7f build(codex): bump Codex CLI to 0.144.5 2026-07-16 21:16:50 +01:00
Peter Steinberger
54eb03fcf0 fix(migrate): harden importer path resolution and memory copy safety (#109314) 2026-07-16 12:56:43 -07:00
Peter Steinberger
c11d112b63 refactor(codex): deduplicate sandbox HTTP test setup (#109229) 2026-07-16 10:12:31 -07:00
Monkey-wusky
f193c50577 fix(codex): preserve sandbox HTTP UTF-8 diagnostics (#108618)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 09:47:07 -07:00
Peter Steinberger
cd96603f9a fix(codex): show Atlas and ChatGPT sessions in catalog (#109142)
* fix(codex): include all interactive session sources

* chore: remove release-owned changelog entry
2026-07-16 08:55:40 -07:00
Peter Steinberger
e3f343bd53 fix(codex): preserve Unicode in stderr tails (#109013) 2026-07-16 06:04:03 -07:00
mushuiyu886
576a222da2 fix(codex): preserve split UTF-8 in app-server stderr (#108335) 2026-07-16 05:41:56 -07:00
Wynne668
f1f4b8ae8d fix: keep image attachments when steering active runs (#107657)
* fix: preserve images during active-run steering

* fix(codex): preserve steering fallback order

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

* test(codex): satisfy strict steering assertions

Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 04:23:03 -07:00
wuqxuan
045a02b7ad fix(codex): make status context freshness truthful (#107813)
* fix(codex): project absolute thread tokenUsage into attemptUsage (#107324)

* fix(codex): keep thread totalUsage off per-attempt fields

* fix(codex): make status context freshness truthful

Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com>

* fix(codex): preserve usage through timeout recovery

Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com>

---------

Co-authored-by: Peter Steinberger <peter@steipete.me>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 03:32:08 -07:00
Jason (Json)
73980e7e42 fix(codex): remove duplicate provider setup choice (#107979)
* fix(codex): stop advertising harness as model provider

Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>

* fix(wizard): keep migration plugins out of optional setup

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 03:31:11 -07:00
Alexis Gallagher
7a3c26b509 fix(codex): preserve subagent completions after sessions_yield (#105724)
* fix(codex): preserve subagent completions across sessions_yield

* fix(codex): confirm steering delivery before yield

Co-authored-by: Alexis Gallagher <alexis@alexisgallagher.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-16 03:26:33 -07:00
Peter Steinberger
30f8146b38 refactor(codex): require PathUri sandbox inputs (#108772)
* refactor(codex): require PathUri sandbox inputs

* test(codex): use PathUri lifecycle fixture
2026-07-16 01:46:39 -07:00
Josh Avant
aaf5d23883 fix(heartbeat): stop reporting success after tool failures (#107735)
* fix(heartbeat): preserve terminal tool failures

* fix(heartbeat): handle absent failure payloads

* test(agents): align execution-state consumers

* fix(heartbeat): retain unmatched pending finals

* fix(heartbeat): preserve failures across retries

* refactor(agents): narrow terminal outcome boundary

* fix(copilot): preserve terminal tool failures

* fix(agents): bound tool execution tracking

* docs(plugins): document harness terminal outcomes

* fix(codex): preserve exact terminal boundaries

* test(codex): harden abort race fixtures
2026-07-16 01:23:06 -07:00
Stellar鱼
e481ed4229 fix(codex): decode sandbox exec PathUri inputs (#107644) 2026-07-16 01:10:02 -07:00
Peter Steinberger
dde90a345a refactor(plugin-sdk): narrow wildcard barrels to explicit used exports (#108440)
* refactor(plugin-sdk): narrow wildcard barrels to explicit used exports

* refactor(tools): delete dead tool-planning module exposed by barrel narrowing

* fix(plugin-sdk): restore deprecation tag on OpenClawSchemaType alias

* test(agents): drop test for deleted runtime proxy module

* refactor(tools): trim descriptor types to cache consumers

* refactor(deadcode): harvest exports orphaned by barrel narrowing

* refactor(deadcode): harvest exports orphaned by barrel narrowing (rest)

* fix(agents): restore sdk imports and test markers via public predicate

* fix(plugin-sdk): named type re-exports in plugin-entry; trim types barrel precisely

* chore(plugin-sdk): account unmasked deprecated provider types in budgets

* fix(plugins): name star-only type rows for dts bundling

* fix(plugins): restore host-hook surface; unexport internal api compositions

* fix(plugins): named type imports for api composition; restore needed source exports

* fix(plugins): knip-visible type imports for registry surfaces

* test: adapt tests to privatized media and command internals

* fix(qa-lab): re-export snapshot conversation type

* style: format sessions sdk imports

* fix(plugins): restore smoke entry export; pin budgets to exact actuals

* fix(plugins): canonical smoke-entry import; drop orphaned root shims

* fix(plugins): allowlist manifest probe, repoint qa web import, drop dead browser barrels

* fix(plugin-sdk): pin codex auth marker and scaffold provider type

* fix(qa-lab): keep web-facing model-selection shim within boundary rules

* fix(plugin-sdk): preserve merged contracts through narrowed barrels

* chore(plugin-sdk): pin post-rebase surface budgets
2026-07-16 00:45:23 -07:00
Peter Steinberger
bae9752c5a refactor(deadcode): enforce repository hard zero (#108641) 2026-07-15 22:40:00 -07:00
Peter Steinberger
e7cba0e4d5 fix: provider dead exports no longer block changed checks (#108592)
* fix(ci): clean provider dead exports

* test(extensions): satisfy provider contract types

* refactor(openai): tighten provider runtime factory
2026-07-15 22:33:54 -07:00
Peter Steinberger
83a4208aed fix(codex): full-auto approvals survive relay unavailability, typed failure classification, usage line after fallback (#108626)
* fix(codex): full-auto approvals survive relay unavailability, typed failure classification, usage line after fallback

- full-auto (approvalPolicy never + danger-full-access) exec approvals no
  longer get declined when the native hook relay is unreachable BEFORE
  invocation; an invoked relay's explicit deny, malformed output, or nonzero
  exit still fails closed (#107447)
- startup timeout/abort and request-timeout classification use typed error
  discriminants instead of message prose; EPIPE detection walks error causes;
  compaction keeps the message-based thread-not-found gate because codex-rs
  exposes no dedicated code (its own contract test asserts the message) and
  the generic -32600 would over-match unrelated invalid requests (#99270)
- /status keeps the Codex usage/quota line for sessions whose persisted
  agentHarnessId is codex even when the effective runtime fell back to
  OpenClaw Default; never-codex sessions remain excluded (#105184)

* chore(codex): keep startup error reason type module-local
2026-07-15 22:12:35 -07:00