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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions