Skip to content

refactor: cli as a channel#80

Merged
PsiACE merged 5 commits intomainfrom
feat/cli-channel-io
Mar 3, 2026
Merged

refactor: cli as a channel#80
PsiACE merged 5 commits intomainfrom
feat/cli-channel-io

Conversation

@PsiACE
Copy link
Collaborator

@PsiACE PsiACE commented Mar 1, 2026

This PR moves interactive CLI I/O into the channel system
and keeps behavior aligned with existing message channels.

What changed

  • Added a new CliChannel and wired bub chat through
    ChannelManager (instead of hardcoded CLI loop).
  • Kept InteractiveCli as a thin compatibility wrapper over
    CliChannel.
  • Extended channel abstractions:
    • BaseChannel.debounce_enabled
    • BaseChannel.format_prompt
  • Updated SessionRunner:
    • Immediate execution for non-debounced channels (CLI)
    • Prevented command prompt leakage into batched
      prompts
    • CLI path is now fail-fast on runtime errors
  • Added duplicate channel registration guard in
    ChannelManager.
  • Updated docs:
    • CLI described as a local channel adapter
    • Channels overview updated
    • Nav groups CLI under Channels

Validation

  • Added/updated tests for chat channel wiring, session
    runner behavior, and duplicate channel registration.
  • ruff, mypy, and full pytest pass.

@PsiACE PsiACE changed the title refactor: cli as a channels refactor: cli as a channel Mar 1, 2026
Copy link
Collaborator

@frostming frostming left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge conflicts

@PsiACE PsiACE merged commit 08e3c3f into main Mar 3, 2026
5 checks passed
@PsiACE PsiACE deleted the feat/cli-channel-io branch March 3, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants