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