Add-on lifecycle
From class library to running add-on
An OpenCaddis add-on is a compiled .NET assembly that registers FabrCore agents, plugins, tools, or other discoverable components. Server Builder helps create and publish it; Server loads and runs it.
Save a valid Builder configuration in the app, select Server Builder mode, choose the shared add-on output directory, and start the host.
The folder must contain exactly one .sln or .slnx. The app can create a .NET 10 .slnx when none exists.
The Builder creates a .NET 10 project, adds FabrCore.Sdk 1.6.3, and adds the project to the solution.
OpenCaddis uploads the bundled exact-version FabrCore Skills, then creates a todo-driven Harness agent with the project, solution, output, Roslyn, filesystem, and .NET CLI boundaries.
Ask the agent to inspect, implement, reload semantic state, build, and run solution tests.
When requested, the builder compiles Release and copies the project's primary DLL into the configured add-on directory.
OpenCaddis.Server creates a fresh catalog, discovers the DLL, and loads compatible agent/plugin registrations for use in Surface.
Design expectations
- Reference
FabrCore.Sdkfor agent, plugin, and tool contracts. - Use the Builder agent's managed Skills for current FabrCore guidance; Skills do not grant additional execution authority.
- Keep package versions compatible with the Server's FabrCore 1.6.3 runtime.
- Include only the primary add-on DLL in the current publish step; dependencies must already be shared or otherwise resolvable.
- Do not overwrite host-owned FabrCore, Orleans, Microsoft, System, or OpenCaddis.Server assemblies.
- Treat add-ons as trusted code with the same process privileges as the local Server.
Publishing changes a file on disk. The running Server does not hot-load that replacement. Stop or restart the Server so the collectible context is unloaded and a fresh directory scan occurs.
More FabrCore guidance
OpenCaddis supplies the development loop, while FabrCore defines the supported agent, plugin, and tool contracts. Use the FabrCore documentation for current framework APIs and patterns.