Jason (Json)
77a682c5de
fix(agents): retry empty post-tool final turns ( #93073 )
...
Recover assistant turns that complete tool work without producing a visible final answer, while preserving intentional silent replies.
Use concrete tool-instance replay safety across embedded, Codex, and Copilot runtimes so unknown, mutating, async-started, and durable recall operations fail closed. Preserve genuine empty Codex final items without promoting commentary or tool-progress echoes.
Supersedes #90872 . Thanks @fuller-stack-dev.
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-06-15 00:08:57 -07:00
Peter Steinberger
4d54d196c9
docs: document plugin discovery helpers
2026-06-04 04:41:47 -04:00
Vincent Koc
570e2db252
fix(plugins): isolate cached tool runtime siblings
2026-05-31 21:05:23 -04:00
Peter Steinberger
82a0ba8c4c
fix(plugins): remove redundant proxy assertion
2026-05-31 15:02:44 +01:00
Peter Steinberger
d99c824ac1
fix(plugins): delegate wrapped tool properties
2026-05-31 15:02:44 +01:00
Peter Steinberger
f62a22ce56
fix(plugins): preserve wrapped tool descriptors
2026-05-31 15:02:44 +01:00
Peter Steinberger
643633c1e5
fix(plugins): scope tool callbacks during materialization
2026-05-31 15:02:44 +01:00
Peter Steinberger
ec8cb8bcbf
feat: add MCP code-mode namespace ( #88636 )
...
* feat: add MCP code-mode namespace
* fix: unblock mcp namespace ci gates
2026-05-31 15:02:19 +01:00
Peter Steinberger
00d8d7ead0
refactor: extract normalization core package
...
Extract shared normalization/coercion helpers into private @openclaw/normalization-core workspace package while preserving existing plugin SDK helper subpaths.\n\nAlso keeps direct normalization-core imports internal, wires UI/build/loader resolution, and replaces the slow PR network CodeQL lane with a fast added-line boundary scan while retaining full CodeQL for scheduled/manual runs.\n\nVerification: local moved tests, plugin SDK boundary tests, extension loader tests, agents-support shard, UI build/test, build artifacts, lint, workflow guards, autoreview, and GitHub CI passed on PR head 963d893715 .
2026-05-31 01:33:00 +01:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Peter Steinberger
e761eb8f3e
fix: derive plugin media trust from metadata ( #86410 )
2026-05-25 14:18:36 +01:00
Peter Steinberger
02182d5a30
refactor: remove sender owner tool gating
2026-05-21 15:14:48 +01:00
zucchini
3adbbe7c34
fix(plugins): dispatch cached tools by runtime name ( #78716 )
...
Fix cached descriptor-backed plugin tool dispatch for unnamed factories sharing manifest contracts.
Thanks @zanni098!
2026-05-08 12:44:01 +05:30
Vincent Koc
09e7eb6687
fix(plugins): preserve optional tool metadata
2026-05-03 21:06:46 -07:00
Vincent Koc
e3cba91ef0
fix(plugins): respect manifest optional tool siblings
2026-05-03 20:44:18 -07:00
Vincent Koc
571d75aab3
fix(plugins): honor plugin tool denylists
2026-05-03 19:33:00 -07:00
Vincent Koc
443f7035a2
fix(plugins): filter unavailable optional tools
2026-05-03 17:10:41 -07:00
Peter Steinberger
baadd74b6b
fix(plugins): narrow optional tool cold loads
2026-05-04 00:41:01 +01:00
Peter Steinberger
e5ec14a06a
fix(plugins): discover alsoAllow plugin tools
...
Summary:
- Discover optional plugin tools named in tools.alsoAllow without treating additive alsoAllow as a restrictive plugin-tool allowlist.
- Preserve explicit alsoAllow wildcards and keep default non-optional plugin tools visible.
- Document llm-task and lobster enablement and add changelog coverage.
Verification:
- pnpm test src/agents/tool-policy.test.ts src/gateway/tools-invoke-http.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/plugins/tools.optional.test.ts
- pnpm exec oxfmt --check --threads=1 src/agents/sandbox-tool-policy.ts src/agents/tool-policy.ts src/agents/tool-policy.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/gateway/tools-invoke-http.test.ts src/plugins/tools.ts src/plugins/tools.optional.test.ts
- git diff --check
- Blacksmith Testbox tbx_01kqr05924hz9kw50myxrqmsf9: pnpm check:changed
Fixes #76616
2026-05-03 23:46:14 +01:00
Vincent Koc
9d5fedb9b5
fix(plugins): normalize tool name conflicts
2026-05-03 11:27:24 -07:00
Edionwheels
66ffb29679
fix(plugins): cold-load partial tool registries
...
Fix plugin tool discovery when a selected wildcard plugin set is resolved against a partial active registry.\n\nRequire scoped registries to cover every requested plugin owner, force cold-load incomplete tool discovery registries without replacing active plugin runtime state, and add regression coverage for the partial-registry path.\n\nFixes #76780.\nThanks @lilesjtu.
2026-05-03 19:09:34 +01:00
Peter Steinberger
d00bcf555b
test(plugins): cover config-origin tool cold load diagnostics
2026-05-03 13:22:47 +01:00
HCL
a3b94f3910
fix(plugins): restore cold-registry load for path-based plugin tools ( #76598 )
...
`resolvePluginTools` returned an empty tool list when no pre-warmed
channel/active registry was found after startup — the on-demand fallback
removed by PR #76004 was only added back for memory and capability-provider
surfaces, leaving path-based (origin "config") plugin tool factories silent.
Fix: when `resolvePluginToolRegistry` returns null, trigger a standalone
registry load via `ensureStandaloneRuntimePluginRegistryLoaded`, then retry.
Adds regression test asserting tools are resolved without pre-warming.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-03 13:22:47 +01:00
Peter Steinberger
5e9135f2e2
fix: keep active memory tools available
2026-05-03 12:24:03 +01:00
Alex Knight
1e4098134a
fix: enable browser tools with full profile ( #76557 )
...
Summary:
- The PR makes `tools.profile: "full"` resolve to a wildcard allowlist, teaches plugin optional-tool allowlist checks to honor `*`, and updates regression tests, docs, and the changelog for browser tool availability.
- Reproducibility: yes. source-level reproduction is high confidence: current main makes `full` resolve to no ... plugin allowlist helpers do not accept `*`. I did not run a live browser session in this read-only review.
Automerge notes:
- PR branch already contained follow-up commit before automerge: docs: update full profile description and add changelog for #76507
Validation:
- ClawSweeper review passed for head b5329de33c .
- Required merge gates passed before the squash merge.
Prepared head SHA: b5329de33c
Review: https://github.com/openclaw/openclaw/pull/76557#issuecomment-4365736091
Co-authored-by: Alex Knight <aknight@atlassian.com >
2026-05-03 11:12:30 +00:00
Josh Avant
b779c45a78
fix: memoize plugin descriptor config keys ( #76240 )
2026-05-02 15:25:00 -05:00
Peter Steinberger
3240cccb8a
fix(plugins): expose startup tool registry in catalog
2026-05-02 15:01:01 +01:00
Peter Steinberger
1466878c36
refactor: cache plugin tool descriptors ( #76079 )
...
Co-authored-by: Shakker <shakkernerd@users.noreply.github.com >
2026-05-02 14:52:21 +01:00
DmitryPogodaev
8283c5d6cc
perf(plugins): reuse startup runtime registry
...
Reuse the startup runtime plugin registry across provider/tool helper paths while preserving standalone CLI/MCP fallback loading.
Includes follow-up fixes for migration/provider/tool registry bootstrap and regression coverage for compatible registry reuse.
Co-authored-by: DmitryPogodaev <pogodaev.dm@gmail.com >
2026-05-02 13:44:49 +01:00
Peter Steinberger
a254fdaf42
refactor: isolate plugin tool factory execution
2026-05-02 13:01:51 +01:00
Peter Steinberger
d90a08a447
refactor: extract plugin tool factory cache
2026-05-02 12:41:54 +01:00
Peter Steinberger
40f2bf3950
fix: cache plugin tool factories by context
2026-05-02 12:19:29 +01:00
Shakker
3cf1dd982b
fix: gate plugin tools from manifest availability
2026-05-02 06:21:08 +01:00
Shakker
7641783d6b
fix: enforce plugin tool manifest contracts
2026-05-02 06:21:08 +01:00
Shakker
e6825fceaa
perf: scope plugin tool discovery to manifest tool owners
2026-05-02 06:21:08 +01:00
Shakker
fac06a2320
perf: scope reply runtime plugin startup
2026-05-02 06:21:07 +01:00
Shakker
80835f5416
perf: reuse active plugin registry for tool discovery
2026-05-02 06:21:07 +01:00
Peter Steinberger
0df90d9b8d
fix: trace plugin tool factory timings ( #75823 )
...
* fix: trace plugin tool factory timings
* docs: document plugin tool timing traces
* fix: keep plugin tools mcp stdout clean
* test: type plugin tools mcp mock
* test: complete plugin tools mcp mock
* test: preserve console helpers in mcp test
* chore: refresh generated protocol models
2026-05-01 23:14:18 +01:00
Peter Steinberger
ed8f50f240
refactor: simplify plugin dependency handling
...
Simplify plugin installation and runtime loading around package-manager-owned dependencies, with Jiti reserved for local/TS fallback paths.
Also scans npm plugin install roots so hoisted transitive dependencies are covered by dependency denylist and node_modules symlink checks.
2026-05-01 21:32:22 +01:00
Peter Steinberger
866be0baae
fix(plugins): scope tool registry reuse to plugin plan
2026-05-01 21:13:50 +01:00
Peter Steinberger
36e687edf0
fix(plugins): use built code for tool discovery
2026-05-01 14:38:29 +01:00
Peter Steinberger
29ed5266bf
fix: keep runtime deps repair out of hot paths
2026-05-01 09:26:45 +01:00
EVA
1adaa28dc8
[plugin sdk] Add generic plugin host-hook contracts ( #72287 )
...
Merged via squash.
Prepared head SHA: 68e5f2ce19
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-27 17:07:02 -07:00
Peter Steinberger
3c6d178f4e
docs: clarify malformed plugin tool guards
2026-04-27 13:27:19 +01:00
Peter Steinberger
0a076bc0fc
fix: isolate malformed plugin tools
2026-04-27 13:22:28 +01:00
Peter Steinberger
c4e5ca8625
fix(agents): expose configured MCP tools in Pi profiles
2026-04-23 00:47:37 +01:00
Vincent Koc
7bb61a07db
fix(check): repair plugin and secret type drift
2026-04-06 15:36:42 +01:00
Peter Steinberger
58f4099a4f
refactor: share plugin runtime load context
2026-04-06 15:26:32 +01:00
Vincent Koc
9823833383
fix(plugins): preserve activation provenance ( #59641 )
...
* fix(plugins): preserve activation provenance
* fix(gateway): preserve activation reason metadata
* fix(plugins): harden activation state policy
2026-04-02 20:57:14 +09:00
Ayaan Zaidi
e3faa99c6a
fix(plugins): preserve gateway-bindable registry reuse
...
# Conflicts:
# src/agents/runtime-plugins.test.ts
# src/agents/runtime-plugins.ts
# src/plugins/loader.ts
# src/plugins/tools.ts
2026-03-29 09:59:06 +05:30