Wynne668 and GitHub
72f77364b3
fix(google): keep embedding batch waits within timeout ( #111674 )
2026-07-20 11:46:06 +03:00
Peter Steinberger and GitHub
c7e7ac2728
refactor: remove expired plugin compatibility surfaces ( #111451 )
...
* docs(secrets): remove retired web credential paths
* refactor(web): remove retired provider compatibility paths
* refactor(providers): delete retired compatibility routes
* refactor(secrets): remove retired credential aliases
* refactor(plugin-sdk): delete retired compatibility surfaces
* docs(plugin-sdk): remove retired migration guidance
* chore(plugin-sdk): refresh rebased surface budgets
* chore(plugin-sdk): refresh API removal baseline
* refactor(compat): migrate retired internal callers
* chore(plugin-sdk): refresh current-main baselines
* test(config): migrate plugin-owned secret assertions
* test(gateway): narrow plugin secret refs
* fix(plugin-sdk): preserve private boundary type identity
* chore(compat): remove stale sweep references
* chore(lint): lower max-lines budget
* refactor(secrets): remove unused web helper
* build(plugin-sdk): drop removed compat entries
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): use Linux API baseline hash
* fix(plugin-sdk): preserve private bundled build entries
* fix(plugin-sdk): package private runtime facades
* fix(plugins): preserve external credential contracts
2026-07-19 11:04:48 -07:00
Peter Steinberger and GitHub
3fd3ad8301
fix(ci): restore plugin prerelease validation ( #110787 )
...
* test: align plugin prerelease assertions
* test: remove stale vitest import
2026-07-18 17:00:15 +01:00
Peter Steinberger and GitHub
349f78776d
fix(models): refresh bundled provider catalogs ( #109410 )
...
* fix(models): refresh bundled provider catalogs
* docs(models): refresh generated docs map
* fix(xiaomi): keep provider helper private
* chore(release): defer catalog release note
2026-07-16 16:47:25 -07:00
Peter Steinberger and GitHub
0631252f4b
refactor: reduce plugin SDK test import overhead ( #109333 )
...
* refactor(test): split plugin SDK test helpers
* fix(test): align plugin SDK test subpaths
2026-07-16 13:55:23 -07:00
Peter Steinberger and GitHub
04c31f453c
fix: reject oversized credential files in remaining readers ( #109260 )
...
* fix(security): bound remaining credential file reads
* fix(anthropic-vertex): keep ADC helper type private
2026-07-16 11:33:18 -07:00
Peter Steinberger and GitHub
e2fed32131
fix(onboarding): explain how to get provider tokens and revive logged-out CLI candidates ( #108739 )
...
* fix(onboarding): explain how to obtain provider tokens in auth setup copy
* fix(onboarding): add per-CLI login remediation to detected candidate details
2026-07-16 01:12:15 -07:00
73ada8fd4c
fix(ai): preserve tool-result text for payload-less media ( #108697 )
...
* fix(ai): require payload bytes for tool media
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com >
Co-authored-by: 0668000539 <shu.zongyu@xydigit.com >
* chore: keep release notes out of PR
---------
Co-authored-by: 0668000539 <shu.zongyu@xydigit.com >
2026-07-16 00:42:36 -07:00
Peter Steinberger and GitHub
d3dcb36895
refactor(deadcode): tighten Google and xAI extension roots ( #108523 )
2026-07-15 17:34:53 -07:00
1c2bcbb56f
fix: classify provider code-only failover errors ( #95729 )
...
* fix(agents): classify provider-native failover errors
Co-authored-by: Altay <altay@hey.com >
* fix(agents): scope provider failover codes
* docs(changelog): credit provider failover fix
* style(anthropic): format failover classifier
* docs(changelog): defer release-owned entry
---------
Co-authored-by: Pick-cat <266665499+Pick-cat@users.noreply.github.com >
Co-authored-by: Altay <altay@hey.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 04:07:51 -07:00
Peter Steinberger and GitHub
7b9a72fc4f
refactor(extensions): trim small plugin exports ( #107784 )
...
* refactor(workspaces): privatize internal plugin surfaces
* refactor(canvas): trim internal host exports
* refactor(qa-channel): privatize media URL validation
* refactor(google): remove web search test facade
* refactor(xai): remove response helper test facades
* chore(deadcode): shrink extension export baseline
2026-07-14 14:38:08 -07:00
Peter Steinberger and GitHub
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
4341d85268
refactor(google): use GenAI runtime enums
2026-07-14 01:51:34 -07:00
Peter Steinberger
9b8fa12f25
refactor(google): use genai session type
2026-07-13 13:28:06 -07:00
6c5084f1ad
feat(xai): add realtime voice provider ( #106267 )
...
* feat(xai): add realtime voice provider
Co-authored-by: Vitor Cepeda Lopes <vitor@vitorcepedalopes.com >
* fix(xai): satisfy realtime voice validation
* fix(xai): harden realtime relay boundaries
* chore: drop release-owned changelog edit
* chore(i18n): refresh native voice catalogs
* chore(i18n): refresh Control UI raw-copy baseline
* chore(plugin-sdk): refresh API baseline hashes
* chore(i18n): use canonical main catalogs
* chore(i18n): refresh realtime voice source inventory
* chore: refresh xai voice landing head [skip ci]
* chore: refresh integrated protocol artifacts [skip ci]
---------
Co-authored-by: Vitor Cepeda Lopes <vitor@vitorcepedalopes.com >
2026-07-13 05:17:24 -07:00
d33254b7ec
fix(google): bound realtime browser token requests ( #106034 )
...
* fix(google): bound realtime browser token requests
* fix(google): satisfy realtime timeout checks
* test(google): use placeholder browser key
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 01:36:19 -07:00
Vincent Koc and GitHub
6f9a607b90
refactor(google): remove obsolete Gemini testing alias ( #105400 )
2026-07-12 15:36:04 +02:00
Peter Steinberger and GitHub
81941f2d68
test: enable noUncheckedIndexedAccess for extension tests ( #105343 )
2026-07-12 12:48:22 +01:00
Peter Steinberger and GitHub
218dcd815a
feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) ( #105132 )
...
* fix(extensions): make indexed access explicit across channel plugins
Transport-payload-safe burn-down: malformed Telegram/Discord/QQ/LINE
and sibling channel input keeps existing skip paths; no synthesized
fields, no new throws in delivery loops. Zalo escape sentinels preserve
literal matches instead of undefined replacements.
* fix(extensions): make indexed access explicit across provider and memory plugins
Stream and model iteration, tool-block guards, capture guards, and
sparse accumulators; singleton model reads carry named invariants.
* fix(extensions): make indexed access explicit across tooling plugins, flip the extensions lane
Remaining plugins (oc-path, qa-lab, browser, logbook, and siblings) plus
the tsconfig.extensions.json flag flip. Cleanup: logbook sampleFrames
NaN index at max=1, QA retry clamp at non-positive attempts, dead Canvas
probe and OpenShell no-op slice removed, twitch test setup leak excluded
from the prod lane.
* refactor(plugin-sdk): expose expectDefined via a focused SDK subpath
Extensions imported @openclaw/normalization-core directly, crossing the
external-plugin packaging boundary (it only worked because the runtime
builder bundles undeclared workspace helpers). expect-runtime joins the
canonical entrypoints JSON, generated exports, API baseline, docs, and
subpath contract test; all 78 extension imports now use the SDK seam.
Two scanner-shaped locals renamed for review-bundle hygiene.
* chore(plugin-sdk): raise surface budgets for the expect-runtime subpath
One new entrypoint with one callable export, added intentionally as the
packaging-honest seam for extension invariant helpers.
2026-07-12 09:17:31 +01:00
dfa9569ca7
fix(google): exclude versioned Gemini client header from memory identity ( #104759 )
...
* fix(google): exclude versioned Gemini client header from memory identity
* test(google): focus memory identity coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 17:06:21 -07:00
fb702e5cae
fix(memory): harden embedding batch workflows ( #103472 )
...
* fix(memory): harden embedding batch workflows
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com >
Co-authored-by: ben.li <li.yang6@xydigit.com >
* test(memory): align batch redaction expectation
* test(memory): tighten batch dependency types
* refactor(google): clarify batch state control flow
* test(google): make batch stage fallback lint-safe
* build(plugin-sdk): refresh memory batch surface budget
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: ben.li <li.yang6@xydigit.com >
2026-07-11 16:43:58 -07:00
Peter Steinberger and GitHub
2a479bd4ac
fix(ci): make owner-approved Testbox landing reliable ( #104726 )
...
* fix(ci): isolate nested pnpm verification
* test(google): verify OAuth abort signal forwarding
* docs: treat owner land requests as Testbox approval
2026-07-11 15:04:25 -07:00
Peter Steinberger and GitHub
8310c565e0
feat(onboarding): add provider sign-in ( #104502 )
...
* feat(onboarding): add provider sign-in flows
* fix(oauth): keep callback compatibility
* fix(onboarding): reconcile lost auth outcomes
* fix(onboarding): lock auth cancellation at commit
* fix(onboarding): close provider auth lifecycle gaps
* fix(onboarding): make terminal auth failures dismissable
* fix(onboarding): satisfy native app checks
* fix(onboarding): reconcile absent auth sessions
* fix(onboarding): bound provider auth sessions
* fix(onboarding): open provider auth links safely
* test(onboarding): use scanner-safe auth fixtures
* revert: keep established onboarding auth fixtures
* fix(onboarding): close provider auth cancellation gaps
* fix(gateway): retain uncollected wizard results
* fix(onboarding): bind provider reconciliation attempt
* fix(i18n): avoid guessing moved string identities
* style(onboarding): normalize remote auth choices efficiently
* fix(protocol): refresh optional provider auth choices
* test(gateway): cover provider auth dispatch order
* refactor(macos): split onboarding setup support
* fix(macos): refresh merged native checks
2026-07-11 13:00:17 -07:00
18e8713b99
fix(google): stream Gemini batch JSONL output instead of res.text() ( #102974 )
...
* fix(google): stream Gemini batch JSONL output instead of res.text()
* fix(google): avoid Promise executor return in batch stream test
---------
Co-authored-by: NIO <nocodet@mail.com >
2026-07-11 13:48:13 -04:00
Peter Steinberger and GitHub
96f0983a85
fix(onboarding): skip setup for configured gateways and require inference first ( #102883 )
...
* fix(crestodian): keep onboarding RPCs restart-safe
* fix(profiles): isolate approval state migrations
* fix(crestodian): bypass configured gateway setup
* test(crestodian): type onboarding mocks
* fix(onboarding): require inference before Crestodian
* fix(onboarding): enforce verified inference handoff
* fix(macos): reset setup on gateway endpoint edits
* chore(i18n): refresh native source inventory
* fix(gateway): keep socket on request cancellation
* test(packaging): require workspace templates
* fix(onboarding): bind setup to verified inference
* fix(onboarding): align inference gate contracts
* fix(crestodian): classify concurrent policy rejection
* test(crestodian): expect registry restoration
* fix(onboarding): bind setup to configured gateways
* fix(codex): preserve startup phase deadlines
* test(crestodian): match fail-closed policy ordering
* test(onboarding): assert bound gateway handoff
* fix(codex): bind runtime resolution to spawn cwd
* test(crestodian): assert policy rejection order
* fix(cli): preserve gateway routing across restarts
* fix(macos): fail closed during gateway edits
* test(macos): cover gateway route generation races
* chore: keep release notes out of onboarding PR
* fix(ci): refresh onboarding generated checks
* style(swift): align gateway channel formatting
* fix(ci): refresh plugin SDK surface budgets
* fix(ci): resync native string inventory
* refactor(swift): split gateway channel support
* test(doctor): isolate plugin compatibility registry
* test(macos): isolate gateway onboarding fixtures
* test(macos): assert gateway lease health ordering
* fix(codex): reconcile computer-use startup changes
2026-07-11 10:25:14 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
Peter Steinberger and GitHub
d9f9d339ea
fix(google): retry transient Lyria no-audio responses ( #103326 )
...
* fix(google): retry transient Lyria no-audio responses
* fix(google): bound Lyria retry timeout
2026-07-10 06:18:37 +01:00
e8fcc93cd3
fix(talk): await realtime tool result delivery ( #103268 )
...
* fix(talk): await realtime tool result delivery
* fix(talk): terminally cancel queued results
* chore: keep release changelog out of PR
---------
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-09 20:11:20 -07:00
db0f6f09dc
fix(google): restore image tool results for prefixed Gemini 2 models ( #102382 )
...
* fix(google): handle prefixed Gemini 2 image fallback
* test(google): cover prefixed Gemini 3 image responses
* docs(changelog): note prefixed Gemini fallback
Co-authored-by: 李兰 0668001394 <li.lan3@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 15:09:05 +01:00
e5259fa8bb
fix(google): add timeout to Vertex ADC token refresh ( #102050 )
...
* fix(google): add timeout to Vertex ADC token refresh
* test(google): consolidate ADC timeout proof
* fix(google): bound all ADC token refreshes
* test(google): observe ADC timeout before advancing time
* fix(google): keep dependency timeout claims exact
* fix(google): bound library-managed ADC refreshes
* fix(google): recover after ADC refresh timeout
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 13:46:33 +01:00
Peter Steinberger and GitHub
07a7d596ff
feat(providers): add Qwen 3.6 Flash and Gemini 3.1 Live ( #102791 )
...
* feat(providers): add current Qwen and Gemini Live models
* fix(google): align live thinking enum type
* fix(google): align live thinking enum type
2026-07-09 13:37:16 +01:00
Vishal Dharmadhikari and GitHub
d708df47a3
improve(google): identify OpenClaw Gemini API traffic ( #101834 )
2026-07-07 16:09:02 -06:00
Vincent Koc and GitHub
b88f80940a
refactor: localize internal implementation symbols ( #101831 )
2026-07-07 10:23:36 -07:00
e591dcfa82
fix(voice-call): persist complete realtime transcripts ( #84161 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Happy Dog Support Bot <bot@happydog.digital >
2026-07-07 14:13:02 +01:00
1f6ddb5df0
feat(models): add Claude Sonnet 5 support ( #98254 )
...
* feat(models): add Claude Sonnet 5 support
Co-authored-by: Ariel Bravy <ariel@vortexradar.com >
* fix(models): align Sonnet 5 validation baselines
* fix(models): satisfy Sonnet 5 CI contracts
* fix(models): enforce Sonnet 5 provider contracts
* docs(changelog): defer Sonnet 5 release note
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Ariel Bravy <ariel@vortexradar.com >
2026-07-07 00:05:35 +01:00
cac05ff695
Fix realtime voice-call barge-in cancellation ( #90749 )
...
* fix voice call realtime barge-in cancellation
* chore: retrigger PR checks
* chore: retrigger PR checks
* fix voice call realtime barge-in fallback
* fix voice call provider barge-in precedence
* fix voice call speech-started fallback contract
* fix late provider barge-in queued audio clear
* fix realtime handler test raw message parsing
* chore rerun ci
* Document realtime speech-start capability
* fix voice call barge-in interruption policy
* fix(voice-call): centralize realtime barge-in
Co-authored-by: Martin Möllenbeck <martin.moellenbeck@5minds.de >
* chore(changelog): leave voice fix to release flow
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 23:30:16 +01:00
Peter Steinberger and GitHub
80537c1ba4
feat(macos): load provider catalog during AI onboarding ( #101132 )
...
* feat(macos): load onboarding providers from gateway
* test(crestodian): widen setup config mock
* fix(crestodian): satisfy onboarding lint gate
* chore(macos): refresh onboarding localization inventory
* test(plugins): cover guided Copilot secret metadata
2026-07-06 20:57:56 +01:00
2e967ea61d
fix(google): bound OAuth JSON response reads ( #97587 )
...
Co-authored-by: NIO <nocodet@mail.com >
2026-07-06 13:01:25 -04:00
7634c8118b
fix(google): image generation unavailable when google provider set via config apiKey + custom baseUrl ( #100779 )
...
* fix(google): image generation unavailable when google provider set via config apiKey + custom baseUrl
* test(google): satisfy required baseUrl in provider config fixture
* fix(google): normalize config apiKey readiness via hasConfiguredSecretInput
---------
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com >
2026-07-06 19:54:10 +10:00
chenxiaoyu209 and GitHub
5e64c61368
fix(google): resolve thought_signature gate for Gemini latest aliases ( #100605 )
2026-07-06 09:12:35 +01:00
Peter Steinberger and GitHub
07e2d633cc
feat: show auto-detected provider plans and billing ( #100520 )
...
* feat(providers): auto-discover usage billing
* feat(ui): show provider plans and billing
* fix(ui): translate provider billing labels
2026-07-06 04:53:09 +01:00
aaf5ab910c
fix: land ten small reliability fixes ( #100483 )
...
* fix(agents): harden LSP process failures
Source: #100450
Co-authored-by: morluto <williamlin1327@gmail.com >
* fix(sandbox): report effective workspace layout
Sources: #100435 , #100439
Co-authored-by: Aniruddha Adak <aniruddhaadak80@users.noreply.github.com >
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
* fix(security): fail install checks on stream errors
Source: #100413
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
* fix(android): normalize all-day calendar events
Source: #100032
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
* fix(ios): serialize push-to-talk lifecycle
Source: #99942
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
* fix(talk): reject inherited provider names
Source: #99849
Co-authored-by: zenglingbiao <zeng.lingbiao@xydigit.com >
* fix(android): stop voice capture in background
Source: #99840
Co-authored-by: xialonglee <li.xialong@xydigit.com >
* fix(cron): preserve fallback result classification
Source: #99913
Co-authored-by: jincheng-xydt <xu.jincheng@xydigit.com >
* fix(google): bound Vertex response decompression
Source: #99812
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
* fix(plugins): report malformed discovery JSON
Source: #99892
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
* test(sandbox): configure non-default workspace fixture
* test: fix small-fix batch validation
---------
Co-authored-by: morluto <williamlin1327@gmail.com >
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
Co-authored-by: 陈宪彪0668000387 <chen.xianbiao@xydigit.com >
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
Co-authored-by: zenglingbiao <zeng.lingbiao@xydigit.com >
Co-authored-by: xialonglee <li.xialong@xydigit.com >
Co-authored-by: jincheng-xydt <xu.jincheng@xydigit.com >
Co-authored-by: 黄剑雄0668001315 <huang.jianxiong@xydigit.com >
2026-07-06 00:08:51 +01:00
8ec5e06cbf
fix(realtime): filter malformed provider tool names ( #89175 )
...
* fix(realtime): filter malformed provider tool names
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* chore: defer realtime tools changelog
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-05 22:25:24 +01:00
5e0504aa43
feat(ui): simplify Talk settings ( #100453 )
...
Co-authored-by: Peter Steinberger <steipete@openai.com >
2026-07-05 21:31:52 +01:00
Peter Steinberger and GitHub
c757675f34
improve: keep isolated tests under one second ( #100019 )
...
* test: speed up isolated test suite
* test: finish isolated latency cleanup
* test: eliminate remaining isolated latency spikes
* test: remove final isolated timing outliers
* test: bound full-suite tooling processes
* test: bound native test process lifetime
* test: warm isolated runtime suites
* test: eliminate final isolated timing outliers
* test: fix isolated timing fixture types
* test: make timeout cleanup timing deterministic
* test: pin media manifests to source checkout
* test: isolate provider manifest contracts
* test: eliminate residual isolated timing spikes
* test: restore final isolated timing fixes
* test: eliminate remaining isolated timing spikes
* test: warm Zalo lifecycle imports
* test: keep isolated suites below one second
* test: use readable browser response fixtures
2026-07-05 10:57:19 -07:00
1349027171
fix(google): normalize Live function declarations ( #100260 )
...
Co-authored-by: happydog-bot <bot@happydog.digital >
2026-07-05 06:08:23 -07:00
Peter Steinberger and GitHub
614e87cce1
chore: update dependencies ( #100027 )
2026-07-04 14:56:50 -04:00
6207a4e75b
fix(google): bound OAuth token error response reads ( #99605 )
...
* fix(google): bound OAuth token error response reads
* test(google): consolidate OAuth error cases
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 16:00:01 -07:00
d259496425
fix(google): rotate Gemini API keys for LLM requests ( #97328 )
...
* fix(google): rotate Gemini API keys for LLM requests
* fix(google): scope Gemini key rotation to official endpoint
* fix(google): require HTTPS for Gemini key rotation
* fix(google): preserve explicit stream auth headers
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 14:28:55 -07:00
Dallin Romney and GitHub
de34dfdbe8
refactor(plugins): consolidate record guards ( #99361 )
2026-07-02 22:12:53 -07:00