Vincent Koc
0e24d596c0
improve(setup): clarify local provider actions
2026-08-01 00:26:40 +08:00
Vincent Koc
94b85cba5f
feat(setup): improve local model onboarding
2026-07-31 08:53:13 +08:00
Peter Steinberger
302f262e6b
refactor: deduplicate extension normalization primitives ( #115650 )
...
* refactor(plugins): reuse SDK normalization primitives
* fix(ci): repair code-mode matrix checks
* fix(ci): satisfy code-mode matrix gates
* fix(ci): use matrix evidence export
* fix(ci): validate matrix evidence artifact
2026-07-29 04:10:06 -04:00
Peter Steinberger
98a066c90e
fix(agents): project llama.cpp-safe tool schemas ( #115598 )
...
Co-authored-by: Jithin Mohandas <mohandasjithin@gmail.com >
2026-07-29 01:33:32 -04:00
Peter Steinberger
b883b88129
fix(lmstudio): preserve valid models in mixed catalogs ( #115336 )
2026-07-28 20:43:16 -04:00
Peter Steinberger
98b8a18b4c
fix(node): harden reconnect and local inference cancellation ( #115033 )
...
* fix(node): harden reconnect and local inference cancellation
* fix(browser): refresh bundled gateway client
* fix(gateway): preserve restart after reconnect reset
* fix(node): preserve tracked remote command ownership
2026-07-28 04:18:51 -04:00
Peter Steinberger
a92f85e642
fix(node): cancel remote commands and stabilize local inference ( #114935 )
2026-07-28 01:03:25 -04:00
Peter Steinberger
43ff420492
fix(providers): preserve local model discovery and retry ownership ( #114582 )
2026-07-27 09:14:23 -04:00
Peter Steinberger
b6c3ff1aa1
fix(providers): make Ollama and LM Studio onboarding reliable ( #114405 )
...
* fix(ollama): persist local auth only after model selection
* fix(ollama): preserve native max thinking effort
* fix(lmstudio): preserve model tool capabilities
* fix(lmstudio): preserve configured model compatibility
* test(ollama): prove isolated onboarding and persisted gateway turns
* fix(ollama): fail closed on unresolved secret references
* fix(ollama): keep local onboarding model catalogs installed-only
* fix(onboard): preflight local models before reset
* fix(lmstudio): normalize unsupported tool schema patterns
* Revert "test(ollama): prove isolated onboarding and persisted gateway turns"
This reverts commit 1d333d4c67 .
* Revert "fix(ollama): preserve native max thinking effort"
This reverts commit 5d2600b098 .
* fix(lmstudio): preserve typed model compatibility
* test(lmstudio): await provider catalog augmentation
* test(ollama): narrow optional discovery auth fixture
* test(lmstudio): narrow reset validator registration
* fix(onboard): preserve verified local model lean defaults
* test(ollama): split non-interactive onboarding auth regressions
* fix(onboard): exclude hosted Ollama models from lean defaults
* test(onboard): prove local reset preflight order
2026-07-27 05:07:29 -04:00
Peter Steinberger
0642072b70
test(providers): consolidate catalog and realtime contract cases ( #114352 )
2026-07-27 01:55:20 -04:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Jason (Json)
55cf9523e0
feat: discover models from live provider catalogs ( #112412 )
...
* feat: discover models from live provider catalogs
* fix(provider-catalog): satisfy current catalog contracts
* fix(deps): update fast-uri past new advisory
* fix(deps): refresh fast-uri shrinkwraps
* fix(openrouter): satisfy provider catalog lint
* fix(agents): preserve refreshable catalog metadata
* test(agents): keep catalog fallback proof within lint budget
* fix(provider-catalog): honor live model contracts
* fix(minimax): type discovery headers explicitly
* docs(plugin-sdk): define live model discovery contract
2026-07-21 19:29:57 -06:00
Peter Steinberger
6ef6c9a15d
fix(onboard): verify imported and local inference ( #112028 )
2026-07-20 21:35:22 -07:00
Wynne668
1573c78f5b
fix(lmstudio): cancel model discovery response body on non-ok ( #109718 )
...
* fix(lmstudio): cancel model discovery response body on non-ok
Wire the direct-fetch release hook to cancel unread bodies so failed
model discovery releases the TCP connection instead of leaving it open.
Co-authored-by: Cursor <cursoragent@cursor.com >
* refactor(lmstudio): unify response cleanup
Co-authored-by: Zeng Wen <27948732+ZengWen-DT@users.noreply.github.com >
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Zeng Wen <27948732+ZengWen-DT@users.noreply.github.com >
2026-07-17 01:12:23 -07:00
Peter Steinberger
6ac15970a7
feat(onboarding): unified empty-state with provider icons, websites, and recommended installs ( #109681 )
...
* feat(onboarding): unify setup recommendations
* fix(control-ui): proxy model setup icons
* fix(onboarding): refresh landing artifacts
* chore(ui): sync translated i18n catalogs
* chore(ui): keep generated locale artifacts on the refresh workflow
2026-07-17 01:01:06 -07:00
Peter Steinberger
d71c1fe596
feat(onboarding): prefer strongest local model in guided detection ( #109250 )
...
* feat(onboarding): rank detected local models
* docs(sdk): comment local-model rank bucket layout
* feat(sdk): rank gemma4 first for local setup-assistant models
2026-07-16 17:30:49 -07:00
Peter Steinberger
da59d6ade9
feat(onboarding): detect local inference providers ( #108605 )
...
* feat(onboarding): detect local inference providers
* fix(onboarding): satisfy inference choice lint
* chore(i18n): refresh onboarding locales
* chore: leave changelog to release automation
* chore(plugin-sdk): refresh API baseline
* fix(onboarding): preserve source config during local activation
2026-07-15 22:46:16 -07:00
Peter Steinberger
42591653de
refactor(extensions): trim provider and channel internals ( #107817 )
...
* refactor(ollama): privatize internal plugin surfaces
* refactor(openshell): privatize internal plugin surfaces
* refactor(lmstudio): privatize internal plugin surfaces
* refactor(signal): privatize internal plugin surfaces
* refactor(whatsapp): privatize internal plugin surfaces
* chore(deadcode): shrink extension export baseline
2026-07-14 15:38:39 -07:00
Peter Steinberger
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
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
Peter Steinberger
57af2bbff0
fix: clear remaining release validation blockers ( #104555 )
...
* test: align provider tool call lifecycles
* test: isolate plugin install repair migrations
* fix: accept catalog temperature compatibility
* fix: disable GPT-5.6 tool reasoning on completions
* style: avoid shadowed stream model
2026-07-11 09:32:16 -07:00
Vincent Koc
1aca83abf5
fix(lmstudio): isolate embedding alias credentials
2026-07-11 16:22:22 +08:00
Vincent Koc
105419ae5f
fix(lmstudio): resolve embedding alias credentials
2026-07-11 16:22:22 +08:00
Vincent Koc
065873e5ec
fix(lmstudio): preserve local service endpoint forms
2026-07-11 16:22:22 +08:00
Vincent Koc
cce3fd55c4
test(lmstudio): type local service override fixture
2026-07-11 16:22:22 +08:00
Vincent Koc
d2ac533c6c
fix(embeddings): skip local services for remote overrides
2026-07-11 16:22:22 +08:00
Vincent Koc
1b3438d7ec
fix(plugin-runtime): keep local service config host-owned
2026-07-11 16:22:22 +08:00
Vincent Koc
8b8e66cfa4
test(embeddings): align runtime fixture casts
2026-07-11 16:22:22 +08:00
Vincent Koc
ccab708c16
fix(plugin-sdk): align local service release contract
2026-07-11 16:22:22 +08:00
Vincent Koc
e62c216d75
refactor(embeddings): inject local service acquisition
2026-07-11 16:22:22 +08:00
Vincent Koc
06fbade796
fix(lmstudio): lease embedding local services
2026-07-11 16:22:22 +08:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +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
Peter Steinberger
b3e68a093c
fix(lmstudio): honor embedding preload context ( #100750 )
...
Co-authored-by: Zakaria Rahali <zakariarahali288@gmail.com >
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com >
2026-07-06 18:28:48 +01:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main
2026-06-30 11:31:08 -07:00
Vincent Koc
7c56877eb1
test(lmstudio): fix model load response mocks
2026-06-24 21:14:28 +08:00
Alix-007
7844b08445
fix(lmstudio): bound model load success response body to prevent OOM ( #96042 )
...
The /api/v1/models/load success path read the response with an unbounded
await response.json(), so a misbehaving or compromised LM Studio server
could stream an arbitrarily large JSON body that is fully buffered into
memory before any size check. Read it through the shared byte-capped
readProviderJsonResponse helper instead (16 MiB provider-JSON cap, cancels
the stream on overflow, wraps malformed JSON), matching the discovery path
and the already-bounded error body.
Migrate the model fetch/load test mocks to real Response objects (the
bounded readers need a real body stream) and add a regression test that
streams an oversized success body and asserts a bounded error plus stream
cancellation.
Label: security
2026-06-24 09:03:02 -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
Vincent Koc
aad78d399c
test(extensions): use real response mocks
2026-06-23 22:00:32 +08:00
Patrick Erichsen
0a97f73402
feat: add bundled plugin icon manifest URLs ( #95845 )
2026-06-22 22:14:18 -07:00
Ted Li
405896a4a3
fix(lmstudio): canonicalize variant model keys ( #95401 )
...
* fix(lmstudio): canonicalize variant model keys
* fix(lmstudio): retain canonical key after preload failures
* fix(lmstudio): keep canonical key during preload cooldown
2026-06-22 17:20:54 +00:00
Vincent Koc
b039e949b6
chore(release): close out 2026.6.9
2026-06-21 12:24:15 +08:00
Vincent Koc
aff6e221a7
fix(lmstudio): bound model load error bodies
2026-06-19 20:43:17 +02:00
Vincent Koc
6774e7f259
chore(release): sync main to 2026.6.8
2026-06-17 07:25:30 +08:00
Shakker
920e6a8eec
chore: set version 2026.6.9
2026-06-16 19:54:07 +01:00
David
23d74dad12
fix(lmstudio): honor thinking off for binary reasoning models ( #92002 )
...
Scope disabled-thinking payload repair to LM Studio's lightweight provider stream hook. Preserve official OpenAI and Anthropic tool-calling paths.
Co-authored-by: David <32288+nxmxbbd@users.noreply.github.com >
2026-06-14 05:41:49 -07:00
Christine Yan
22276e6de0
fix(lmstudio): preserve wizard prompter binding
...
Bind LM Studio wizard prompter callbacks before storing them so class-backed gateway setup sessions keep their receiver and no longer crash when selecting LM Studio.
Thanks @christineyan4.
Co-authored-by: Christine Yan <christine.yan4@gmail.com >
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-06-07 00:26:39 -07:00
Peter Steinberger
4fa5092cdc
docs: document small extension sources
2026-06-04 21:02:07 -04:00
Peter Steinberger
1878ca0820
chore(release): prepare 2026.6.2 beta
2026-06-04 00:06:52 +01:00