Skip to content

refactor: roar extension architecture around focused runtime, integration, CLI, and publish seams#69

Merged
TrevorBasinger merged 7 commits intomainfrom
tb/extension-architecture-refactor
Apr 21, 2026
Merged

refactor: roar extension architecture around focused runtime, integration, CLI, and publish seams#69
TrevorBasinger merged 7 commits intomainfrom
tb/extension-architecture-refactor

Conversation

@TrevorBasinger
Copy link
Copy Markdown
Member

@TrevorBasinger TrevorBasinger commented Apr 21, 2026

Summary

This PR completes the extension-architecture refactor roadmap in roar and updates the docs to match the current codebase.

Key changes:

  • Extracts host runtime resources so proxy lifecycle is no longer embedded in shared host execution/coordinator paths.
  • Moves integration bootstrap wiring into roar.integrations and adds typed provider entry points for telemetry and VCS providers.
  • Replaces ad hoc top-level CLI command wiring with a small command registry while preserving existing lazy-loading/help behavior.
  • Adds a narrow remote-registry transport seam for publish flows, keeping GLaaS support intact without hard-wiring publish internals directly to the GLaaS client.
  • Adds the extension-architecture refactor proposal doc and updates the design doc to reflect the current extension model.

Why

The codebase had already converged on a few focused extension seams rather than a generic plugin host. This PR makes those seams explicit, reduces cross-layer coupling, and leaves roar easier to maintain and extend without changing user-facing behavior.

Architecture Seams

This PR cleans up some cross pollination between modules and enforces the following clear boundaries.

   flowchart LR
     subgraph CLI["CLI"]
       Registry["command_registry.py"]
       CLIInit["cli/__init__.py"]
       Commands["top-level command specs"]
       Registry --> CLIInit
       CLIInit --> Commands
     end

     subgraph Runtime["Execution runtime"]
       Host["host_execution.execute_host_run"]
       Coordinator["RunCoordinator"]
       Resources["RuntimeResourceController"]
       Proxy["ProxyRuntimeResource"]
       Backends["backend adapters: local, ray, osmo"]
       Host --> Coordinator
       Host --> Resources
       Resources --> Proxy
       Coordinator --> Backends
     end

     subgraph Integrations["Integrations"]
       CoreBootstrap["core.bootstrap"]
       IntBootstrap["integrations.bootstrap"]
       Builtins["built-in providers"]
       Discovery["typed provider discovery"]
       Telemetry["roar.telemetry_providers"]
       VCS["roar.vcs_providers"]
       Legacy["roar.integrations legacy fallback"]
       CoreBootstrap --> IntBootstrap
       IntBootstrap --> Builtins
       IntBootstrap --> Discovery
       Discovery --> Telemetry
       Discovery --> VCS
       Discovery --> Legacy
     end

     subgraph Publish["Publish"]
       PublishRuntime["publish runtime and service"]
       Preparation["session, register, and put preparation"]
       Transport["RemoteRegistryTransport"]
       Glaas["GlaasRemoteRegistryTransport"]
       PublishRuntime --> Preparation
       Preparation --> Transport
       Transport --> Glaas
     end
Loading

@TrevorBasinger TrevorBasinger changed the title Tb/extension architecture refactor refactor: roar extension architecture around focused runtime, integration, CLI, and publish seams Apr 21, 2026
@TrevorBasinger TrevorBasinger marked this pull request as ready for review April 21, 2026 16:14
@TrevorBasinger TrevorBasinger merged commit e340868 into main Apr 21, 2026
12 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