Peter Steinberger
46bdbe585f
fix(openai): restore Sol thinking levels ( #121865 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-11 00:28:21 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
00fb85e48f
fix(openai): preserve hosted search in Code Mode ( #121812 )
...
Keep provider-hosted web_search alongside Code Mode's constrained function surface when OpenAI policy authorizes it. Enforce the same authorization at Responses transport egress.
Refs #121803 .
2026-08-10 19:59:51 -07:00
Peter Steinberger
8aa0376f27
refactor(agents): simplify turn latency runtime ownership ( #121779 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019fe95b-d75c-70fc-82b6-4825ca874826
Co-authored-by: Amp <amp@ampcode.com >
2026-08-10 18:58:36 -07:00
Peter Steinberger
fd1b965f2b
refactor(plugins): remove orphan test API barrels ( #121761 )
...
* test(plugins): remove orphan test API barrels
* refactor(plugins): remove orphan test-only exports
* refactor(imessage): remove orphan test plugin
* test(plugins): remove stale package guard timeout
2026-08-10 16:42:34 -07:00
Peter Steinberger
f09a33ce41
Optimize OpenAI turn latency and simplify reuse ( #121687 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-019fe95b-d75c-70fc-82b6-4825ca874826
Co-authored-by: Amp <amp@ampcode.com >
2026-08-10 16:23:06 -07:00
Peter Steinberger
c12d3d7a05
refactor: export canonical oc-path isPattern and drop retired openai-codex catalog ( #121621 )
...
Completes the hasWildcard -> isPattern rename in oc-path (exports the
canonical predicate, migrates all callers, deletes the deprecated alias)
and removes the retired buildOpenAICodexProvider catalog module with its
api.ts re-export and contract-list entries. The dead-option-flag half of
this branch converged with an equivalent change that landed on main first.
2026-08-10 08:19:51 -07:00
Peter Steinberger
a0ad38e71a
feat(docs-ci): validate docs config examples against the schema ( #121336 )
...
* feat(docs-ci): validate config examples against schema
* docs: teach canonical agent roster configuration
* docs: nest inline environment variables under vars
* docs: update canonical media model keys
* docs: remove retired config keys from examples
* fix(docs-ci): keep audit internals private
* feat(docs-ci): validate plugin-owned config examples
* fix(docs-ci): validate indented config fences
* fix(ci): route manifest changes through docs audit
* chore(docs): refresh generated config baselines
2026-08-10 07:57:56 -07:00
Peter Steinberger
b81946d6af
fix(ui): make Cloud Worker startup responsive ( #121200 )
...
* fix(openai): filter platform-only ChatGPT catalog rows
* fix(ui): show Cloud Worker startup progress
* fix(ui): keep cloud startup out of app bootstrap
* fix(ui): reduce cloud startup bootstrap cost
* fix(ui): satisfy cloud startup lint
* fix(ui): keep cloud startup within UI limits
* fix(ui): satisfy cloud startup CI limits
* fix(ui): isolate concurrent cloud startup
* fix(ui): address cloud startup review findings
* fix(ui): persist cloud startup recovery per session
* style(ui): format cloud startup chat props
2026-08-09 22:42:45 -07:00
Peter Steinberger
8ab7ac54e2
docs: align prompt-overlay, truncation, and pruning docs with shipped behavior ( #121324 )
...
* fix(openai): describe personality as the canonical GPT-5 style toggle
The shipped config-schema description told operators and models to prefer
agents.defaults.promptOverlays.gpt5.personality, a retired key that config
validation rejects and doctor deletes. plugins.entries.openai.config.personality
is the only live reader (src/agents/gpt5-prompt-overlay.ts).
* docs: align prompt-overlay, truncation-notice, and pruning docs with shipped behavior
- teach plugins.entries.openai.config.personality as canonical; retired
agents.defaults.promptOverlays noted as rejected/migrated
- replace nonexistent agents.defaults.bootstrapPromptTruncationWarning with
prose describing the built-in always-on notice
- reword session-pruning internal constants as built-in behavior, name the
real contextPruning config surface
- delete stale/orphan pages (path3 harness for a never-committed script,
superseded swarms plan, landed path3 artifact-family scoping note)
- fix dead paths in reference/test.md and concepts/typebox.md
* docs: describe the embedded truncation notice as compact
The embedded runtime injects buildBootstrapPromptWarningNotice, which
deliberately omits file names and sizes; per-file diagnostics stay in
/context, status, and logs. Addresses ClawSweeper P2 on #121324 .
* docs: doctor migrates the retired personality key instead of removing it
Main landed #121346 mid-flight: doctor --fix now moves
agents.defaults.promptOverlays.gpt5.personality into
plugins.entries.openai.config.personality when unset.
2026-08-09 21:41:43 -07:00
Peter Steinberger
3b641a145e
fix: preserve GPT-5 personality through doctor migration ( #121346 )
...
Operators who disabled the GPT-5 friendly interaction style now keep that preference after openclaw doctor --fix. Existing OpenAI plugin personality config remains authoritative.
2026-08-09 19:14:08 -07:00
Peter Steinberger
f805ad0354
refactor(extensions): remove unused compatibility exports ( #121338 )
2026-08-09 19:01:38 -07:00
Peter Steinberger
bd6c6aaef2
refactor(ws): consolidate raw WebSocket payload decoding ( #121268 )
...
* refactor(ws): consolidate raw data conversion
* fix(scripts): keep gateway client source-loadable
* refactor(ws): share plugin frame decoding
2026-08-09 16:32:18 -07:00
Peter Steinberger
8ed072ee16
fix: bound GPT-Live buffers and preserve workspace lock ownership ( #120911 )
...
* perf(openai): bound realtime audio buffering without repeated copies
* fix(openai): publish media timer before first tick
* fix(gateway): preserve workspace receiver lock ownership
* perf(openai): transfer pending audio ownership
* test(gateway): remove duplicate receiver wait
2026-08-09 09:01:54 -07:00
Peter Steinberger
7dcb4fb760
feat(talk): broker realtime sideband control ( #121054 )
...
* feat(talk): broker OpenAI realtime sideband
* test(openai): prove audio-only sideband offer
* fix(talk): harden realtime sideband control
* fix(talk): restore sideband session update fence
* fix(talk): recognize GA function output events
* refactor(talk): unify realtime broker session leases
* fix(talk): use PCM audio for WebRTC sideband
* chore(plugin-sdk): refresh API baseline
2026-08-09 05:14:20 -07:00
Peter Steinberger
bb019e4a53
fix(providers): preserve realtime tool-result delivery ownership ( #120776 )
...
Co-authored-by: Wan Yong <wan.yong@xydigit.com >
2026-08-08 17:03:43 -07:00
Peter Steinberger
fb911a33ac
fix(system-agent): keep inference available across routes ( #120712 )
...
* fix(system-agent): keep inference available across routes
Accept provider-owned equivalent response model identities and route every new OpenClaw chat through the configured/authenticated inference fallback ladder. Malformed replies may fall through while provider/model and execution-owner uncertainty remain fail-closed.
Fixes #120711
* fix(system-agent): keep malformed fallback route-scoped
Continue to later configured routes from the same provider after empty or malformed model output. Timeout and unavailable results remain provider-wide, while owner and identity uncertainty remain fail-closed.
Addresses ClawSweeper P1 on #120712 .
2026-08-08 15:05:19 -07:00
Peter Steinberger
1802d85f3c
fix(openai): reject invalid OAuth token response envelopes ( #120685 )
...
Validate token response envelopes once in the shared parser used by authorization-code exchange and refresh. Prove null and array responses through both production entry points over real loopback HTTP.
Refs: #120174
Co-authored-by: 毛宇豪0668001457 <mao.yuhao@xydigit.com >
2026-08-08 13:37:33 -07:00
Vincent Koc
b5180b6816
fix(codex): support app-server 0.147.0 ( #120594 )
...
* fix(codex): support app-server 0.147.0
* docs(codex): clarify marketplace version provenance
2026-08-08 23:07:05 +08:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
Peter Steinberger
bc0c3fcd63
refactor(providers): shared generated-media download guard and binary-response adoption ( #120351 )
...
* fix(agents): cancel rejected provider binary bodies
* refactor(providers): share generated media downloads
* refactor(providers): adopt payload patch stream wrapper
* fix(providers): preserve generated media helper contracts
2026-08-07 15:45:53 -07:00
Vincent Koc
b269e652bc
chore(codex): bump app-server to 0.146.1
2026-08-06 07:11:37 +08:00
Peter Steinberger
3ec8af66d1
refactor(openai): simplify ChatGPT OAuth credential flow ( #119628 )
2026-08-05 08:51:41 -07:00
Vincent Koc
ebf335f1a6
fix(voice): start socket timeout after auth preparation
2026-08-04 14:17:19 +08:00
Vincent Koc
dc11c78927
test(qa): cover audio proxy and limit handling ( #118863 )
2026-08-04 07:06:03 +08:00
Peter Steinberger
665b47832a
fix(openai): enforce final transcript bounds before callback delivery ( #118928 )
2026-08-03 13:56:21 -07:00
Peter Steinberger
990fdcf6fd
fix(providers): recognize configured media credentials across provider boundaries ( #118761 )
...
* fix(providers): honor configured media credentials across owner boundaries
* test(providers): align configured auth fixtures and derived SDK surfaces
* fix(providers): enforce shared DashScope media credential policy
2026-08-03 13:26:31 -07:00
Peter Steinberger
b9e5b25e31
fix(openai): commit eligible final realtime transcription audio safely ( #118782 )
2026-08-03 10:51:48 -07:00
Peter Steinberger
5de84bfc4d
fix(openai): support the current speech model snapshot ( #118475 )
...
* fix(openai): support the current speech model snapshot
* docs(openai): clarify speech instructions apply to the model family
2026-08-02 23:00:46 -07:00
Peter Steinberger
e04caa6aee
fix(openai): support flexible GPT Image 2 dimensions ( #118476 )
...
* fix(openai): support flexible GPT Image 2 dimensions
* docs(openai): explain flexible GPT Image 2 dimensions
2026-08-02 22:40:07 -07:00
Peter Steinberger
694212ea72
test(agents): fixture model runtime collaborators ( #118453 )
...
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 21:33:39 -07:00
Peter Steinberger
128361397a
test(openai): centralize GPT-Live delegation contracts ( #118436 )
...
* test(openai): centralize GPT-Live delegation contracts
* test(openai): type delegation consult mocks
2026-08-02 21:14:30 -07:00
Peter Steinberger
11795bdc7c
refactor(openai): unify GPT-Live delegation control ( #118391 )
2026-08-02 20:03:33 -07:00
Peter Steinberger
b36e9af00a
fix(openai): reject malformed video download bodies ( #117227 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 19:39:46 -07:00
Vincent Koc
1519571398
test(openai): isolate terminal history bounds
2026-08-03 05:48:38 +08:00
Vincent Koc
6ea9489d08
test(openai): cover terminal history saturation
2026-08-03 05:35:22 +08:00
Vincent Koc
05541a2897
fix(openai): preserve terminal history precedence
2026-08-03 05:35:21 +08:00
Vincent Koc
05ddb8ab11
test(openai): cover tombstone eviction ordering
2026-08-03 05:12:21 +08:00
Vincent Koc
27f6005682
fix(openai): retain active predecessor satisfaction
2026-08-03 05:12:21 +08:00
Vincent Koc
26cd629d1b
test(openai): cover rejected terminal failures
2026-08-03 05:10:33 +08:00
Vincent Koc
a0db9cdd15
fix(openai): preserve terminal error precedence
2026-08-03 05:10:33 +08:00
Vincent Koc
8f83eaccf4
test(openai): cover pre-commit terminal events
2026-08-03 05:09:26 +08:00
Vincent Koc
72b4e42b44
fix(openai): tombstone pre-commit terminal events
2026-08-03 05:09:25 +08:00
Vincent Koc
53055bb334
test(openai): pin first transcript terminal outcome
2026-08-03 04:25:07 +08:00
Vincent Koc
26b04e768e
fix(openai): ignore post-terminal transcript events
2026-08-03 04:25:07 +08:00
Vincent Koc
22db40f337
test(openai): cover realtime transcription bounds
2026-08-03 04:24:36 +08:00
Vincent Koc
c49afb7eec
fix(openai): bound realtime transcription state
2026-08-03 04:24:36 +08:00
Vincent Koc
7717b8925b
test(openai): verify live realtime bridge reuse
2026-08-03 03:02:09 +08:00
Vincent Koc
4f8a9c8301
fix(openai): reset realtime session lifecycle cleanly
2026-08-03 03:00:24 +08:00
Vincent Koc
a0a6ce972a
test(openai): cover realtime terminal reset
2026-08-03 02:59:44 +08:00