Commit Graph

816 Commits

Author SHA1 Message Date
Vincent Koc
936c9c7e2d fix(openai): copy queued realtime audio buffers (#117028)
* commit '7facf157e67d7902dd645f33026a253e006ed0e0':
  test(openai): parse realtime websocket frames safely
  fix(openai): own queued realtime audio buffer snapshots
2026-08-02 03:29:43 +08:00
Vincent Koc
7facf157e6 test(openai): parse realtime websocket frames safely 2026-08-02 02:59:32 +08:00
Peter Steinberger
71b35c3e1d fix(openai): keep embedding identity stable across upgrades (#117557)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 11:59:31 -07:00
Vincent Koc
3aa43c7fba chore: merge main into realtime audio ownership fix
* origin/main: (491 commits)
  feat(gateway): advertise chat attachment limits on hello-ok (#116188)
  fix(ui): preserve full graphemes in session owner initials (#117350)
  refactor(tui): consolidate runtime ownership (#117368)
  fix(update): return failure when dirty checkout blocks update (#117452)
  fix(auto-reply): apply mixed chat directives in one session transaction (#117542)
  refactor(ui): unify channel status and setup controls (#117499)
  fix(doctor): preserve surviving lint selections (#117543)
  fix(media): keep an unquoted MEDIA path with spaces as one media item (#112464)
  refactor(channels): consolidate lightweight plugin discovery (#117541)
  fix(imessage): prevent duplicate messages after delayed sends (#110853)
  refactor(memory): unify authoritative dreaming state and presentation (#117538)
  refactor(agents): consolidate main-session recovery ownership (#117383)
  fix(proxy-capture): make path-based session cleanup atomic (#98852)
  refactor(agents): consolidate compaction and context-engine ownership (#117482)
  fix(gateway): preserve Responses usage details (#117533)
  perf(gateway): skip empty session recovery stores (#117498)
  fix(ci): update canonical Kova performance pin (#117508)
  fix(system-agent): emit the wizard cancel hint once per message (#113731)
  refactor: dedupe secrets runtime snapshot fixtures (#117502)
  test(google): cover ready callback close precedence
  ...
2026-08-02 02:41:51 +08:00
Peter Steinberger
b9bf34a3cd test(openai): dedupe realtime voice fixtures (#117503) 2026-08-01 10:22:51 -07:00
Peter Steinberger
568ea29d2e refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Vincent Koc
5ae401d908 fix(models): reduce default model-list memory use (#117323)
* fix(models): scope default catalog discovery

* fix(models): split scoped catalog preparation

* perf(models): narrow model-list imports

* perf(auth): narrow provider id imports

* perf(plugins): narrow provider discovery imports

* perf(models): bypass runtime catalog facade for scoped lists

* perf(models): avoid runtime imports in default list

* fix(models): preserve scoped catalog coverage

* chore(models): remove obsolete auth exports

* perf(models): skip redundant configured-provider discovery

* perf(models): skip canonical row runtime loading

* fix(models): normalize configured fallback rows

* test(models): update registry list fixtures

* fix(models): separate catalog and runtime discovery scopes

* fix(models): break row projection import cycle

* fix(models): satisfy type and export checks

* fix(models): keep row projection bundled-only

* fix(models): preserve partial catalog visibility

* fix(models): avoid live discovery in default lists

* test(models): isolate auth-backed catalog coverage

* fix(models): retain OpenAI runtime normalization

* fix(models): skip canonical OpenAI row runtime loading

* test(models): keep provider policy fixtures typed

* fix(models): preserve configured OpenAI routes
2026-08-02 00:01:37 +08:00
Peter Steinberger
daee265f32 fix(openai): own queued realtime audio buffer snapshots 2026-07-31 12:40:22 -07:00
Peter Steinberger
ae4f1bbf26 fix(openai): enforce canonical image stream framing and terminal ownership (#116999)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 12:35:23 -07:00
Peter Steinberger
652a47e644 fix(openai): use canonical multipart video submissions (#116995)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 12:08:12 -07:00
Peter Steinberger
51a78a4411 fix(openai): honor video submission and edit contracts (#116917)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 09:08:53 -07:00
Peter Steinberger
0d209991b6 fix: preserve realtime provider event ownership (#116891)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 08:33:06 -07:00
Vincent Koc
d8f229f2e6 Merge pull request #116735 from vincentkoc/fix/openai-preconnect-lifecycle
* commit 'b218adb7a7d931927aa7fd577f40b31ecc113c3b':
  chore(openai): drop release-owned changelog entry
  fix(openai): narrow idle lifecycle cancellation
  fix(openai): discard preconnect audio on close
  fix(openai): terminalize preconnect lifecycle
2026-07-31 20:18:48 +08:00
BSG2000
80a12e30c1 fix(openai): bound realtime websocket auth errors 2026-07-31 18:45:12 +08:00
Vincent Koc
bfbba677e4 chore(openai): merge current main into lifecycle fix
* origin/main: (38 commits)
  fix(agents): compact session status change text (#116742)
  fix(llama-cpp): recover plaintext tool calls (#116736)
  fix(telegram): validate native queue arguments before fallback (#116726)
  chore(skills): add autonomous issue sweep workflow
  docs(auto-qa): require clean root-cause refactors
  fix(ollama): models advertise tools when /api/show fails (#109971)
  fix(ollama): use CJK-aware char estimate for usage fallback (#110073)
  fix(ollama): release failed setup response bodies before returning (#111802)
  feat(plugins): externalize Synthetic provider (#116720)
  fix(agents): unblock channel turns after restart recovery (#116728)
  fix(telegram): keep typing alive during active steered tasks (#116721)
  fix(gateway): admit standalone MCP app work (#116727)
  fix(googlechat): record canonical receipt thread (#116717)
  test(ui): cover the Talk relay start-stop race
  fix(ui): close superseded Talk allocations
  fix(agents): resume interrupted turns past progress commentary (#116725)
  fix(gateway): sign device proofs with challenge time (#116679)
  test(google): cover expired CLI OAuth compatibility
  fix(testing): load relay smoke through UI Vite config
  test(testing): guard realtime relay smoke module path
  ...
2026-07-31 17:50:34 +08:00
Vincent Koc
07a352ac95 fix(openai): narrow idle lifecycle cancellation 2026-07-31 17:10:40 +08:00
Vincent Koc
255bb69a0e Merge pull request #116603 from synthalorian/fix/issue-116525
fix(openai): restrict GPT-Live broker cleanup to plugin disable only

* refs/remotes/origin/pr/116603:
  fix(edit): restore UTF-16 difference offsets
  fix(openai): share GPT-Live browser broker ownership
  fix(edit): prefer-for-of loop in firstDifferenceIndex
  fix(openai): return undefined from cleanup on non-disable reasons
  fix(openai): restrict GPT-Live broker cleanup to plugin disable only
2026-07-31 16:55:13 +08:00
Vincent Koc
337a2b3fc7 fix(openai): discard preconnect audio on close 2026-07-31 16:42:54 +08:00
Vincent Koc
42f1e8dd41 fix(openai): terminalize preconnect lifecycle 2026-07-31 16:42:25 +08:00
Vincent Koc
c30322418e fix(openai): share GPT-Live browser broker ownership 2026-07-31 16:00:31 +08:00
Josh Lehman
2bc694614f fix(telegram): make Codex login codes copyable (#116608) 2026-07-30 22:51:00 -07:00
synthclaw
2f93db39eb fix(openai): return undefined from cleanup on non-disable reasons
Fixes TS7030: Not all code paths return a value.
2026-07-31 00:31:30 -04:00
synthclaw
b9e2d9e81b fix(openai): restrict GPT-Live broker cleanup to plugin disable only
Root cause: the OpenAI plugin registered the process-wide Quicksilver
browser session broker cleanup as an unconditional runtime lifecycle
callback. Session reset/delete/restart cleanup would permanently stop
the shared broker, while talk.catalog continued to report the provider
as ready. All later GPT-Live browser session reservations failed until
process restart.

Fix: the cleanup callback now checks ctx.reason and only tears down
the broker when reason === "disable". Session reset/delete/restart
cleanup leaves the broker running.

Regression test: verifies cleanup is a no-op for reset/delete/restart
and returns a promise for disable.

Fixes openclaw/openclaw#116525
2026-07-31 00:04:45 -04:00
Vincent Koc
7b581eccc1 test(openai): cover GPT-Live delegation output bounds 2026-07-31 01:30:23 +08:00
Vincent Koc
ef4cebb263 fix(openai): bound GPT-Live delegation output 2026-07-31 01:30:23 +08:00
Vincent Koc
835dafb5a8 test(openai): cover out-of-order named mark acks 2026-07-30 16:29:29 +08:00
Vincent Koc
c240b2714d docs(openai): clarify cumulative playback marks 2026-07-30 16:29:29 +08:00
Vincent Koc
ba9e352e95 test(openai): cover sustained unnamed mark acknowledgements 2026-07-30 16:29:29 +08:00
Vincent Koc
750dc99903 fix(openai): preserve playback acknowledgement order 2026-07-30 16:29:29 +08:00
Vincent Koc
0ae46459d8 test(openai): verify bounded playback acknowledgements 2026-07-30 16:29:29 +08:00
Vincent Koc
567d04076a fix(openai): bound realtime playback marks 2026-07-30 16:29:29 +08:00
Vincent Koc
ad1dc60259 fix(openai): scope realtime readiness state 2026-07-30 15:22:02 +08:00
Vincent Koc
21463e6e19 test(openai): verify terminal audio cleanup 2026-07-30 15:22:02 +08:00
Vincent Koc
3133abed32 fix(openai): bound pre-ready realtime audio 2026-07-30 15:22:02 +08:00
Vincent Koc
039efadf59 fix(openai): bound realtime SDP answer reads 2026-07-30 12:31:02 +08:00
Vincent Koc
280c162753 fix(openai): bound GPT-Live sideband startup frames 2026-07-30 12:31:02 +08:00
Vincent Koc
58b4b94304 test(openai): verify superseded consult handoff 2026-07-30 12:11:06 +08:00
Vincent Koc
6b37d46b17 fix(openai): bound GPT-Live delegation work 2026-07-30 12:11:06 +08:00
Vincent Koc
18e107f494 fix(plugins): report request timeouts for stalled response bodies (#116166)
* fix(openai): preserve device-code request timeouts

* fix(msteams): preserve SharePoint upload timeouts

* fix(qqbot): preserve channel API request timeouts
2026-07-30 10:03:39 +08:00
Peter Steinberger
11de91ad03 fix(qa): forward-port beta 6 validation fixes (#116065)
* test(macos): avoid busy-spin timeout fixtures

* fix(qa): forward-port beta 6 validation fixes

* test(qa): complete Telegram run options fixture
2026-07-29 16:21:04 -04:00
Wynne668
aef33cfef7 fix(openai): prevent GPT-Live errors from stalling (#115582)
* fix(openai): bound GPT-Live error responses

* fix(openai): bound realtime error responses

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 01:50:12 +08:00
Peter Steinberger
dc60a9442d feat(talk): support GPT-Live over gateway relay (#115831)
* feat(talk): add GPT-Live gateway relay peer

* fix(talk): ignore duplicate GPT-Live sideband audio

* fix(openai): harden GPT-Live relay startup

* fix(deps): replace vulnerable werift ip helper

* fix(deps): scope werift ip override version

* fix(openai): normalize relay startup errors

* test(ci): register GPT-Live gateway live shard

* fix(talk): tighten GPT-Live relay readiness

* fix(talk): keep relay override helper private

* fix(talk): resolve relay readiness with launch model

* fix(openai): preserve GPT-Live media clock

* fix(talk): align GPT-Live relay readiness and framing

* fix(openai): expire pending GPT-Live reservations

* fix(openai): harden GPT-Live delegation audio

* style(openai): satisfy RTP reorder lint
2026-07-29 12:54:23 -04:00
Peter Steinberger
d16e33e08e fix: restore trustworthy end-to-end QA and cross-channel delivery (#115404)
* fix(qa): repair verified end-to-end and channel regressions

* fix(gateway): make interrupted restart recovery lifecycle-safe

* test(heartbeat): target the canonical recovery session store

* fix(gateway): prioritize durable restart recovery before heartbeat

* fix(qa): preserve safe restart recovery and channel expiry

* fix(qa): fail closed and fence restart recovery

* test(agents): isolate restart recovery timing

* test(agents): prove actual restart retry timing

* fix(qa): report incompatible profile scenarios

* fix(scripts): resolve symlinked docker scheduler entrypoints

* fix(qa): require fresh native test evidence

* fix(heartbeat): fence active restart recovery delivery

* fix(gateway): consume untargeted restart acknowledgements

* fix(qa): satisfy exhaustive hosted validation gates

* fix(agents): fence stopped restart recovery dispatch

* style(agents): format restart recovery lifecycle regression

* test(gateway): isolate context prewarm sidecar lifecycle

* test(qa): make scenario process timeout cleanup deterministic

* fix(qa): stamp synthetic gateway configs with current version

* fix(openai): preserve vision capabilities in stale model catalogs

* test(qa): align profile channel rejection with current main

* fix(openai): forward supported moderation for image edits

* fix: restore latest-main CI and image edit documentation

* fix(qa): retain relocated code-mode evidence validation

* fix(openai): expose GPT-5.4 vision in static catalog

* fix(pricing): honor explicit model cost overrides

* test(pricing): keep isolated provider regressions deterministic

* fix(openai): inherit transport for discovered static models

* fix(gateway): honor agent-owned static image capabilities

* test(gateway): preserve prepared-snapshot attachment races

* test(gateway): isolate subagent persistence failure injection

* test(gateway): exercise concurrent voice replay admission

* fix(gateway): restore stale model image capabilities

* fix(agents): publish configured model vision capabilities

* fix(agents): isolate detached media transcript ownership

* test(agents): preserve generic transcript lock regression

* fix(gateway): require proven static model route identity

* fix(qa): accept bounded full-size generated image attachments

* fix(qa): require fresh script producer evidence

* test(qa): prove native E2E scenario execution
2026-07-29 12:45:27 -04:00
Vincent Koc
99b5df0fd2 fix(openai): satisfy realtime lifecycle lint 2026-07-29 17:57:59 +08:00
Vincent Koc
5e0a75f0e5 fix(openai): close realtime lifecycle races 2026-07-29 17:57:59 +08:00
Vincent Koc
1cc2e28b5b chore(openai): keep lifecycle types internal 2026-07-29 17:57:59 +08:00
Vincent Koc
3bf40870ad refactor(openai): apply lifecycle to realtime bridge 2026-07-29 17:57:59 +08:00
Vincent Koc
dd0e416303 refactor(openai): apply lifecycle to GPT-Live bridge 2026-07-29 17:57:59 +08:00
Vincent Koc
61cadc1459 refactor(openai): add realtime voice lifecycle 2026-07-29 17:57:59 +08:00
Peter Steinberger
4232126bba chore: update dependencies across workspace (#115677)
* chore(deps): update dependencies

* fix(deps): restore CI compatibility
2026-07-29 05:16:42 -04:00