Commit Graph

688 Commits

Author SHA1 Message Date
Vincent Koc d53772e984 fix(google): signal fresh realtime sessions 2026-08-02 01:29:18 +08:00
Vincent Koc d60584ee2d test(google): cover ready callback close precedence 2026-08-02 01:25:41 +08:00
Vincent Koc 814a2ebb61 fix(google): flush lazy prompts on provider readiness 2026-08-02 01:22:33 +08:00
Vincent Koc a38dc473dc fix(google): make continuity reset generation-idempotent 2026-08-02 01:06:14 +08:00
Vincent Koc 3a8afb2a71 Merge origin/main into fix/google-realtime-lazy-queue-bounds-20260801
* origin/main: (44 commits)
  fix(plugins): compare authoring metadata by canonical JSON semantics (#117486)
  fix(doctor): reject contradictory lint check selectors (#117495)
  fix(anthropic): honor configured model pricing (#117275)
  refactor(plugins): reuse scoped loader for capability discovery (#117373)
  refactor(test): derive changed tooling routes (#117407)
  fix(kova): clarify extension memory attribution (#117500)
  fix(imessage): sanitize private context on every outbound path (#117501)
  fix(ci): align release validation fixtures (#117494)
  fix(talk): preserve owner authorization in realtime consults (#114163)
  fix(ui): surface aborted-run diagnostics (#117497)
  perf(models): skip Ollama row runtime loading (#117465)
  fix(cli): report user profile command outcomes (#117466)
  fix(active-memory): detect Chinese recall intent in escalate mode (#117338) (#117419)
  fix(workboard): ignore caller-supplied archivedAt when creating a card (#116412)
  fix(models): avoid waiting on promotions before listing models (#117322)
  refactor(plugins): inherit shared package boundary settings (#117474)
  fix(systemd): parse all inline environment assignments (#117484)
  feat(web-fetch): add tools.web.fetch.headers for operator request headers (#115545)
  fix(qa): Slack progress lane misses successful delivery (#117391)
  refactor: deduplicate Codex prompt snapshot fixtures (#117476)
  ...
2026-08-02 01:02:06 +08:00
Vincent Koc 4f2429a817 merge: refresh realtime continuity onto main
* origin/main: (41 commits)
  fix(plugins): compare authoring metadata by canonical JSON semantics (#117486)
  fix(doctor): reject contradictory lint check selectors (#117495)
  fix(anthropic): honor configured model pricing (#117275)
  refactor(plugins): reuse scoped loader for capability discovery (#117373)
  refactor(test): derive changed tooling routes (#117407)
  fix(kova): clarify extension memory attribution (#117500)
  fix(imessage): sanitize private context on every outbound path (#117501)
  fix(ci): align release validation fixtures (#117494)
  fix(talk): preserve owner authorization in realtime consults (#114163)
  fix(ui): surface aborted-run diagnostics (#117497)
  perf(models): skip Ollama row runtime loading (#117465)
  fix(cli): report user profile command outcomes (#117466)
  fix(active-memory): detect Chinese recall intent in escalate mode (#117338) (#117419)
  fix(workboard): ignore caller-supplied archivedAt when creating a card (#116412)
  fix(models): avoid waiting on promotions before listing models (#117322)
  refactor(plugins): inherit shared package boundary settings (#117474)
  fix(systemd): parse all inline environment assignments (#117484)
  feat(web-fetch): add tools.web.fetch.headers for operator request headers (#115545)
  fix(qa): Slack progress lane misses successful delivery (#117391)
  refactor: deduplicate Codex prompt snapshot fixtures (#117476)
  ...
2026-08-02 01:00:52 +08:00
Vincent Koc 877843422e fix(google): avoid dropping first realtime voice input (#117450)
* commit '2ccb11ac28daea1939e6666c1a0a3d346159d9fe':
  test(google): satisfy realtime live lint
  test(google): wait for realtime response drain
  test(google): diagnose realtime live readiness
  test(google): prove realtime ready owns live session
  test(google): cover realtime setup activation ordering
  fix(google): gate realtime readiness on session ownership
2026-08-02 00:59:02 +08:00
Vincent Koc 9cb647e735 test(google): prove lazy realtime prompt delivery 2026-08-02 00:15:41 +08:00
Peter Steinberger 568ea29d2e refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Jesse Merhi d3f4530ce8 feat(google): allow operator headers on Gemini web search (#115549)
* feat(google): support Gemini web search headers

* fix(google): validate Gemini search headers

* docs(changelog): credit Gemini headers

* test(secrets): route config contracts through collector

* chore: remove release-owned changelog entry

* test(google): cover resolved search headers
2026-08-02 01:41:09 +10:00
Peter Steinberger 4b1d397221 fix(google): bound realtime browser activation expiry 2026-08-01 08:37:22 -07:00
Vincent Koc 9789093c26 fix(google): signal fresh realtime continuity 2026-08-01 23:08:57 +08:00
Vincent Koc 85d959ee61 test(google): satisfy realtime live lint 2026-08-01 22:58:29 +08:00
Vincent Koc b1a0ee8539 test(google): wait for realtime response drain 2026-08-01 22:51:35 +08:00
Vincent Koc b2320c84ee fix(google): bound lazy realtime user messages 2026-08-01 22:47:12 +08:00
Vincent Koc 6f3f662a86 test(google): diagnose realtime live readiness 2026-08-01 22:46:14 +08:00
Vincent Koc 11d53bebfe test(google): prove realtime ready owns live session 2026-08-01 22:36:06 +08:00
Vincent Koc 9ba8ffad5d test(google): cover realtime setup activation ordering 2026-08-01 22:33:02 +08:00
Vincent Koc ee61f725f1 fix(google): gate realtime readiness on session ownership 2026-08-01 22:33:02 +08:00
Peter Steinberger 693ed336df fix(google): invalidate unsafe realtime session resume tokens 2026-08-01 03:56:33 -07:00
Vincent Koc fcc20d14a3 fix(google): stop scraping Gemini CLI OAuth credentials (#117167)
* fix(google): delegate Gemini OAuth refresh to the CLI

* refactor(google): remove retired Gemini OAuth stack

* chore(ci): prune retired Google OAuth baseline

* fix(google): retire Gemini CLI usage telemetry

* fix(google): remove retired usage token parser
2026-08-01 11:36:24 +08:00
Vincent Koc 541593dcb4 merge: refresh google live transcript bound onto main
* commit '7e78de747b8a64d52f30aee948b697bf4c528691': (359 commits)
  refactor(ui): replace duplicated locale bundles with canonical translation memory (#117157)
  fix(ui): retire stale Gateway event-log observers (#117169)
  fix(agents): keep subagent status consistent after restart and large fan-outs (#117141)
  refactor(ui): unify filtered session list ownership (#117158)
  refactor(agents): consolidate context budgets and compaction recovery (#117149)
  fix(net-policy): redact sig and x-* auth params in URLs and bodies (#116957)
  refactor(agents): remove duplicate generated-media delivery fallbacks (#117150)
  refactor(reply): unify turn lifecycle state ownership (#117145)
  fix(ui): preserve emoji agent avatar initials (#104912)
  refactor(auto-reply): unify command and directive ownership (#117143)
  refactor(plugins): consolidate descriptor and startup ownership (#117146)
  fix(messages): reply actions leak citation markers and reply/poll answers draw the no-reply fallback (#116909)
  fix(slack): let durable ingress retry transient thread lookups (#117135)
  refactor(doctor): consolidate shipped state migration ownership (#117142)
  fix(ai): Codex stream shows internal parser text on a malformed frame (#116966)
  fix: guard every migrated session accessor path (#117140)
  fix(terminal): measure unicode display width consistently (#117062)
  fix(openai): clear ChatGPT SSE fallback per session (#117123)
  fix(mistral): reject incomplete streamed tool terminals (#117137)
  fix(ai): preserve structured chat content and refusals (#117136)
  ...
2026-08-01 10:45:53 +08:00
Peter Steinberger 3cadc08593 fix(google): restore canonical Gemini and Vertex provider invariants (#117042)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 14:31:34 -07:00
Peter Steinberger d2047364a8 fix(google): preserve streamed termination and usage facts (#116822)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 05:29:40 -07:00
Vincent Koc c163f5272a merge: refresh google live transcript bound onto main
* origin/main: (52 commits)
  fix(setup): isolate failed channel probes and report doctor diagnostics (#116824)
  fix(telegram): preserve edit previews, message cache, and group history (#116818)
  fix(whatsapp): preserve interactive replies and normalize media MIME (#116816)
  fix(file-transfer): keep fetched media attachable in sandboxed replies (#116400)
  fix(browser): preserve doctor JSON failure status (#116811)
  fix(ollama): stream native tool call lifecycle (#116809)
  fix(matrix): preserve message-tool room thread routing (#116802)
  fix(ui): restore mobile navigation and accessible usage filters (#116751)
  fix(ui): coalesce profile identity refresh (#116764)
  fix(ui): preserve chat attachments and run ownership (#116752)
  fix(plugins): clean up partial service startup once (#116804)
  fix(qa-channel): enforce message and thread lifecycle ownership (#116801)
  fix(qa-lab): support groups and isolate thread timelines (#116803)
  feat(plugins): externalize Voyage embeddings (#116785)
  fix(outbound): strip echoed inbound metadata before delivery (#50520)
  fix(anthropic-vertex): correct multi-region endpoints (#116757)
  fix(ui): scope agent cron jobs and surface model catalog failures (#116771)
  fix(ui): preserve scoped session state across updates (#116772)
  fix(build): fail closed on symlinked build output roots (#116705)
  fix(commands): validate native settings and preserve Telegram ingress outcomes (#116773)
  ...
2026-07-31 20:20:01 +08:00
Peter Steinberger 0d40cfbb53 fix(google): surface blocked Gemini prompts (#116756)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 04:29:06 -07:00
Vincent Koc 74918607d1 test(google): cover live transcript overflow 2026-07-31 18:20:45 +08:00
Vincent Koc 4f65b7e8fe fix(google): bound live transcript accumulation 2026-07-31 18:20:45 +08:00
Vincent Koc 0ce230c861 test(google): cover expired CLI OAuth compatibility 2026-07-31 16:40:38 +08:00
Vincent Koc 091bc7f9ed Merge remote-tracking branch 'origin/main' into experiment/google-cli-supported-paths
* origin/main: (115 commits)
  test: type session request parameters (#116713)
  fix: retain event invalidation for pagination
  docs: note queued session refresh fix
  fix: preserve queued session refresh options
  fix(exec): require approval for abbreviated inline eval flags [AI] (#116529)
  fix: keep owner-only tools out of non-owner skill commands [AI] (#116532)
  fix(tui): require a fresh agent roster (#116715)
  fix(memory-wiki): preserve user edits when rolling back ChatGPT imports (#116517)
  fix(agents): cron failures preserve timeout and cancellation reasons (#116566)
  fix(release): unblock beta validation workflows (#116708)
  fix(ci): discover frozen target startup benchmark cases (#116711)
  fix(session): preserve reset message payloads (#116195)
  fix(qa): tolerate loaded-runner bus delivery stalls (#116448)
  improve(ci): rebalance embedded agent test configs (#116436)
  fix(browser): return committed trace path (#116702)
  fix(qa): exceed Slack table aggregate limit in fallback probe (#116447)
  fix(qa): use built plugin tools server (#116442)
  fix(test): keep memory FD repro config valid (#116698)
  fix(telegram): keep queued tool progress in one message (#116685)
  fix(qa): stop waiting on yielded fanout runs (#116440)
  ...

# Conflicts:
#	src/system-agent/setup-inference-detect.ts
#	ui/src/e2e/model-setup.e2e.test.ts
2026-07-31 16:40:33 +08:00
Vincent Koc 326a4831cc test(google): cover realtime connection ownership 2026-07-31 11:47:59 +08:00
Vincent Koc cc62f37d6e fix(google): own realtime connection attempts 2026-07-31 11:47:59 +08:00
Vincent Koc 9e965073e5 Merge remote-tracking branch 'origin/main' into experiment/google-cli-supported-paths
* origin/main: (168 commits)
  fix(plugins): keep registry sqlite root consistent (#116427)
  fix(cli): keep Gateway auth failures parseable in JSON (#116597)
  fix(trajectory): preserve prompts in oversized events (#116220)
  test(buzz): add live QA Lab channel lane (#116298)
  chore(i18n): refresh native locales (#116567)
  feat: add OpenClaw TUI prototype skill (#116583)
  fix(update): accept concrete versions selected by ranges (#116585)
  fix(agents): preserve locked session model routes
  test(qa-lab): preserve Matrix fault proxy identity
  fix(ci): extend OpenAI live profile setup budget (#116580)
  fix: prevent configured models from stalling startup (#116553)
  fix(cli): close MCP listener after one-shot commands
  fix(auto-reply): keep explicit NO_REPLY silent (#116548)
  test(discord): cover deferred backpressure terminals
  fix(discord): cancel backpressured realtime playback
  test(discord): cover realtime output backpressure
  fix(codex): add remote WebSocket heartbeat and reconnect (#116135)
  fix(macos): wait for the current reconnect snapshot (#116550)
  fix(outbound): recognize current-source message-tool sends (#116560)
  fix(voice-call): type cancelled consult outcomes
  ...

# Conflicts:
#	extensions/google/setup-api.test.ts
#	ui/src/e2e/model-setup.e2e.test.ts
2026-07-31 09:30:03 +08:00
Josh Avant ce67ffb70e feat(agents): add tool-free isolated completion (#114343)
* feat: add isolated pure-inference completion

* fix(google): block ambient system prompt writes

* docs: refresh generated map
2026-07-30 13:24:45 -05:00
Vincent Koc c7d1205d51 fix(google): guide broken CLI profiles to supported auth 2026-07-30 22:40:20 +08:00
Vincent Koc c568f93b03 fix(google): retire Gemini CLI OAuth setup 2026-07-30 16:33:33 +08:00
Vincent Koc 0370fce7ff fix(test): isolate Google embedding batch timeout (#116161) 2026-07-30 10:11:29 +08:00
Peter Steinberger 5bfc65d7f4 refactor: remove 3,543 lines of redundant runtime and tests (#115961)
* refactor: remove 3,543 lines of redundant runtime and tests

* refactor: ratchet production environment variable budget
2026-07-29 11:43:41 -04:00
Monkey-wusky 79e0b559fe fix(google): cancel unread response body on video download error (#110045)
* fix(google): cancel unread response body on video download error

* fix(google): safely cancel failed streaming video downloads

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-29 09:00:04 -04: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
Peter Steinberger ddd0b48673 refactor: remove 3,527 lines of runtime and test duplication (#115626)
* refactor: remove obsolete runtime and test duplication

* test: preserve typed cron and realtime fixtures
2026-07-29 02:21:20 -04:00
Vito Cappello 33dae97b81 fix(agents): restore subagent completion delivery on CLI runtimes (#115422)
* fix(agents): deliver tool-free CLI completions

* fix(agents): enforce empty Gemini CLI tool caps

* refactor(agents): remove ineffective Gemini admin settings

* fix(agents): block inherited Gemini MCP servers

* fix(agents): enforce Gemini MCP cap via argv

---------

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
2026-07-28 21:07:02 -05:00
Peter Steinberger d5907ca619 fix(google): keep static compat flags on discovered Gemini id variants (#114831) 2026-07-27 21:13:44 -04:00
Peter Steinberger b5bb29a36e fix(code-mode): preserve direct tools and secure suspended runs (#114778)
Preserve trusted policy-required message delivery and native image/computer tools across Code Mode catalogs and provider transports. Keep preferred Gemini capability metadata during live discovery, escape MCP declaration keywords, and reject suspended-run resumes with missing owner identity. Add before-and-after regressions for each user path. Closes #114753.
2026-07-27 18:47:33 -04:00
Peter Steinberger 7394262cd1 feat: per-model code-mode capability flags with an "auto" master-switch tier (#114695)
* feat(tools): per-model code-mode capability flags and auto master-switch tier

* feat(anthropic): flag claude-sonnet-4-6 as code-mode preferred

* revert(anthropic): drop claude-sonnet-4-6 from the code-mode preferred set

* test(anthropic): type the manifest compat field in the catalog contract test

* fix(anthropic): carry catalog compat onto hand-built forward-compat model rows
2026-07-27 16:47:41 -04:00
Peter Steinberger 17ed69e103 fix(agents): preserve prompt caches across tool discovery (#114572) 2026-07-27 09:58:19 -04:00
Peter Steinberger 91b1f9676f fix(media): reject malformed provider binary payloads (#114514) 2026-07-27 06:39:47 -04:00
zengLingbiao a8e52b49a0 fix(google): reject malformed base64 audio in Gemini TTS responses (#114041)
* fix(google): reject malformed base64 audio in Gemini TTS responses

* fix(media): validate provider audio payloads

Co-authored-by: zengLingbiao <zeng.lingbiao@xydigit.com>

* fix(xai): terminate malformed realtime audio

Co-authored-by: zengLingbiao <zeng.lingbiao@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-27 04:17:35 -04:00
Peter Steinberger 8e4b6623e5 test(providers): consolidate streaming and model contract cases (#114336) 2026-07-27 01:36:32 -04:00
Peter Steinberger caa01f4f5b refactor(providers): table-driven forward compat and manifest-derived contract tests (#113940)
* refactor(providers): share family forward compat resolution

* test(providers): derive runtime contracts from manifests

* test(providers): validate manifest fixture inputs

* refactor(zai): narrow forward compat inputs
2026-07-25 18:09:37 -07:00