Peter Steinberger
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
wuqxuan
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
ZOOWH
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
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
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
NIO
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
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
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
Peter Steinberger
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
LiLan0125
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
Alix-007
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
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
d708df47a3
improve(google): identify OpenClaw Gemini API traffic ( #101834 )
2026-07-07 16:09:02 -06:00
Vincent Koc
b88f80940a
refactor: localize internal implementation symbols ( #101831 )
2026-07-07 10:23:36 -07:00
Happy Dog Support Bot
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
Vortex Openclaw
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
Martin Moellenbeck
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
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
NIO
2e967ea61d
fix(google): bound OAuth JSON response reads ( #97587 )
...
Co-authored-by: NIO <nocodet@mail.com >
2026-07-06 13:01:25 -04:00
Alex Knight
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
5e64c61368
fix(google): resolve thought_signature gate for Gemini latest aliases ( #100605 )
2026-07-06 09:12:35 +01:00
Peter Steinberger
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
Peter Steinberger
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
Vincent Koc
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
Peter Steinberger
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
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
Peter Steinberger
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
614e87cce1
chore: update dependencies ( #100027 )
2026-07-04 14:56:50 -04:00
mushuiyu886
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
Ted Li
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
de34dfdbe8
refactor(plugins): consolidate record guards ( #99361 )
2026-07-02 22:12:53 -07:00
Dallin Romney
8c5f45fc36
refactor(shared): consolidate provider and utility lazy loaders ( #98749 )
...
* refactor(shared): consolidate provider lazy loaders
* refactor(shared): leave enforcement to follow-up
2026-07-02 21:16:26 -07:00
Ayaan Zaidi
5fc9b20d24
fix(gemini): stage CLI auth inside run queue
...
Fixes #98945
2026-07-02 08:49:40 -07:00
snowzlmbot
b63e06f68a
fix(llm): preserve structured tool result replay
...
Preserve structured tool-result replay text across provider transports while keeping provider-facing redaction and Anthropic media ordering intact.
Thanks @snowzlmbot!
2026-06-30 23:44:02 -07:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main
2026-06-30 11:31:08 -07:00
wangmiao0668000666
a6aaba76ac
fix(google): bound OAuth response body reads
2026-06-28 21:49:13 -07:00
NIO
91297bf420
fix(google): bound embedding-batch JSON response reads ( #97535 )
...
* fix(google): bound embedding-batch JSON response reads
* fix(google): repair embedding-batch test types and lint
---------
Co-authored-by: NIO <nocodet@mail.com >
2026-06-28 14:20:28 -07:00
mushuiyu886
5ccfc97b31
fix(google): bound TTS success JSON response reads ( #96984 )
2026-06-27 07:00:36 -07:00
mushuiyu886
a7bfc06f45
fix(google-media): bound JSON response reads ( #96920 )
...
* fix(google-media): bound JSON response reads
* test(google): relax media response cap assertion
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-06-27 06:46:58 -07:00
Peter Steinberger
56259606d1
fix(agent-core): ignore truncated tool calls ( #97140 )
...
* fix(agent-core): ignore truncated tool calls
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com >
* fix(agent-core): require explicit tool-call terminals
---------
Co-authored-by: Galin Iliev <5711535+galiniliev@users.noreply.github.com >
2026-06-27 03:31:42 +01:00
NIO
527f8f0cbb
fix(image-gen): bound image generation provider JSON response reads ( #96495 )
...
* fix(image-gen): bound image generation provider JSON response reads
Route success JSON reads through readProviderJsonResponse (16 MiB cap)
in openrouter, google, fal, minimax, openai, and vydra image generation
providers to prevent OOM from oversized or hostile endpoint responses.
Mirrors the response-limit campaign already applied to other provider paths.
AI-assisted.
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(image-gen): size bounded JSON caps for inline image payloads
Signed-off-by: sallyom <somalley@redhat.com >
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: sallyom <somalley@redhat.com >
2026-06-26 07:08:30 -04:00
Alix-007
bfc33ac114
fix(google): bound video success response ( #96605 )
2026-06-25 13:41:35 -04:00
Vincent Koc
0671c08900
chore(release): close out 2026.6.10 on main ( #96271 )
...
* chore(release): close out 2026.6.10 on main
* chore(release): align native app metadata for 2026.6.10
* chore(release): sync Android 2026.6.10 notes
* docs(changelog): preserve 2026.6.9 history
* docs(changelog): preserve 2026.6.9 history
2026-06-24 11:51:14 +08:00
Patrick Erichsen
0feffda3fc
fix(plugins): remove simpleicons icon color paths ( #95987 )
2026-06-23 12:16:02 -07:00
Sunjae Kim
f0a2ba0584
Fix Gemini day freshness time range handling ( #95682 )
...
Merged via squash.
Prepared head SHA: f6038b3a33
Co-authored-by: Sunjae-k <52808029+Sunjae-k@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-23 14:19:25 +08:00
Patrick Erichsen
0a97f73402
feat: add bundled plugin icon manifest URLs ( #95845 )
2026-06-22 22:14:18 -07:00
Vincent Koc
77d0deedf2
improve: speed up provider tool-call streaming ( #95957 )
...
Merged via squash.
Prepared head SHA: d8f510757b
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-23 12:28:24 +08:00
Zechen Wang
4d636335db
fix(google): add gemini-3.5-flash model catalog entry ( #94726 )
...
* fix(google): add gemini-3.5-flash model catalog entry
gemini-3.5-flash was missing from the bundled Google model catalog,
causing it to silently fall back to DEFAULT_CONTEXT_TOKENS (200k)
instead of its documented 1,048,576-token input window.
Add the catalog entry and forward-compat routing so the model
resolves with the correct context window.
Closes : openclaw/openclaw#94723
Co-Authored-By: Claude <noreply@anthropic.com >
* chore: retry CI (flaky test)
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-06-22 18:28:01 +00:00
Vincent Koc
90cf265f29
refactor(google): share TTS request preparation
2026-06-22 19:38:30 +08:00