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
- Bind an extension runtime explicitly to one
RhoAgent through a public host operation.
- Admit tools through the agent's public tool protocol, not by reaching into an environment.
- Dispatch typed
RhoAgentEvent values with typed context through S7 methods.
- Specify which handlers are policy gates, committed-state notifications, or lagging observations; await or flush them accordingly.
- Remove command/provider registration until a current host consumes it, or include that consumer in the same slice.
- 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.
- 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.
Current contradiction
The documented extension architecture is not connected to the implemented agent lifecycle.
At commit
f3475cf000a379732d37cfb317754dec5ef2b4db:rho.extdoes not importrho.agentand norho.agentsource consumesRhoExtensionRuntime;dev-notes/design/provider-and-event-protocols.md;stale,bound, andpending_provider_registrationsare initialized, but no implementation binds, marks stale, or flushes pending registrations;rho.bio.agentREADME only by readingruntime@state$toolsdirectly;rho.bio.agentfixture 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;docs/architecture.mdis 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
RhoAgentthrough a public host operation.RhoAgentEventvalues with typed context through S7 methods.bio_describe_manifestthrough a real agent and add one resource-resolution/query tool whose result carries the resolution receipt into the committed session.Otherwise
Remove
rho.extandrho.bio.agentfrom 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
runtime@state;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.