Commit Graph

863 Commits

Author SHA1 Message Date
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
Vincent Koc c904881f7d test(openai): cover gateway relay callback races 2026-08-02 19:36:22 +08:00
Vincent Koc 8c859e9606 fix(openai): preserve gateway relay error precedence 2026-08-02 19:34:57 +08:00
Vincent Koc 0f2864f86d test(openai): pin reconnect terminal precedence 2026-08-02 17:25:01 +08:00
Vincent Koc 3ba1f31c55 fix(openai): reset fresh realtime reconnects 2026-08-02 17:24:12 +08:00
Vincent Koc 4fc66dc3a0 test(openai): type outbound realtime items 2026-08-02 17:18:28 +08:00
Vincent Koc a90a688ca5 test(openai): cover terminal tool-call ownership
Co-authored-by: Peter Steinberger <steipete@users.noreply.github.com>
2026-08-02 17:05:14 +08:00
Vincent Koc 66afa21fcf fix(openai): own terminal realtime tool calls
Co-authored-by: Peter Steinberger <steipete@users.noreply.github.com>
2026-08-02 17:05:13 +08:00
Peter Steinberger 131b9e3904 refactor(voice): share realtime session lifecycle (#117865)
* refactor(voice): share realtime session lifecycle

* test(voice): normalize abort rejection
2026-08-01 23:35:57 -07:00
Yiğit ERDOĞAN 65d64818bb fix(tts): reject non-audio speech synthesis responses (#117345)
* fix(tts): reject non-audio speech synthesis responses

A successful HTTP 200 carrying a JSON error, an HTML sign-in page, or a
zero-byte body was returned as an audio buffer and written out as a playable
attachment. Route the xAI, Gradium, and Azure Speech synthesizers through the
shared binary-response contract that the OpenAI-compatible speech provider
already uses, so the media kind is validated before the body is read and the
unread body is canceled when it is rejected.

Each provider keeps its own overflow wording, so operator-facing messages are
unchanged apart from the new malformed-response rejection.

* test(azure-speech): prove the audio guard closes a real upstream socket

Adds a loopback node:http server that answers 200 with a JSON content type
and then never ends the body, driven through the real azureSpeechTTS path
with the real global fetch and no stubbed transport. Without the guard the
synthesis hangs to its timeout with the socket still open; with it the
response is rejected immediately and the server observes the close.

* fix(openai): reject malformed binary speech responses

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-01 16:13:15 -07:00
Wynne668 d03a43a820 fix(openai): keep embedding batch waits within timeout (#111675)
* fix(openai): keep embedding batch waits within timeout

* test(openai): isolate batch poll timers from provider body guards

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-01 15:17:36 -07:00
Vincent Koc 657450148c Merge origin/main into fix(openai): retain gateway startup audio
* origin/main:
  fix(whatsapp): normalize future-proof QA poll and video note ingress (#117579)
  fix(perf): separate warm and first-device health probes (#117525)
  fix(ci): repair plugin prerelease validation (#117562)
  test(openai): parse realtime websocket frames safely
  test(ui): cover reentrant Talk meter cleanup
  fix(ui): reclaim reentrant Talk audio meters
  fix(openai): own queued realtime audio buffer snapshots
2026-08-02 03:35:47 +08:00
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 75fc973690 test(openai): satisfy live proof lint 2026-08-02 03:20:30 +08:00
Vincent Koc e3020ac33c Merge origin/main into fix(openai): retain gateway startup audio
* origin/main:
  perf(gateway): mark recovery before model preparation (#117544)
  fix(openai): keep embedding identity stable across upgrades (#117557)
  fix(googlechat): drop invalid thread resource names before send (#108324)
  fix(skills): preserve profile in ClawHub command hints (#117555)
  fix(cli): explain filtered plugin policy without unsafe recovery (#117556)
  fix(irc): strip markdown from outbound text (#112961)
  refactor(plugins): consolidate registry snapshots (#117561)
  fix(plugins): fail blocked enable commands (#117536)
  test(secrets): dedupe runtime state fixtures (#117563)
2026-08-02 03:07:14 +08:00
Vincent Koc da94915d06 test(openai): prove gateway startup audio delivery 2026-08-02 03:07:01 +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
Vincent Koc 7eeac6b004 Merge remote-tracking branch 'origin/pr-117057-head' into maint-pr-117057-quicksilver-live-20260801
* origin/pr-117057-head:
  test(openai): isolate gateway audio pipeline proof
  fix(openai): unify gateway microphone buffering
  fix(openai): preserve gateway microphone startup audio
2026-08-02 02:39:35 +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