Skip to content

Wayfinder: reconcile eca-cli roadmap with ECA server + sibling clients #16

Description

@ssjoleary

Destination

An approved reconciliation plan — a spec, not applied edits. It contains:

  1. A single deduped inventory of ECA server + sibling-client (web / desktop / emacs / nvim) features that eca-cli lacks.
  2. A reconciled roadmap: those gaps folded into the existing phase structure (6–11+), re-ordered.
  3. An issue-mapping: existing issues refactor: extract (key-press? + key-match?) pattern (25 sites) #5–15 mapped onto phases, with merge / close / retag calls named.

Editing docs/roadmap.md and doing the issue surgery are specified here and executed downstream — not inside this map.

Notes

  • Domain: eca-cli is a Babashka TUI client for ECA server (JSON-RPC over stdio). See CLAUDE.md, docs/assessment.md.
  • Plan-only override: this map SPECS the reconciliation; it does NOT edit roadmap.md or touch issues refactor: extract (key-press? + key-match?) pattern (25 sites) #5–15. Those are downstream execution.
  • Existing issues refactor: extract (key-press? + key-match?) pattern (25 sites) #5–15 are the execution backlog, kept separate — they are INPUT to reconcile, not wayfinder tickets.
  • Skills: /grilling + /domain-modeling for the reconcile decisions; /research for audits.
  • Upstream lives locally: ../eca (server), ../eca-emacs, ../eca-nvim, ../eca-web, ../eca-desktop.
  • Prior audit is STALE: docs/refactor/03-feature-gaps-roadmap-proposal.md — superseded by this effort. So is docs/roadmap.md's status table (see baseline decision).
  • Audit tickets recorded findings as a resolution comment on their own ticket; full detail lives there — zoom in when reconciling.

Decisions so far

  • Audit: ECA server protocol surface (development.md + protocol.md)58 JSON-RPC methods across lifecycle / chat / context / tools / MCP / editor / completion / config / auth / jobs / server-driven, plus a rich chat/contentReceived content-type taxonomy. Surface the stale audit missed: provider/auth login (providers/*), MCP server CRUD+OAuth, background jobs API, chat steering + history pagination + flags, hooks, skills, subagents, task tool.
  • Audit: eca-emacs feature surface~95 commands. Headline: tool-call approval workflow (accept-all / next / reject + trust), expandable tool-call / reasoning / diff blocks with thinking rendering, MCP-details + providers-auth panels, background-jobs panel, in-buffer rewrite overlay, inline completion, configurable mode-line usage/cost.
  • Audit: eca-nvim feature surface~40 items. Sidebar chat, approval popup with diff view, expandable reasoning, typewriter streaming, MCP status line, token/cost usage, @/# context refs, model/behavior + debug pickers. Notably no session/jobs browser exists in nvim.
  • Audit: eca-web feature surface~50 affordances. Prompt toolbar, tool-call + diff cards, approval flow, subagents, MCP / Providers / Jobs / Config / Logs settings tabs, markdown / thinking / task-list rendering, chat resume / timeline / flag / export. Built on the shared eca-webview core.
  • Audit: eca-desktop feature surface — thin Electron shell over the same eca-webview core as web (so its chat affordances overlap web: rollback / fork / flag, ask-question, pickers, MCP+OAuth, jobs, contexts). Desktop-only chrome: multi-session / multi-workspace, native menu+sidebar with approval badges, preferences window, auto-updater, centralized logs.
  • Baseline: eca-cli implemented surface — ~2,838 LOC. Phases 1a–5 built, plus MCP integration (phase 7) and @-refs + jobs (phase 11) already merged to main. docs/roadmap.md's status table is STALE — it doesn't reflect those, and still names the resume command /sessions when the code renamed it /chats. Unbuilt: phases 6, 8, 9, 10, and /rollback + /fork from 11.
  • Master gap inventory~30 deduped gap rows (upstream − baseline), grouped: chat-lifecycle protocol (steering, ask-question, rollback/fork, context picker, flags, history pagination), tool-call UX (diff render, granular shell approval, task panel), rendering (markdown→ANSI, url/OSC-8, context breakdown, images), panels (MCP CRUD, providers, config editor, logs), session mgmt (variant picker, export, multi-workspace, remote), and editor-oriented rows flagged as likely-out-of-scope for a TUI (rewrite, inline completion, diagnostics). Each row tagged size S/M/L + on-roadmap y/n(+phase). Full table in the resolution comment.

Not yet specified

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    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