Commit Graph

25 Commits

Author SHA1 Message Date
xj
4b16ac9219
Merge pull request #2468 from gh-xj/review/pr-1363-plugin-hook-fixes
refactor(plugins): add validation profiles with strict runtime defaults
2026-03-01 18:04:39 -08:00
xj
e16bc37017 fix(plugins): block manifest auto-approve spoofing and discovery panic (RMN-270) 2026-03-01 17:28:54 -08:00
xj
36b047179d fix(ci): format manifest profile regression tests 2026-03-01 17:09:58 -08:00
xj
362a81a3e5 refactor(plugins): add validation profiles with strict runtime defaults 2026-03-01 17:04:17 -08:00
xj
8c235ee7af fix(ci): satisfy lint gate and dedupe manifest validation 2026-03-01 14:37:02 -08:00
xj
f01a864481 fix(plugins): align manifest tests with optional metadata 2026-03-01 14:37:02 -08:00
xj
13feef9cee fix(plugins): address copilot review follow-ups 2026-03-01 14:37:02 -08:00
xj
9294d38eba Merge remote-tracking branch 'upstream/main' into tmp/pr1365-sync
# Conflicts:
#	.github/workflows/ci-run.yml
2026-03-01 09:57:27 -08:00
chumyin
1ab6d2db41 fix: restore security and stability scan gates 2026-03-02 00:21:16 +08:00
xj
0605f65ca8 style: apply rustfmt for CI lint gate 2026-03-01 03:11:24 -08:00
xj
30bd2bac71 fix(plugins): satisfy strict-delta clippy on runtime 2026-03-01 01:41:48 -08:00
xj
ac27788a3b fix(plugins): wire provider routing and timeout permit release 2026-03-01 01:21:53 -08:00
argenis de la rosa
08ce6fefd8 fix(plugins): align wasm runtime rebase with main schema 2026-02-28 21:33:11 -05:00
xj
bdcb8b6916 fix(runtime): resolve wasm store borrow and default impl conflicts 2026-02-28 21:33:11 -05:00
xj
9b0aa53adf feat(plugins): enforce runtime limits and add echo plugin example 2026-02-28 21:33:11 -05:00
xj
6091553d12 test(plugins): add runtime abi and registry mapping unit tests 2026-02-28 21:33:11 -05:00
xj
05d36862c5 feat(plugins): add hot-reload state and activate observer bridge 2026-02-28 21:33:11 -05:00
xj
49a520df3e feat(plugins): execute wasm tools/providers via host abi bridge 2026-02-28 21:33:11 -05:00
argenis de la rosa
0ccff1cd12 fix(plugins): preserve tool errors and support config-aware reinit 2026-02-28 19:51:37 -05:00
argenis de la rosa
f677367e4b style: apply rustfmt to agent-authored changes 2026-02-28 19:51:37 -05:00
argenis de la rosa
467fea87c6 refactor(hooks): extract HookRunner factory and make plugin registry init idempotent
- Add HookRunner::from_config() factory that encapsulates hook construction
  from HooksConfig, replacing 3 duplicated blocks in agent/loop_, gateway,
  and channels modules.
- Make plugin registry initialize_from_config() idempotent: skip re-init
  if already initialized, log debug message instead of silently overwriting.
- Add capability gating for tool_result_persist hook modifications.
2026-02-28 19:51:37 -05:00
argenis de la rosa
ade0e91898 feat(plugins): route declared tools/providers through plugin registry 2026-02-28 19:51:37 -05:00
argenis de la rosa
1d6afe792b feat(plugins): scaffold wasm runtime and wire core hook lifecycle 2026-02-28 19:51:37 -05:00
VirtualHotBar
0a42329ca5 fix: session leftovers after db47f56
- Demote session normal flow logs to debug\n- Skip session operations when CHANNEL_SESSION_CONFIG is uninitialized\n- Add spawn_blocking panic context for SQLite session manager\n- Fix fmt/clippy regressions (Box::pin large futures, cfg features, misc lints)
2026-02-28 15:23:42 +08:00
argenis de la rosa
b5292f54aa feat: plugin system
Implements a plugin system for ZeroClaw modeled after OpenClaw's architecture.

Key components:
- Plugin trait and PluginApi for registering tools/hooks
- Plugin manifest (zeroclaw.plugin.toml) for metadata
- Plugin discovery from bundled, global, and workspace directories
- PluginRegistry managing loaded plugins, tools, and hooks
- Error isolation via panic catching in register()
- Config integration via [plugins] section

Example plugin included in extensions/hello-world/.

Closes #1414

# Conflicts:
#	src/config/mod.rs
#	src/config/schema.rs
2026-02-26 21:49:10 -05:00