Add debug log panel, centered modals, and fix multiple UX issues

Features:
  - Add /logs command to toggle debug log panel (20% width on right)
  - Debug panel shows API calls, streaming events, tool calls, state changes
  - Add /help submenus with detailed command explanations
  - Center all modal dialogs in the terminal window

  Bug Fixes:
  - Fix streaming content not displaying (add fallback when streaming fails)
  - Fix permission modal shortcut key mismatch ('a' → 'l' for local scope)
  - Fix agent prompt accumulation when switching agents multiple times
  - Fix permission modal using brittle index for "No" option

  Improvements:
  - Restrict git commands (add, commit, push, etc.) unless user explicitly requests
  - Unify permission options across all UI components
  - Add Ollama model selection when switching to Ollama provider
  - Store base system prompt to prevent agent prompt stacking

  New files:
  - src/tui-solid/components/debug-log-panel.tsx
  - src/tui-solid/components/centered-modal.tsx
  - src/tui-solid/components/help-menu.tsx
  - src/tui-solid/components/help-detail.tsx
  - src/constants/help-content.ts
This commit is contained in:
2026-01-29 04:53:39 -05:00
parent dfbbab2ecb
commit adfebda501
27 changed files with 1031 additions and 167 deletions

View File

@@ -256,7 +256,8 @@ function AppContent(props: AppProps) {
allowed: boolean,
scope?: PermissionScope,
): void => {
app.setMode("idle");
// Don't set mode here - the resolve callback in permissions.ts
// handles the mode transition to "tool_execution"
props.onPermissionResponse(allowed, scope);
};
@@ -265,7 +266,7 @@ function AppContent(props: AppProps) {
scope?: LearningScope,
editedContent?: string,
): void => {
app.setMode("idle");
// Don't set mode here - the resolve callback handles the mode transition
props.onLearningResponse(save, scope, editedContent);
};