Skip to content

Comments

feat: TUI remote connection to daemon via A2A protocol#679

Merged
bug-ops merged 4 commits intomainfrom
epic/581-tui-daemon-a2a
Feb 20, 2026
Merged

feat: TUI remote connection to daemon via A2A protocol#679
bug-ops merged 4 commits intomainfrom
epic/581-tui-daemon-a2a

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Feb 20, 2026

Summary

Closes #582, closes #583, closes #584, closes #585, closes #678

Test plan

  • 2055 unit tests pass (cargo nextest run --workspace --lib --bins)
  • cargo clippy --workspace -- -D warnings clean
  • cargo clippy --features tui,a2a -- -D warnings clean
  • cargo check --features daemon,a2a compiles
  • cargo +nightly fmt --check clean
  • Manual: cargo run --features daemon,a2a -- --daemon starts A2A server
  • Manual: cargo run --features tui,a2a -- --connect http://localhost:3000 connects TUI

Add --daemon flag (daemon+a2a features) that bootstraps a full agent
with LoopbackChannel, exposes an A2A JSON-RPC server under
DaemonSupervisor, writes a PID file, and shuts down cleanly on SIGINT.

Add --connect <URL> flag (tui+a2a features) that connects the TUI to a
running daemon via A2A SSE, mapping TaskEvent to AgentEvent in real time.
Final ArtifactChunk text is no longer discarded before Flush.

Add LoopbackChannel / LoopbackHandle / LoopbackEvent to zeph-core as a
headless channel for programmatic agent I/O. PID file creation uses
O_CREAT|O_EXCL to prevent TOCTOU races.

Refactor TaskProcessor::process to accept an mpsc::Sender<ProcessorEvent>
and stream events instead of returning a synchronous ProcessResult.
Server-side event type renamed to ProcessorEvent to avoid collision with
the client-side TaskEvent.

Expand command palette: new TuiCommand variants (Quit, Help, NewSession,
ToggleTheme, DaemonConnect, DaemonDisconnect, DaemonStatus), shortcut
hints, and fuzzy-match scoring with gap penalty replacing substring
filter. Fixes app:theme incorrectly mapping to Help.

Closes #582, #583, #584, #585, #678
@github-actions github-actions bot added enhancement New feature or request documentation Improvements or additions to documentation size/XL rust core dependencies and removed enhancement New feature or request labels Feb 20, 2026
@bug-ops bug-ops changed the title feat(epic-581): daemon mode, TUI remote connect, streaming A2A, command palette feat: TUI remote connection to daemon via A2A protocol Feb 20, 2026
@github-actions github-actions bot added the enhancement New feature or request label Feb 20, 2026
Add daemon mode guide, update CLI reference with --daemon/--connect
flags, expand command palette docs to 14 commands, add LoopbackChannel
and streaming TaskProcessor to architecture pages, update channels
reference with Loopback channel, and update feature flag descriptions.
@bug-ops bug-ops enabled auto-merge (squash) February 20, 2026 03:41
Remove unused OllamaProvider import (src/main.rs:1544), fix unused mut
on LoopbackChannel test handle, add missing struct fields (metadata,
task_id, context_id) in multi-chunk test, use add_artifact instead of
append_history for accumulated response text.
@bug-ops bug-ops merged commit f6c0221 into main Feb 20, 2026
22 checks passed
@bug-ops bug-ops deleted the epic/581-tui-daemon-a2a branch February 20, 2026 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core dependencies documentation Improvements or additions to documentation enhancement New feature or request rust size/XL

Projects

None yet

1 participant