- OpenCode plugin: rebind from non-existent events (session.created/message.updated/
session.compacted/file.edited/session.deleted) to real OpenCode hooks
(tool.execute.after, chat.message, experimental.session.compacting, event bus
session.idle/session.deleted). Plugin now actually captures. (#2435#2419)
- Search client: parse worker's data.content block shape (not data.items); resolve
worker port via SettingsDefaultsManager + env override. (#2406)
- Contract test asserts plugin subscribes only to real event names and search client
parses the real response shape — regression guard. (#2462)
- OpenClaw: restore session init on session_start/after_compaction (dedup-guarded) and
fall back to process.cwd() instead of dropping observations without workspaceDir.
Full test suite now green (1807 pass, 0 fail).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>