Skip to content

feat(tui): add Routing tab and routing control plane#48

Merged
drpedapati merged 35 commits intomainfrom
release/routing-tab-dev18
Feb 22, 2026
Merged

feat(tui): add Routing tab and routing control plane#48
drpedapati merged 35 commits intomainfrom
release/routing-tab-dev18

Conversation

@drpedapati
Copy link
Owner

Adds Routing tab, routing control plane, skills redesign. Closes #42, #43, #44, #45, #46

drpedapati and others added 30 commits February 20, 2026 19:52
Replace the bash numbered-menu TUI with a professional Bubble Tea
interface featuring 5 navigable tabs (Home, Messaging Apps, Login,
Agent Service, Your Files). Key improvements: approved users now
show actual usernames from config, inline add/remove flows, Go-native
VM snapshot collection, and plain-English labels for scientists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move doctor from a TUI-suspending shell-out in the Files tab to a
dedicated Health Check tab that runs sciclaw doctor --json inline,
parses the structured report, and renders styled results grouped by
severity. Auto-runs on first visit; scrollable and re-runnable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the TUI-suspending exec of `sciclaw channels setup` with a
multi-step inline wizard (token → user ID → name → confirm) so users
never leave the TUI during channel configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Provides a cross-channel view of all approved users (Discord +
Telegram) with inline add/remove, so scientists can see at a glance
who can message their bot.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scientists can now talk to their AI agent directly from the TUI
without leaving to a terminal or using Discord/Telegram. Messages
are sent via `sciclaw agent -m` in the VM with a persistent session
key (tui:chat). Also improves tab navigation to allow Tab/Shift+Tab
even when sub-tabs are capturing text input.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Parse active mounts from multipass info output into VMSnapshot,
replace state-file-based sync detection with live mount data,
and add mount table with add/remove wizard to the Files tab.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename vmtui→tui and introduce an Executor interface that abstracts
command execution across VM (multipass) and local (direct OS) modes.
Both `sciclaw tui` (local) and `sciclaw vm tui` (VM) now share the
same codebase with mode-appropriate behavior.

Key changes:
- Executor interface with VMExecutor and LocalExecutor implementations
- All tabs wired through executor instead of direct multipass calls
- Python config-editing scripts replaced with Go JSON read/write
- Mode-aware home tab, header, status bar, and dynamic tab list
- Files tab hidden in local mode (VM-only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- System panel now shows service backend (launchd/systemd)
- Checklist uses "Gateway service" to match Agent tab title
- SuggestedStep() comments clarify VM-only vs mode-neutral paths
- Consistent "gateway service" wording in suggestions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New tabs expose existing CLI commands through the TUI:
- Models: view/set current model, provider, reasoning effort
- Skills: list/install/remove agent skills
- Cron: list/toggle/remove scheduled jobs

Also fixes tab index mapping with tabEntry struct so tabs after
the conditional Files tab (VM-only) resolve correctly in both modes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
sciclaw tui now checks for a multipass VM and launches in VM mode
if one exists, otherwise falls back to local mode. sciclaw vm tui
continues to force VM mode as before.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ldflags VERSION already includes "v" but the format strings
also prepend "v", producing "vv0.1.53". Strip it in init() so
the display is always correct regardless of source.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…esign

Replace flat table with scrollable master list + detail pane using two
viewport.Model instances. Add ad-hoc codesign for darwin builds in Makefile.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
drpedapati and others added 5 commits February 22, 2026 05:02
…-plane-rb-rebased2

feat: channel-to-workspace routing control plane (rebased on latest development)
Three-panel layout: status overview, master mapping list, and detail
pane. Supports toggle enable/disable, remove with confirmation,
validate, reload, and refresh. Closes #42, #43, #44, #45, #46.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@drpedapati drpedapati merged commit 10cce2a into main Feb 22, 2026
1 of 2 checks passed
@drpedapati drpedapati deleted the release/routing-tab-dev18 branch February 23, 2026 12:43
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.

TUI: Add Routing tab — status overview panel

1 participant