Skip to content

v1.8.0

Choose a tag to compare

@dcadolph dcadolph released this 13 Jul 21:58

Extensions now run as drop-in plugin binaries. Build one against the SDK, drop it in a directory, and point a stock Yardmaster at it with --plugins-dir or YARDMASTER_PLUGINS_DIR. No recompile of the server.

  • New package github.com/dcadolph/yardmaster/sdk/plugin: fill an Extension with the same interfaces the in-process SDK registers and call plugin.Serve from main. One plugin serves any mix of tools, notifiers, AI providers, and secret engines.
  • The server launches each executable in the plugins directory at startup, asks what it provides, and registers every seam. A plugged-in extension validates, executes, masks, and audits exactly like a compiled-in one.
  • Plugins speak gRPC over a local socket with mutual TLS, supervised by the server. Tool output streams into the run log as it happens, and dynamic secret leases revoke through the plugin that minted them.
  • The worker command takes the same flag, so plugged-in tools run wherever runs execute.
  • A plugin that fails to launch is logged and skipped. A name collision with a built-in or another plugin stops startup with a clear message.
  • The Extend in Go guide covers both paths, compile in or plug in, at yardmaster.dev/docs/sdk.