UAT: Pluggable scope chain resolution extensions (v3.6.0 deliverable #13) not implemented — no custom scope resolver registration mechanism #5705

Open
opened 2026-04-09 08:42:27 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area: Plugin Architecture — Scope Chain Resolution Extensions
Milestone: v3.6.0
Severity: Critical (v3.6.0 deliverable #13 explicitly requires this)

What Was Tested

Searched the entire codebase for any implementation of "pluggable scope chain resolution extensions" as required by v3.6.0 deliverable #13.

Expected Behavior (from spec)

v3.6.0 Deliverable #13:

Pluggable scope chain resolution extensions | §Scope Chain Resolution | Custom scope resolver registered and invoked during name resolution

The spec describes a mechanism where custom scope resolvers can be registered and invoked during name resolution (i.e., when resolving [[server:]namespace/]name format entity names). This allows third-party plugins to extend how entity names are resolved — for example, adding custom namespace prefixes, remote server lookups, or alias resolution strategies.

The ComponentResolver in application/services/component_resolver.py implements a 3-level scope chain (plan > project > global) for pipeline components, but this is for ACMS pipeline component resolution, not for entity name resolution.

Actual Behavior

No "pluggable scope chain resolution extension" mechanism exists for entity name resolution:

  1. No ScopeChainExtension protocol — The 30 extension points in extension_protocols.py do not include any scope chain resolution extension.
  2. No scope resolver registration — The PluginManager and ComponentResolver have no method to register custom name resolvers.
  3. No invocation hook — Entity name resolution (e.g., in repositories, CLI commands) has no hook point for custom resolvers.

The ComponentResolver (application/services/component_resolver.py) handles ACMS pipeline component scope resolution, but this is a different concern from entity name resolution.

Code Location

  • src/cleveragents/infrastructure/plugins/extension_protocols.py — 30 extension protocols defined, none for scope chain resolution
  • src/cleveragents/infrastructure/plugins/extension_catalog.py — 30 extension points registered, none for scope chain resolution
  • src/cleveragents/application/services/component_resolver.py — ACMS component resolver (not entity name resolver)
  • src/cleveragents/infrastructure/database/repositories.pyresolve_namespaced_name() at line 2808 — no plugin hook

Impact

v3.6.0 deliverable #13 is entirely unimplemented. The verifiable check states:

"Custom scope resolver registered and invoked during name resolution"

This cannot be verified because:

  1. There is no API to register a custom scope resolver
  2. Name resolution code has no plugin hook points
  3. No extension point exists for this functionality

Steps to Reproduce

  1. Search for ScopeChainExtension — not found
  2. Search for scope_chain_resolver — not found
  3. Review extension_protocols.py — 30 protocols, none for scope chain resolution
  4. Review extension_catalog.py — 30 extension points, none for scope chain resolution

Suggested Fix

  1. Add a ScopeChainResolverExtension protocol to extension_protocols.py:
@runtime_checkable
class ScopeChainResolverExtension(Protocol):
    """Protocol for custom scope chain resolution plugins."""
    
    @property
    def resolver_name(self) -> str: ...
    
    def can_resolve(self, name: str) -> bool: ...
    
    def resolve(self, name: str, context: Mapping[str, Any]) -> str | None: ...
  1. Add a 31st extension point scope.chain_resolver to the extension catalog.

  2. Add a hook in resolve_namespaced_name() in repositories to invoke registered resolvers.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area**: Plugin Architecture — Scope Chain Resolution Extensions **Milestone**: v3.6.0 **Severity**: Critical (v3.6.0 deliverable #13 explicitly requires this) ### What Was Tested Searched the entire codebase for any implementation of "pluggable scope chain resolution extensions" as required by v3.6.0 deliverable #13. ### Expected Behavior (from spec) v3.6.0 Deliverable #13: > **Pluggable scope chain resolution extensions** | §Scope Chain Resolution | Custom scope resolver registered and invoked during name resolution The spec describes a mechanism where custom scope resolvers can be registered and invoked during name resolution (i.e., when resolving `[[server:]namespace/]name` format entity names). This allows third-party plugins to extend how entity names are resolved — for example, adding custom namespace prefixes, remote server lookups, or alias resolution strategies. The `ComponentResolver` in `application/services/component_resolver.py` implements a 3-level scope chain (plan > project > global) for pipeline components, but this is for ACMS pipeline component resolution, not for entity name resolution. ### Actual Behavior No "pluggable scope chain resolution extension" mechanism exists for entity name resolution: 1. **No `ScopeChainExtension` protocol** — The 30 extension points in `extension_protocols.py` do not include any scope chain resolution extension. 2. **No scope resolver registration** — The `PluginManager` and `ComponentResolver` have no method to register custom name resolvers. 3. **No invocation hook** — Entity name resolution (e.g., in repositories, CLI commands) has no hook point for custom resolvers. The `ComponentResolver` (`application/services/component_resolver.py`) handles ACMS pipeline component scope resolution, but this is a different concern from entity name resolution. ### Code Location - `src/cleveragents/infrastructure/plugins/extension_protocols.py` — 30 extension protocols defined, none for scope chain resolution - `src/cleveragents/infrastructure/plugins/extension_catalog.py` — 30 extension points registered, none for scope chain resolution - `src/cleveragents/application/services/component_resolver.py` — ACMS component resolver (not entity name resolver) - `src/cleveragents/infrastructure/database/repositories.py` — `resolve_namespaced_name()` at line 2808 — no plugin hook ### Impact v3.6.0 deliverable #13 is entirely unimplemented. The verifiable check states: > "Custom scope resolver registered and invoked during name resolution" This cannot be verified because: 1. There is no API to register a custom scope resolver 2. Name resolution code has no plugin hook points 3. No extension point exists for this functionality ### Steps to Reproduce 1. Search for `ScopeChainExtension` — not found 2. Search for `scope_chain_resolver` — not found 3. Review `extension_protocols.py` — 30 protocols, none for scope chain resolution 4. Review `extension_catalog.py` — 30 extension points, none for scope chain resolution ### Suggested Fix 1. Add a `ScopeChainResolverExtension` protocol to `extension_protocols.py`: ```python @runtime_checkable class ScopeChainResolverExtension(Protocol): """Protocol for custom scope chain resolution plugins.""" @property def resolver_name(self) -> str: ... def can_resolve(self, name: str) -> bool: ... def resolve(self, name: str, context: Mapping[str, Any]) -> str | None: ... ``` 2. Add a 31st extension point `scope.chain_resolver` to the extension catalog. 3. Add a hook in `resolve_namespaced_name()` in repositories to invoke registered resolvers. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.6.0 milestone 2026-04-09 08:44:11 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#5705
No description provided.