Skip to content

P2: remove duplicate resolveAdapter() in daemon session_watcher #398

@rsnodgrass

Description

@rsnodgrass

Parent Epic

Part of #396 (unify agent abstraction layer)

Problem

internal/daemon/agentwork/session_watcher.go has a resolveAdapter() function with a hard-coded switch statement that duplicates the adapter registry in internal/session/adapters/adapter.go:

// session_watcher.go — THIS IS REDUNDANT
func resolveAdapter(name string) (adapters.Adapter, error) {
    switch name {
    case "claude-code": return &adapters.ClaudeCodeAdapter{}, nil
    case "codex":       return &adapters.CodexAdapter{}, nil
    case "gemini":      return &adapters.GeminiAdapter{}, nil
    default:
        adapter, err := adapters.GetAdapter(name) // already falls back to registry!
        ...
    }
}

Every time a new adapter is added, both the registry Register() call AND this switch must be updated.

Proposed Solution

Delete resolveAdapter() in session_watcher.go and call adapters.GetAdapter(name) directly. The adapter registry already handles aliases via its Register() calls in each adapter's init().

Files to Change

  • internal/daemon/agentwork/session_watcher.go — replace resolveAdapter() calls with adapters.GetAdapter()

Risk

  • Blast radius: Minimal (1 file, 1 function)
  • Behavior change: None — the fallback path already calls adapters.GetAdapter()

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTechnical debt requiring cleanup or refactoring

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions