Skip to content

Five registries disagree about which backends exist #965

Description

@DROOdotFOO

Five places independently declare which agent backends exist, and they disagree.
Each disagreement is a live bug class rather than untidiness, and adding a fourth
native backend widens all five at once.

Name Resolver.@providers Selector.@backend_table ExecutorConfig.@type backend
grok_native yes yes missing
cursor missing yes yes
codex no reserved, intentional yes

And in raxol_symphony, Runner.resolve_from_config/1 (runner.ex:99-115)
resolves "raxol_agent_session" and "noop", while
Config.Schema.@supported_runner_kinds (config/schema.ex:23) lists neither,
so both resolve and then fail their own preflight.

Consequences today

  • grok_native is absent from the typespec, so Dialyzer cannot see it.
  • cursor is absent from @providers. @by_string (resolver.ex:164) is
    derived from @providers, so harness_from_string/1 cannot name it: cursor
    is selectable in code and unreachable from /login, from --backend string
    resolution, and from .raxol/config.json.
  • The docs drift the same way: AGENT_FRAMEWORK.md:206 omits grok_native and
    cursor, CODING_AGENT.md:93-94 omits all three native backends.

Proposed direction

Derive the tables from one declaration rather than merging them by hand, with
Resolver.@providers becoming a filter over the catalog so cursor is declared
and selectable rather than absent. ADR-0034 argues this should land alongside
the next name added rather than after it.

Recorded in docs/adr/0034-foreign-coding-agent-seams.md, gap 4.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions