fix: исправить навигацию клавиатуры в TUI через GlobalKeyboardService

- Добавить GlobalKeyboardService — выделенный поток с блокирующим
  Console.ReadKey, единственный источник клавишных событий для TUI
- Убрать FocusManager из App.razor: перехватывал Tab до компонентов
- Удалить @onkeydown с <Select>: RazorConsole не пробрасывает Tab/стрелки
  через этот механизм
- Использовать FocusedValue вместо Value в Select для корректной подсветки
- Обновить CLAUDE.md и AGENTS.md: архитектура TUI, RazorConsole gotchas
- Добавить docs/tui_log.md: разбор проблемы и справочник по RazorConsole

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-13 23:31:53 +03:00
parent 4bf267d681
commit 9b27cd7dc2
18 changed files with 1244 additions and 291 deletions

View File

@@ -0,0 +1,21 @@
using Spectre.Console;
namespace LazyBear.MCP.TUI;
internal static class UiPalette
{
public static readonly Color Frame = new(26, 44, 64);
public static readonly Color Surface = new(12, 21, 34);
public static readonly Color SurfaceAlt = new(18, 29, 44);
public static readonly Color SurfaceMuted = new(28, 40, 56);
public static readonly Color Accent = Color.Cyan1;
public static readonly Color AccentSoft = Color.DeepSkyBlue1;
public static readonly Color Text = Color.Grey93;
public static readonly Color TextMuted = Color.Grey62;
public static readonly Color TextDim = Color.Grey46;
public static readonly Color Success = Color.Green3;
public static readonly Color Warning = Color.Yellow3;
public static readonly Color Danger = Color.Red3;
public static readonly Color SelectionBackground = new(24, 152, 181);
public static readonly Color SelectionForeground = new(7, 18, 31);
}