Skip to content

feat(registration): centralize decorated plugin surfaces - #15

Merged
offendingcommit merged 1 commit into
mainfrom
feat/decorator-registration-contract
Jul 30, 2026
Merged

feat(registration): centralize decorated plugin surfaces#15
offendingcommit merged 1 commit into
mainfrom
feat/decorator-registration-contract

Conversation

@offendingcommit

Copy link
Copy Markdown
Owner

Summary

Runtime-gated Hermes plugins can now keep every active surface inside the kit’s decorator contract instead of maintaining a second registration framework. register_plugin accepts an already-filtered declaration set while retaining duplicate rejection, deterministic ordering, optional-skill handling, exact summaries, and one lifecycle receipt.

Existing plugins can adopt decorators without changing their public schemas or handler-owned error envelopes: @tool(schema=..., validate_required=False) deep-copies and validates the original Hermes schema while preserving its required fields for the model.

Validation

  • make test (77 passed)
  • make build
  • persona-voice consumer contract (29 passed against this checkout)
  • memory-sync focused and full consumer suites passed against this checkout
  • git diff --check

Post-Deploy Monitoring & Validation

  • Search gateway logs for registered plugin= after each migrated consumer reload.
  • Healthy: one receipt per plugin, exact active names, no schema or import failures.
  • Failure: missing receipt, duplicate declaration error, schema rejection, or changed handler envelope. Roll back consumer pins before reloading gateways.
  • Window/owner: first reload of each migrated plugin and the following 15 minutes, Jonathan.

Compound Engineering

@offendingcommit
offendingcommit force-pushed the feat/decorator-registration-contract branch from 86bb928 to 31e75fc Compare July 30, 2026 21:21
@offendingcommit
offendingcommit merged commit 3452717 into main Jul 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant