Skip to content

Replace noopMessenger stub with live AgentMessenger in daemon wiring #79

@harshitsinghbhandari

Description

@harshitsinghbhandari

Context

PR #65 wires a stub noopMessenger into the Session Manager:

// backend/internal/daemon/lifecycle_wiring.go:35-39
type noopMessenger struct{}

func (noopMessenger) Send(context.Context, domain.SessionID, string) error { return nil }

It's passed as Messenger: noopMessenger{} at lifecycle_wiring.go:60 and reaches the SM at session_manager/manager.go (m.messenger.Send in Manager.Send). The contract lives at backend/internal/ports/outbound.go (AgentMessenger.Send(ctx, SessionID, string) error).

While the stub is in place, Manager.Send silently no-ops — any caller (REST /sessions/{id}/messages, controllers, future automation) returns success without anything actually reaching the running agent.

PR #74 (feat/aa-43-ao-send-pane-ping) implements the live messenger (zellij pane ping + ao send CLI). This issue tracks swapping it in.

Scope

Blocked-by / blocks

Risk if left unaddressed

Silent failure mode: callers of /sessions/{id}/messages get HTTP 200 with no delivery. Easy to miss in manual testing. Worth landing alongside PR #74 rather than as a later cleanup.

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedWaiting on another lane or external dependencycoding-agentsRuntime + Workspace + Agent adapters lanedaemonHTTP daemon laneenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions