Commit graph

65 commits

Author SHA1 Message Date
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
Jason (Json)
5f1bbed42d
fix(doctor): report missing managed local embedding setup (#123575)
* fix(gateway): expose startup blockers before cutover

* fix(gateway): include session blockers in preflight

* fix(gateway): keep preflight finding type private

* fix(gateway): preflight startup auth blockers

* fix(gateway): complete startup preflight readiness

* fix(llama-cpp): keep preflight remediation private

* fix(gateway): keep preflight passive and activation-aware

* fix(gateway): apply startup guard in preflight

* fix(gateway): align auth mode preflight

* fix(gateway): keep preflight state reads isolated

Share the read-only inspection snapshot scope across duplicated runtime chunks so blocked gateway preflight remains non-mutating when bundled provider artifacts read canonical state.

* fix(gateway): keep startup preflight passive

* fix(gateway): ignore inactive embedding owner shadows

* fix(gateway): preserve startup preflight parity

* fix(llama-cpp): keep cache inspection types private

* fix(gateway): close startup preflight parity gaps

* fix(gateway): handle uninitialized memory databases

* test(gateway): observe shell fallback portably

* fix(llama-cpp): normalize embedding model paths

* refactor(gateway): drop broad startup preflight surface

* fix(doctor): report missing managed local embedding setup

* style(memory): simplify setup enablement check

* fix(memory): keep diagnostic result type private

* fix(memory): inspect local setup with remote secret refs

* fix(memory): keep doctor index inspection immutable

* fix(memory): make readiness inspection owner-aware

* fix(doctor): mirror memory slot allowlist policy

* test(doctor): use canonical memory slot id

* fix(doctor): normalize memory provider ids

* fix(doctor): resolve external embedding readiness owner

* fix(plugins): keep embedding inspection result internal

* fix(doctor): isolate plugin state during lint

* fix(doctor): route lint metadata through snapshot

* fix(cli): keep doctor lint startup source-only

* fix(cli): keep doctor lint compile-cache free

* fix(doctor): keep local embedding readiness opt-in

* test(doctor): preserve plugin artifact roots during lint

* fix(doctor): refresh memory readiness registration

* test(doctor): type nullable provider policy mock

* fix(doctor): scope lint state snapshot to provider check

* fix(doctor): isolate selected plugin state checks

* test(doctor): restore only scoped environment

* fix(doctor): defer readiness state inspection

* fix(doctor): keep deferred config reads isolated

* fix(doctor): keep plugin state mode internal

* fix(config): preserve default plugin validation
2026-08-15 20:15:06 -06:00
Jason (Json)
a02ed2cfda
fix(plugin-sdk): installed llama providers fail to load after upgrade (#124041)
* fix(plugin-sdk): let installed llama providers load after upgrade

* test(tooling): include new memory race importer
2026-08-14 23:57:24 -06:00
Peter Steinberger
1306ec805d
fix(llama-cpp): fully persist verified downloads (#123738) 2026-08-14 09:59:25 -07:00
Peter Steinberger
f65a6f81de
feat(llama-cpp): raise default context size to 64K (#123701)
The managed llama-server default ctx-size was 8192, but the full OpenClaw
agent system prompt alone is ~31K tokens, so the first agent turn overflowed
the context window and forced immediate compaction (observed live on the Mac
app local-model onboarding). Raise the default to 65536 so a fresh local-model
install can run a real agent turn out of the box.

The default-download 16 GiB RAM floor already bounds weaker machines, and
Gemma 4 supports far more than 64K, so this only changes headroom, not the
offer gate. Docs updated to match.
2026-08-14 08:26:41 -07:00
Peter Steinberger
7c5eaede1e
feat(codex): pass explicit skill selections as structured turn input (#123441)
* feat(codex): pass explicit skill selections as structured turn input

Thread OpenClaw-resolved explicit $skill selections through the reply
pipeline to the Codex app-server harness and emit them as structured
UserInput::Skill turn items when the Codex catalog (skills/list) knows the
same SKILL.md path. Codex then injects the skill natively and blocks its
text scanner from double-selecting the same name, while unmatched names
stay scannable for Codex-native-only skills and the prompt instruction
block keeps owning skills Codex cannot see. Catalog misses and RPC errors
fail open to the instruction path; the turn never fails on skill lookup.

Part of #123367

* fix(plugins): defer llama-cpp ssrf-runtime load out of the setup closure

The doctor-contract closure guard forbids the SSRF barrel in the
doctor/legacy-setup closure (cold-loads DNS, proxy state, logging); the
static import landed with the managed llama-server switch (#123105) and
first fails when a PR selects the guard lane. Defer to a dynamic import at
download time per the guard's stated remedy.
2026-08-13 20:37:47 -07:00
Peter Steinberger
23c9c04572
fix(sessions): hide unowned host catalogs on multi-user gateways (#123421)
* fix(sessions): scope catalogs by caller identity

* fix(llama-cpp): keep doctor imports lightweight
2026-08-13 19:28:22 -07:00
Peter Steinberger
1348387076
refactor(plugins): replace node-llama-cpp with managed llama-server (#123105)
Move llama.cpp chat and local embeddings onto a verified externally managed llama-server runtime. Remove the in-process native runtime, forked embedding workers, and node-llama-cpp dependency while preserving guided setup, local GGUF models, tool-capable agent runs, diagnostics, and operator docs.
2026-08-13 16:58:20 -07:00
Peter Steinberger
cad77fb39c
refactor: consolidate remaining coercion helpers (#122020) 2026-08-11 10:22:01 -07:00
Peter Steinberger
9df9cc2228
test(llama-cpp): remove duplicate progress bridge (#121886) 2026-08-10 23:25:51 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 (#120375) 2026-08-07 18:44:12 -07:00
Vincent Koc
e67d164403
fix(llama-cpp): require full-process cleanup recovery
Punchcard-Session: frost-brook-timber-mx
2026-08-05 22:26:11 +08:00
Vincent Koc
51374854f0
fix(llama-cpp): keep restart error internal
Punchcard-Session: frost-brook-timber-mx
2026-08-05 15:53:40 +08:00
Vincent Koc
a87ee810da
fix(llama-cpp): fence native runtime handoff
Punchcard-Session: frost-brook-timber-mx
2026-08-05 15:33:49 +08:00
Vincent Koc
2b0e1e579a
fix(llama-cpp): report cleanup recovery to initiating request
Punchcard-Session: frost-brook-timber-mx
2026-08-05 14:46:39 +08:00
Vincent Koc
8b443bb34f
test(llama-cpp): split inference mapping coverage
Punchcard-Session: frost-brook-timber-mx
2026-08-05 02:44:19 +08:00
Vincent Koc
220445b1b7
fix(llama-cpp): type shutdown cleanup failures
Punchcard-Session: frost-brook-timber-mx
2026-08-05 02:43:34 +08:00
Vincent Koc
865b517235
fix(llama-cpp): record native shutdown failures 2026-08-05 02:25:52 +08:00
Vincent Koc
6dc5d00374
fix(llama-cpp): explain cleanup failure recovery 2026-08-05 02:10:27 +08:00
Vincent Koc
31d8e046bf
fix(llama-cpp): reject queued work after cleanup failure 2026-08-05 01:40:08 +08:00
Vincent Koc
622d8a048e
fix(llama-cpp): make cleanup failures terminal 2026-08-04 23:37:13 +08:00
Vincent Koc
de8afade57
refactor(llama-cpp): clarify terminal cleanup contract 2026-08-04 23:12:06 +08:00
Vincent Koc
a9d768ced6
fix(llama-cpp): detach retired model state 2026-08-04 23:03:19 +08:00
Vincent Koc
889cd316c7
fix(llama-cpp): keep failed cleanup terminal 2026-08-04 22:57:59 +08:00
Vincent Koc
48b950d9fc
fix(llama-cpp): make runtime cleanup best effort 2026-08-04 22:15:34 +08:00
Vincent Koc
b8eebb07e4
test(llama-cpp): keep lifecycle helpers private 2026-08-04 21:27:41 +08:00
Vincent Koc
76ba214b98
fix(llama-cpp): dispose runtime on plugin stop 2026-08-04 16:10:51 +08:00
Peter Steinberger
1cc374b2f0
test(llama-cpp): consolidate provider fixtures (#118426) 2026-08-02 20:59:50 -07:00
Peter Steinberger
b521e0a6dc
fix(llama-cpp): stop hijacking explicitly configured HTTP provider routes (#118293)
* fix(llama-cpp): preserve configured HTTP routes

* chore: drop release-owned CHANGELOG edit from PR branch
2026-08-02 17:06:58 -07:00
Vincent Koc
bce957fe61
fix(llama-cpp): clarify local model setup 2026-08-02 18:04:30 +08:00
Peter Steinberger
e98fdeefdf
refactor(errors): consolidate message formatting (#117818) 2026-08-01 22:05:49 -07:00
Peter Steinberger
e4d1b7e0d3
refactor(plugins): move plugin contributions into the registry bundle (#117372)
* refactor(plugins): move plugin contributions into the registry bundle

* fix(plugins): guard embedding owner union and drop unused test-util imports

* fix(plugins): break registry facade import cycles

* fix(plugins): remove obsolete registry snapshot seams

* test(gateway): preserve plugin runtime mock exports

* test(auto-reply): install builder registry in diagnostics fixture

* test(plugins): activate registry-backed capability fixtures
2026-08-01 06:57:01 -07:00
Vincent Koc
0e24d596c0
improve(setup): clarify local provider actions 2026-08-01 00:26:40 +08:00
Peter Steinberger
101bcaf011
fix(llama-cpp): preserve native tool, context, and reasoning lifecycles (#116903)
* fix(llama-cpp): stream native tool call lifecycle

* fix(llama-cpp): normalize native response lifecycle and limits

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 08:36:06 -07:00
Peter Steinberger
0e1304d0de
fix(llama-cpp): recover plaintext tool calls (#116736)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 02:45:32 -07:00
Vincent Koc
e96b9d2cd0
improve(ui): verify llama.cpp model setup 2026-07-30 23:41:58 +08: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
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
f6131a4fbf
build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006)
* build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks

npm 12 removed shrinkwrap (command + tarball/root loading). Delete all 82
committed npm-shrinkwrap.json files and stop publishing lockfiles; keep
pnpm-lock.yaml as the single reviewed dependency boundary. The generator
becomes scripts/generate-npm-package-lock.mjs and feeds plugin bundling via
a transient package-lock.json + npm ci (works on npm 11 and 12). Tarball
validation treats the published 2026.7.2 beta train as a shrinkwrap
transition; self-update npm detection now uses install topology instead of
the shipped shrinkwrap.

* fix(deps): repair lint, deadcode, and test-type lanes for the npm 12 migration

- sort integrity comparisons with an explicit comparator (oxlint)
- keep resolveBunGlobalNodeModules module-local (knip unused-export gate)
- model npm pack --json as npm<=11 array / npm 12 name-keyed object
- default calver destructuring in the tarball test fixture
2026-07-26 01:29:55 -04:00
Peter Steinberger
2a5ad61ce9
feat(system-agent): constrain planner JSON output at generation time (#113482)
* feat(system-agent): constrain planner JSON output

* fix(ai): align response format request typing

* fix(ai): preserve response format backend contracts
2026-07-24 21:00:28 -07:00
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies (#112453)
* build(deps): update QA broker dependency

* build(deps): refresh repository dependencies

* build(deps): reconcile rebased shrinkwraps

* test(plugins): remove stale loader test state

* test(deps): stabilize updated dependency coverage

* fix(swift): use caller-isolated TaskLocal overload

* build(deps): regenerate rebased shrinkwraps

* test(msteams): preserve DNS validation in fetch helper

* fix(deps): avoid vulnerable optional image stack

* test(deps): validate generated LRU override

* refactor(ui): extract chat resizable divider

* test(ui): update divider ownership path

* fix(matrix): retain restart-compatible SDK

* style(cron): format update test
2026-07-23 16:17:13 +00: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
Vito Cappello
f4607b802f
fix(llama-cpp): preserve runtime asset paths (#110233)
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
2026-07-17 16:36:05 -07:00
Peter Steinberger
a5237fe925
feat(llama-cpp): gate Gemma default by RAM (#109585) 2026-07-16 22:17:57 -07:00
Peter Steinberger
658b601ee5
feat(llama-cpp): in-process local GGUF text inference provider (#109444)
* feat(llama-cpp): add in-process text inference

* test(llama-cpp): narrow setup provider fixture

* fix(llama-cpp): trim public surface and refresh docs map

* fix(llama-cpp): import Context type in inference test
2026-07-16 18:53:55 -07:00
Peter Steinberger
2eb9c7ebd7
refactor(extensions): privatize small plugin internals (#107774)
* refactor(llama-cpp): privatize embedding internals

* refactor(parallel): privatize MCP response helpers

* refactor(logbook): privatize analysis parsers

* refactor(crabbox): narrow worker provider exports

* refactor(acpx): privatize process reaper internals

* chore(deadcode): refresh unused-export baseline
2026-07-14 14:15:44 -07:00
Peter Steinberger
81941f2d68
test: enable noUncheckedIndexedAccess for extension tests (#105343) 2026-07-12 12:48:22 +01:00
Vincent Koc
85a96409f1 feat(memory): surface llama.cpp diagnostics 2026-07-11 16:40:14 +08:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2 2026-07-11 04:00:49 +01:00
Vincent Koc
33163d4273
refactor(plugins): localize private declarations (#101406) 2026-07-06 23:26:47 -07:00