Peter Steinberger
fd571f5295
fix(lmstudio): preserve embedding index across API key rotation ( #129076 )
2026-08-25 00:22:15 -07:00
Peter Steinberger
62aca9a785
fix(lmstudio): redact reflected model-load credentials ( #128561 )
...
* test(lmstudio): add reflected credential redaction regression
* fix(lmstudio): redact exact outbound credentials in model load error body
* fix(lmstudio): suppress truncated model load error bodies before redaction
* fix(lmstudio): restore redactToolPayloadText import after rebase
* test(lmstudio): add real HTTP-server credential redaction proof
* fix(lmstudio): harden reflected model-load credentials
Co-authored-by: xialonglee <li.xialong@xydigit.com >
* test(lmstudio): isolate reflected model-load transport proof
---------
Co-authored-by: xialonglee <li.xialong@xydigit.com >
2026-08-24 00:18:43 -07:00
Peter Steinberger
8083d4dd3f
fix(memory): enforce canonical SecretRef resolution ( #127699 )
...
* fix(memory): enforce canonical SecretRef resolution
Make Gateway runtime snapshots the exclusive owner of memory SecretRef materialization. Bind embedding credentials and headers to provider-owned destinations, and fence per-agent stale reuse by the provider destination/auth contract.
Release note: Memory search resolves secret references through configured provider policy and keeps embedding credentials scoped to their intended destination.
* fix(lmstudio): preserve resolved memory headers
memory remote headers are already materialized by the Gateway snapshot and now bypass SecretRef re-resolution; provider-owned headers retain canonical resolution; final loopback request proof covers literal preservation and precedence.
* fix(memory): bind stale credentials to auth owners
Resolve memory adapter credential owners from snapshot manifest metadata, conservatively fail cold when metadata is absent, and prove Gemini/Google destination changes plus zero-egress unresolved refs.
* fix(memory): scope compatible embedding credentials
Apply destination ownership to the core compatible adapter while preserving destination-owned credentials and intentionally unauthenticated endpoints. Distinguish loopback principals, consolidate duplicate security tests, and verify the final credential boundary through a live isolated Gateway request.
* test(memory): align destination auth precedence
* fix(memory): bind credentials to query identity
Include URL query parameters in embedding destination ownership so provider credentials and headers never cross tenant boundaries.
* fix(memory): preserve query-bound embedding destinations
2026-08-23 20:36:55 -07:00
Peter Steinberger
01e8887959
refactor(providers): return prepared dynamic models directly ( #126574 )
2026-08-21 11:40:52 -07:00
sunlit-deng
a19d924797
fix(lmstudio): expose read-only reachability probe for guided setup ( #119134 )
...
* fix(lmstudio): expose read-only reachability probe for guided setup
* fix(lmstudio): route guided availability through public setup API
2026-08-20 00:32:05 -07:00
Peter Steinberger
0135046830
refactor(llama-cpp): use one provider for managed and existing servers ( #126434 )
...
* refactor(llama-cpp): unify server ownership modes
* test(llama-cpp): preserve shared discovery limits
* fix(plugin-sdk): retain provider auth removal export
2026-08-19 13:57:33 -07:00
Peter Steinberger
61eb7b932b
fix(agents): keep guided auth atomic through creation ( #126096 )
...
* fix(agents): make guided auth creation atomic
* fix(auth): keep staged agent workspace explicit
* test(auth): use managed temp directory
* fix(gateway): finish detached lifecycle dispatch migration
* fix(auth): carry staged workspace through providers
* test(auth): align mocks with batch persistence
2026-08-18 18:18:53 -07:00
Peter Steinberger
568b920b21
feat(lint): enforce import ordering and deduplication ( #124730 )
...
* refactor(imports): dedupe and hoist imports
* feat(lint): enforce import/no-duplicates and import/first
2026-08-16 11:44:52 -07:00
Peter Steinberger
715c379fd9
refactor(config): consolidate context budget to one per-model knob ( #124665 )
...
* refactor(config): consolidate context budget settings
* test(config): type legacy context fixtures
* test(config): align context budget fixtures
* fix(status): honor runtime context discovery
* docs(config): clarify context budget fallbacks
* fix(ci): resolve context budget lint failures
* test(ci): align context budget shard fixtures
* fix(models): preserve catalog context metadata
* fix(config): surface context migration diagnostics
* test(plugin-sdk): keep live catalog coverage focused
2026-08-16 10:05:01 -07:00
Peter Steinberger
99bda3d8cd
refactor: make transport stream writer types honest ( #124587 )
...
* refactor(ai): give transport streams an honest writer type
* test(ai): use canonical transport stream fixtures
* fix(ai): preserve partial-less stream deltas
2026-08-16 07:03:36 -07:00
Peter Steinberger
6aa27d6ecd
refactor: retire August compat windows (embedding API, pi aliases, target parser, spawning hook, setup exports, WhatsApp inbound aliases) ( #124416 )
...
* refactor(plugin-sdk): retire embedded Pi aliases
* refactor(channels): retire explicit target compatibility
* refactor(plugins): retire subagent spawning hook
* refactor(plugin-sdk): retire shipped channel setup exports
* refactor(whatsapp): retire inbound callback aliases
Proof: focused build and WhatsApp E2E green; broad WhatsApp suite 188/189 files green. extensions/whatsapp/src/monitor-inbox.policy.test.ts flakes only in the parallel batch and passes isolated (10/10).
* refactor(plugin-sdk): retire memory embedding registrar
Migrate every bundled provider and manifest to registerEmbeddingProvider and contracts.embeddingProviders. Preserve memory-specific batching, local-service acquisition, index identity, and auto-selection through the canonical generic registry adapter, then remove the parallel registrar, registry, diagnostics, contracts, tests, and docs.
* chore(plugin-sdk): tighten retired surface budgets
Pin the post-retirement public SDK surface to 144 entrypoints, 4,312 exports, 2,564 callable exports, and 1,133 deprecated exports; agent-harness-runtime now permits exactly nine deprecated exports.
2026-08-15 22:43:47 -07:00
Peter Steinberger
3d643f7b7b
perf(test): reduce LM Studio stream suite setup ( #124136 )
2026-08-15 02:52:05 -07:00
Peter Steinberger
00194139ba
refactor(providers): consolidate contract fixtures ( #114424 )
2026-08-09 07:07:47 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
Peter Steinberger
b4a26783f7
refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers ( #119982 )
...
* refactor(test): consolidate duplicated test helpers
* test: remove stale record guard import
* fix(test): remove orphaned record guards
* refactor(test): keep record requirement messages exhaustively typed
* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Vincent Koc
7c3f8b0a28
fix(lmstudio): resolve JIT embedding variants
2026-08-04 02:11:26 +08:00
Peter Steinberger
f1e7e20bad
fix(lmstudio): preserve embedding preload and model identity
2026-08-04 02:11:26 +08:00
Vincent Koc
4fa7c243c6
fix(lmstudio): use only loaded models during setup
2026-08-02 22:45:09 +08:00
Peter Steinberger
35a1777f68
refactor(providers): consolidate catalog setup helpers ( #117824 )
...
* refactor(providers): consolidate catalog setup helpers
* fix(huggingface): narrow discovered model entries
2026-08-01 22:17:52 -07:00
Peter Steinberger
eec96d9634
test(lmstudio): consolidate provider setup fixtures ( #117660 )
2026-08-01 15:34:32 -07:00
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 1d333d4c67b6cf43c4def40f93075ac6bda34847.
* Revert "fix(ollama): preserve native max thinking effort"
This reverts commit 5d2600b0982e5bca73b1b5f8b42f660fa5f2473d.
* 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