Skip to content

Bind rho.ext to the typed agent lifecycle or remove the dormant surface #9

Description

@sounkou-bioinfo

Current contradiction

The documented extension architecture is not connected to the implemented agent lifecycle.

At commit f3475cf000a379732d37cfb317754dec5ef2b4db:

  • rho.ext does not import rho.agent and no rho.agent source consumes RhoExtensionRuntime;
  • handlers are registered and dispatched by character event names, despite the typed-event contract in dev-notes/design/provider-and-event-protocols.md;
  • runtime fields stale, bound, and pending_provider_registrations are initialized, but no implementation binds, marks stale, or flushes pending registrations;
  • registered commands and providers have no public consumer;
  • registered tools reach the rho.bio.agent README only by reading runtime@state$tools directly;
  • the sole rho.bio.agent fixture asserts that one name exists in that private environment; it does not run an agent, resolve a resource, execute an operation, or preserve a receipt;
  • the dependency graph shown in docs/architecture.md is therefore aspirational rather than the current package graph.

This is exactly the dormant protocol surface that the engineering constitution says to remove or prove through a producer, transport, consumer, ordering rule, and fixture.

Resolution

Choose one outcome before adding more extension or bio-agent API:

Preferred: land one real vertical slice

  1. Bind an extension runtime explicitly to one RhoAgent through a public host operation.
  2. Admit tools through the agent's public tool protocol, not by reaching into an environment.
  3. Dispatch typed RhoAgentEvent values with typed context through S7 methods.
  4. Specify which handlers are policy gates, committed-state notifications, or lagging observations; await or flush them accordingly.
  5. Remove command/provider registration until a current host consumes it, or include that consumer in the same slice.
  6. Run bio_describe_manifest through a real agent and add one resource-resolution/query tool whose result carries the resolution receipt into the committed session.
  7. Prove shutdown/flush, handler failure, cancellation, and session ordering.

Otherwise

Remove rho.ext and rho.bio.agent from the current package graph until a downstream application pulls the protocol back. Do not retain a future-only compatibility surface in a pre-release monorepo.

Acceptance evidence

  • no character event-name switch remains in the public extension protocol;
  • no downstream package reads runtime@state;
  • every retained runtime field has a producer and consumer;
  • an authored Rmd proves agent bind, typed event order, tool admission, receipt retention, failure, cancellation, and shutdown flush;
  • docs/architecture.md, README package claims, and the actual DESCRIPTION graph agree.

Prepared in Pi using GPT Sol 5.6 High; the producer/consumer inventory was checked against the complete monorepo source.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions