Skip to content

Stream live agent conversations into the Sessions console #40

Description

@Coldaine

Goal

Make a running coding-agent conversation appear in the existing Sessions console while the agent is still working.

A session is one conversation from Claude Code, Codex, Cursor, or another supported coding agent.

What already exists

PR #38 shipped the Sessions console in src/Capacitor.Web:

  • session list and search
  • Overview
  • Transcript
  • Events
  • Trace
  • Evaluation
  • Details

Imported sessions can already be persisted to Postgres and viewed there. The Kurrent reference UI is captured in reference/SURFACE.md and reference/ui-assets/; the current six-tab console intentionally follows that surface.

The CLI also already knows how to watch a transcript and connects to:

/hubs/sessions

What is missing is the compatible server-side live-ingestion path. Today we can view session history, but we cannot point kcap watch at our server and watch that same session update live in the Sessions console.

Scope of this issue

  1. Implement the server-side SignalR endpoint at /hubs/sessions using the contract kcap watch already expects.
  2. Point kcap at our server and stream a real coding-agent conversation into it.
  3. Persist those live updates into the same session data used by the existing Sessions console.
  4. Verify that the session is readable and updates in the console while the conversation is running.
  5. Verify that the completed session remains readable afterward.

Starting from an imported session is acceptable only if watch then appends live updates to that same session. A manual re-import after the conversation finishes does not satisfy this issue.

Acceptance criteria

This issue is done when all of the following are true:

  • kcap watch connects successfully to our server at /hubs/sessions.
  • A real Claude Code, Codex, Cursor, or equivalent coding-agent conversation streams into our backend while it is running.
  • The same session appears in the existing Sessions console without Kurrent in the loop.
  • New transcript/session data becomes readable from the console without a manual re-import.
  • The session remains readable after the live connection ends.

Explicitly out of scope

Do not revive or merge the old implementation paths just to get this working:

Useful work from those branches was already incorporated into #38. The implementation should extend what is currently on main, not reconstruct the abandoned wave.

Also do not build placeholder pages for the currently disabled Agents / Insights / Flows / Work items navigation. Those are disabled because the backing APIs do not exist yet.

Follow-up work after live streaming

Once live ingestion works end to end:

  1. Expose the existing analytics/evaluation data over HTTP.
  2. Add product slices as their APIs land: login, machines/daemons, memory, PR review.
  3. Add the extra console surfaces only when those APIs exist.
  4. Kurrent-style semantic search waits for an embedding provider.

Optional documentation cleanup: merge #39 (reference/REPLICATION-MAP-LANDED.md). It is not required for this issue.

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions