Peter Steinberger
75a3cf298d
feat(plugins): read the ai.openclaw Agent Plugins extension namespace ( #120214 )
2026-08-07 03:49:12 -07:00
Peter Steinberger
f4387b7a5e
feat(plugins): support the Agent Plugins bundle format ( #120115 )
...
* feat(plugins): support the Agent Plugins bundle format
* docs(plugins): document the Agent Plugins bundle format
* test(agents): preserve agent bundle runtime discovery
* fix(plugins): isolate Agent Plugins data-dir failures and align MCP support reporting
* docs(plugins): list Agent Plugins in the canonical plugin-format guides
* fix(plugins): gate Agent Plugins detection on schema, pure inspection, root-relative cwd
* fix(plugins): record Agent Plugins data-dir ownership explicitly
* docs(plugins): cover Agent Plugins in the CLI install detection guide
* fix(plugins): carry Agent Plugins data-dir and transport contracts through external MCP projections
2026-08-07 02:55:08 -07:00
Peter Steinberger
441a9b94cf
fix(plugins): multi-entry pack identity and safe managed-install compensation ( #120026 )
...
* fix(plugins): preserve multi-entry pack identity and safe install compensation
Multi-entry plugin packs registered every entry under the single manifest id,
so only one entry survived registry normalization; discovery now records an
entry-scoped effectivePluginId that the manifest registry honors. Managed
install compensation no longer silences runtime cache invalidation on the
success path, and local linked installs never delete operator-owned source
directories on persistence failure.
* fix(plugins): reject colliding derived entry ids in multi-entry packs
ClawSweeper P1: ./a/index.ts and ./b/index.ts both derived pack/index and one
entry silently lost same-root dedupe. Colliding entries now emit an error
diagnostic naming the sources and register no candidate; docs note the
entry-scoped plugins.entries key for multi-entry packs.
2026-08-07 01:13:34 -07:00
Vincent Koc
63c6cd9a02
fix(agents): satisfy tool authority lint
2026-08-07 15:07:12 +08:00
Vincent Koc
228478bffe
fix(plugins): inject harness tool authority
2026-08-07 15:07:12 +08:00
Vincent Koc
62aff372ec
fix(plugins): keep loader authority type private
2026-08-07 15:07:12 +08:00
Vincent Koc
dfdc71322c
fix(plugins): verify installed harness authority owners
2026-08-07 15:07:12 +08:00
Vincent Koc
994ba9b32a
fix(plugins): keep harness authority owner-restricted
2026-08-07 15:07:12 +08:00
Vincent Koc
aacbcaacc8
fix(agents): restrict harness tool authority
2026-08-07 15:07:12 +08:00
Vincent Koc
d863dd5f5e
refactor(agents): bind tool policy to exact execution identity
2026-08-07 15:07:12 +08:00
SunnyShu
4d87263b1b
fix(plugins): warn when registerHook uses a typed hook event name ( #118601 )
...
* [AI] fix(plugins): warn when registerHook uses a typed hook event name
api.registerHook registers into the legacy internal-hook path, while typed
lifecycle events (before_tool_call, message_received, ...) are dispatched
exclusively by the typed hook runner. Registrations under typed names
silently never fired since #117372 moved the write to legacyInternalHooks.
Emit a registration diagnostic pointing to the public api.on(...) API so
plugin authors see the no-op at load time instead of trusting a false
"loaded".
Related to #116965
Co-Authored-By: deepseek-v4-flash <noreply@anthropic.com >
* [AI] fix(plugins): point registerHook comment at public api.on API
Condense the inline comment in createToolHookRegistrars and replace the
internal registerTypedHook migration reference with the public api.on(...)
API, matching the emitted warning and hooks docs. Behavior and tests
unchanged.
---------
Co-authored-by: deepseek-v4-flash <noreply@anthropic.com >
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-06 18:59:27 -07:00
Peter Steinberger
804ae7f121
fix(security): stop recommending retired install-policy bypasses ( #120011 )
...
* fix(security): align install policy path contract
* test(security): align install policy wording
* style(security): format install policy test
* fix(security): identify failing install policy path
* test(security): track Windows ACL temp dirs
2026-08-06 18:45:18 -07:00
Dallin Romney
b5369f8e5d
fix(qa): replace false Codex pin compatibility evidence ( #118012 )
...
* test(qa): replace synthetic Codex pin evidence
* test(qa): update core runtime-pair count
* test(qa): cover official Codex plugin drift
* test(qa): preserve frozen candidate scenario ids
2026-08-07 08:45:26 +08:00
Peter Steinberger
0b849a316d
refactor(plugins): single-source interactive dispatch and its auth downgrade via plugin SDK ( #120062 )
2026-08-06 16:31:04 -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
Patrick Erichsen
05e3ce11ac
fix(release): restore Fish Audio ClawHub publishing
2026-08-06 11:31:37 -07:00
Vincent Koc
52b8f9be80
fix(plugins): migrate Fish Audio plugin identity ( #119900 )
...
* fix(plugins): migrate Fish Audio plugin identity
* fix(plugins): tighten Fish Audio identity migration
* fix(plugins): follow catalog selector for id replacements
* fix(plugins): reject replacement install collisions
* refactor(plugins): reuse skipped update outcomes
2026-08-06 20:50:36 +08:00
Vincent Koc
c4292bc8b2
fix(diagnostics): report exporter health in doctor and status ( #119816 )
...
* fix(diagnostics): report exporter health transitions
* fix(diagnostics): retire exporter health on shutdown
* test(diagnostics): enforce OTLP protobuf content type
* test(diagnostics): satisfy exporter test type contracts
* fix(diagnostics): redact endpoint-like exporter codes
* fix(diagnostics): coordinate exporter route health
* test(diagnostics): satisfy exporter health static gates
* fix(diagnostics): keep exporter health internal
2026-08-06 20:50:18 +08:00
w33d
2ea567972c
fix(diagnostics): attribute plugin LLM usage spans ( #107937 )
...
Emit usage once at the shared plugin completion boundary and expose host-derived plugin identity only on OTel usage spans. Preserve aggregate metric labels and cover the redacted Gateway path end to end.
Refs #98968
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
2026-08-06 16:55:53 +08:00
clawsweeper[bot]
ed40d0599b
fix(plugins): keep targeted official updates on the core channel ( #119799 )
...
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-06 15:06:49 +08:00
joshavant
9702134882
fix: settle Gemini CLI auth preparation failures
2026-08-06 01:48:09 -05:00
Ayaan Zaidi
874c63318b
fix(skills): remove regex correction capture; self-learning is reviewer-only
...
Deletes the deterministic regex capture path that templated raw chat text into skill proposals (junk like a proposal whose whole procedure was one slugified user message). All autonomous learning now flows through the isolated experience reviewer: it sees a bounded workspace skill list, prefers revising pending proposals or updating the governing skill over creating new ones, and treats durable user corrections as first-class evidence. Update proposals are reviewer-only (explicit opt-in) and never auto-apply, since the reviewer drafts them without the live skill body. Removes the producerless pending-suggestion session machinery. Regression test proves the junk path is gone; real-Telegram E2E verdict in the PR body.
2026-08-06 11:01:59 +05:30
HughTang
a1064adb68
fix(diagnostics-otel): propagate exported span context ( #112283 )
...
* fix(diagnostics-otel): harness.run root span adopts diagnostic trace context
Fall back to internalOrTrustedParentContext when there is no active
tracked parent, so the openclaw.harness.run root span (and its whole
OTel subtree) adopts the diagnostic traceId instead of minting a new
OTel root. This lets spans propagated via the diagnostic traceparent
(e.g. a2a-gateway a2a.call / downstream a2a.task) share one trace with
the run internals.
* fix(diagnostics-otel): propagate exported span context
Co-authored-by: HughTang <44694613+HughTang@users.noreply.github.com >
* fix(diagnostics): break propagation import cycle
* fix(diagnostics): preserve trace propagation contracts
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-06 08:41:20 +08:00
Patrick Erichsen
678a3c18a9
fix(gateway): finish successful sessions after timestamp races ( #119752 )
...
* fix(gateway): correlate session lifecycle by run
* test(qa): expect settled handoffs to survive restart quietly
* test(agents): split embedded run persistence coverage
2026-08-05 17:24:12 -07:00
Vincent Koc
397a60582a
fix(diagnostics): preserve OTEL startup failure ( #119747 )
2026-08-06 06:41:24 +08:00
Vincent Koc
880dde979b
fix(diagnostics): preserve telemetry during service shutdown ( #119705 )
...
* fix(diagnostics): preserve otel service shutdown lifecycle
* test(diagnostics): type OTEL unsubscribe callback
* test(diagnostics): normalize async stop assertion
* fix(plugins): preserve ordinary stop handling
2026-08-06 03:58:06 +08:00
Vincent Koc
5eb7eddce6
fix(memory): keep post-ready RPCs responsive ( #119710 )
...
Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 03:35:32 +08:00
Vincent Koc
824d170680
fix(memory): keep gateway RPCs responsive during startup ( #119676 )
...
* fix(memory): defer startup manager warmup
* test(plugins): register memory stop hook contract
2026-08-06 02:07:57 +08:00
Vincent Koc
eba4487b3a
improve(anthropic): reduce session catalog startup memory ( #119619 )
...
* perf(anthropic): lazy-load session catalog runtime
Punchcard-Session: coral-workshop-workshop-3f
* fix(anthropic): keep session catalog helpers private
Punchcard-Session: coral-workshop-workshop-3f
* docs(plugin-sdk): document catalog create target
Punchcard-Session: coral-workshop-workshop-3f
* fix(plugins): continue catalog target selection
Punchcard-Session: coral-workshop-workshop-3f
2026-08-06 00:28:56 +08:00
Vincent Koc
80da61668e
improve(doctor): avoid repeated plugin metadata scans ( #119482 )
...
* perf(doctor): reuse plugin metadata snapshot
Punchcard-Session: coral-workshop-workshop-3f
* test(doctor): update legacy issue mock
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): refresh metadata after repairs
* test(doctor): type legacy issue mock arguments
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): invalidate scoped plugin metadata
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): keep snapshot scope type private
Punchcard-Session: coral-workshop-workshop-3f
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-05 19:06:08 +08:00
Vincent Koc
eb39ac8cac
fix(plugins): keep install fixtures registry-valid ( #119489 )
...
Punchcard-Session: amber-workshop-river-yr
2026-08-05 13:26:02 +08:00
Vincent Koc
fd1662f49c
fix(cli): retire invalid secret flags and prove doctor recovery ( #118926 )
...
* test(qa): add doctor CLI recovery coverage
* test(qa): secure doctor exec SecretRef proof
* test(qa): gate doctor systemd recovery proof
* test(qa): normalize doctor terminal output
* test(qa): close doctor probe sockets
* test(qa): classify doctor probe as foreign
* test(qa): track doctor probe sockets
* test(qa): retain doctor instance narrowing
* test(qa): preserve observed doctor recovery proof
* test(qa): keep doctor recovery on stable dist
* test(qa): honor Windows exec ACL blocking
* test(qa): use canonical home for systemd recovery
* test(qa): follow bounded gateway recovery
* test(qa): accept lifecycle service label
* test(qa): align doctor recovery contract
Punchcard-Session: crisp-lantern-orchard-nv
* docs(secrets): remove retired provider bypasses
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor recovery target
Punchcard-Session: crisp-lantern-orchard-nv
* fix(cli): retire invalid secret provider flags
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor supervisor mode
Punchcard-Session: crisp-lantern-orchard-nv
* fix(plugins): remove dead secret path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* chore: drop release-owned changelog entry
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate doctor sudo scope
Punchcard-Session: crisp-lantern-orchard-nv
* fix(secrets): remove dead path bypass
Punchcard-Session: crisp-lantern-orchard-nv
* test(qa): isolate systemd user bus
Punchcard-Session: crisp-lantern-orchard-nv
2026-08-05 11:20:23 +08:00
Peter Steinberger
1f3d45b76f
refactor(plugins): consolidate lifecycle hook dispatch ( #119429 )
2026-08-04 20:11:22 -07:00
Vincent Koc
1ee0564b09
fix(discord): avoid doctor runtime loading ( #119391 )
...
* fix(discord): publish doctor capability metadata
Punchcard-Session: amber-workshop-river-yr
* fix(doctor): read packaged channel metadata
Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
mikasa
722dfb3d64
fix(status): status --all slows down with missing plugins ( #119203 )
...
* fix(status): avoid repeated discovery for missing channels
* fix(status): batch missing plugin repair hints
* fix(status): type missing plugin channel ids
* fix(status): preserve required channel ids
* fix(status): keep batch hint type internal
* fix(status): preserve batch repair laziness
---------
Co-authored-by: daily-fix[bot] <daily-fix[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-04 19:41:31 -07:00
Vincent Koc
832459d2ae
perf(agents): reuse provider policy manifest registry ( #119305 )
2026-08-05 02:25:11 +08:00
Vincent Koc
ef11eae39b
fix(plugins): preserve install index state across failures ( #119228 )
...
* fix(plugins): preserve install index policy config
* fix(plugins): restore complete install index state
* fix(plugins): fence install index rollback
* fix(plugins): fence generic install index rollback
* fix(plugins): keep lifecycle lease context private
* test(cli): align plugin index rollback mocks
* test(plugins): enforce index rollback receipts
* fix(plugins): serialize install rollback with config commit
* test(plugins): keep legacy index writer mock private
2026-08-05 01:04:17 +08:00
Vincent Koc
1aedd8f37e
fix(memory): load configured providers for CLI search ( #119186 )
...
* fix(memory): activate configured providers in CLI commands
* fix(memory): resolve configured embedding provider owners
* test(memory): keep metadata mock unset by default
* fix(memory): preserve plugin allowlist policy
* test(memory): classify plugin-owned root command
2026-08-04 22:31:10 +08:00
Vincent Koc
e4aab26d01
fix(cli): avoid repeated migration scans during local agent turns ( #119051 )
...
* fix(cli): avoid repeated state migration scans
* fix(build): preserve source runtime provenance
* fix(cli): persist state checkpoint before plugin convergence
* fix(cli): invalidate migration checkpoints on input changes
* fix(plugins): refresh changed doctor contracts
* fix(plugins): preserve warm Doctor contract indexes
* test(plugins): align manifest registry fixtures
* test(cli): isolate ACP process state
* fix(doctor): persist refreshed plugin indexes
* fix(doctor): verify persisted plugin index from disk
* fix(doctor): fence plugin index persistence
* fix(doctor): retain validated migration lease
* fix(plugins): canonicalize persisted build metadata
* fix(plugins): preserve config policy during install repair
2026-08-04 20:28:16 +08:00
Vincent Koc
c3f148f6b7
fix(plugins): preserve metadata reloads during models status ( #119183 )
...
* fix(plugins): preserve newer metadata publications
* test(plugins): type metadata snapshot fixture
2026-08-04 19:24:30 +08:00
Vincent Koc
32c5f02050
merge: keep llama.cpp completions on native transport
...
* https://github.com/openclaw/openclaw :
fix(ai): preserve Google simple completion sanitation
fix(tts): use prepared completion transport
fix(ai): prefer provider-owned completion streams
2026-08-04 15:20:56 +08:00
joshavant
d636f5f8e0
fix(agents): gate Claude live session protocol
2026-08-04 02:08:23 -05:00
Vincent Koc
ea90866916
fix(tts): use prepared completion transport
2026-08-04 11:11:55 +08:00
Vincent Koc
84d9e93dbb
chore(qa): cover plugin testing harness contracts ( #118933 )
...
* test(qa): cover plugin testing harness contracts
* test(qa): narrow plugin harness tool factory
2026-08-04 09:07:27 +08:00
Peter Steinberger
e16bc0108c
fix(gateway): keep plugin model allowlists static ( #118854 )
2026-08-03 17:39:45 -07:00
Patrick Erichsen
1aea2df935
fix(plugins): refresh bundled channel skills ( #119020 )
2026-08-03 17:31:00 -07:00
Michael Christenson II
7f7a709b1d
fix: Ollama missing from onboarding when its service is reachable ( #118020 )
2026-08-03 17:49:31 -06:00
Peter Steinberger
a78f2c40bf
test(plugins): align tool fixtures with owner policy ( #118959 )
2026-08-03 16:09:05 -07:00
Vincent Koc
1d446ad2cc
fix(plugins): remove stale load paths during uninstall ( #118930 )
...
* test(qa): prove marketplace plugin updates
* fix(plugins): clean exact install load paths on uninstall
* fix(ci): register marketplace lifecycle assertions
2026-08-03 21:57:54 +00:00
Peter Steinberger
25aa29d7a1
refactor: delete dead post-landing plugin/hooks scaffolding ( #118920 )
...
* refactor: delete dead post-landing plugin/hooks scaffolding
* fix(security): resolve fast-uri and undici HIGH advisories
2026-08-04 04:26:22 +08:00