Repository navigation
Shellit v0.9.5
Pre-release🚀 Shellit v0.9.5 — Пользовательская типографика, каскад Nerd Fonts и Kitty Graphics Protocol (Custom Typography & In-Terminal Graphics)
📌 О релизе / Release Overview
Релиз v0.9.5 выводит пользовательский опыт работы в консоли Shellit на уровень ведущих Linux-эмуляторов терминалов (Kitty, WezTerm, Alacritty), отвечая на пожелания сообщества и разработчиков:
-
Кастомная типографика и каскад Nerd Fonts (
kTerminalFontFallbacks):- Глобальный каскад шрифтов: Внедрен
kTerminalFontFallbacks(JetBrainsMono Nerd Font,Symbols Nerd Font Mono,Nerd Font Symbols,monospace), обеспечивающий автоматическое подтягивание глифов приватной области UnicodeU+E000..U+F8FFбез перекоса ширины сетки знакомест. - Интерактивный селектор шрифтов: В
TerminalSettingsCardдобавлен выпадающий список популярных шрифтов для программирования (JetBrains Mono,JetBrainsMono Nerd Font,Fira Code,FiraCode Nerd Font,Cascadia Code), режим ручного указания любого шрифта ОС (Custom...), поле ввода с валидацией и живое превью с глифами (📁,📄,,[✓],🚀). - Настройки реактивно сохраняются в зашифрованное хранилище
storage_vaultи синхронизируются на старте.
- Глобальный каскад шрифтов: Внедрен
-
Архитектура протокола внутритерминальной графики Kitty Graphics Protocol:
- Потоковый APC-перехватчик (
KittyGraphicsStreamFilter): Создан фильтр потока байт, вырезающий escape-последовательности\x1b_G ... \x1b\и\x1b_G ... \x07до их попадания вxterm.dart. Это исключает выброс сырого base64 на экран и зависания текстового буфера. - Реестр текстур (
TerminalGraphicsRegistry): Реализована сборка многосегментных передач (m=1/m=0), декодирование форматов PNG и RGBA через нативный движок Flutter (ui.instantiateImageCodec), позиционирование по ячейкам сетки и автоочистка текстур из видеопамяти при удалении (a=d) или закрытии сессии. - Слой оверлея (
TerminalGraphicsOverlay): Смонтирован в стекеTerminalScreenточно между текстовым холстомTerminalViewи изолированным слоем курсораTerminalCursorOverlay.
- Потоковый APC-перехватчик (
-
Сохранность архитектурных инвариантов:
- Курсор (
BUG-052): Изолированный слой курсора на базеRepaintBoundaryс 0% CPU в режиме покоя рендерится поверх графического слоя, сохраняя видимость каретки при просмотре картинок в консольном файл-менеджереyazi. - Метки команд (OSC 133): Левое поле отступа
22pxпод статус-индикаторы команд осталось абсолютно неизменным.
- Курсор (
Release v0.9.5 elevates Shellit's terminal ergonomics to match modern Linux terminal emulators (Kitty, WezTerm, Alacritty), delivering user-requested typography enhancements and in-terminal graphic rendering:
-
Custom Typography & Resilient Nerd Fonts Cascade (
kTerminalFontFallbacks):- Global Fallback Cascade: Integrated
kTerminalFontFallbacks(JetBrainsMono Nerd Font,Symbols Nerd Font Mono,Nerd Font Symbols,monospace) to flawlessly render Unicode Private Use Area glyphsU+E000..U+F8FFwithout cell-width distortions. - Interactive Font Selector: Added typography dropdown in
TerminalSettingsCardwith popular developer presets (JetBrains Mono,JetBrainsMono Nerd Font,Fira Code,FiraCode Nerd Font,Cascadia Code), arbitrary system font text input (Custom...), and live interactive preview with icons (📁,📄,,[✓],🚀). - Settings reactively persist to encrypted
storage_vaultand sync on boot.
- Global Fallback Cascade: Integrated
-
Kitty Graphics Protocol Architecture:
- Streaming APC Filter (
KittyGraphicsStreamFilter): Intercepts APC commands\x1b_G ... \x1b\and\x1b_G ... \x07before they reachxterm.dart, preventing terminal buffer pollution and base64 text spam. - Texture Registry (
TerminalGraphicsRegistry): Supports chunked payloads (m=1/m=0), decodes PNG and raw pixel buffers using Flutter engine (ui.instantiateImageCodec), binds images to cell grid coordinates, and frees memory upon deletion (a=d) or session teardown. - Overlay Canvas (
TerminalGraphicsOverlay): Layered cleanly betweenTerminalViewand the isolatedTerminalCursorOverlay.
- Streaming APC Filter (
-
Preservation of Core Architectural Invariants:
- Isolated Cursor (
BUG-052): Bounded byRepaintBoundarywith 0% idle CPU, rendering strictly on top of image canvases inyazi. - Prompt Markers (OSC 133):
22pxleft margin for command execution indicators remains completely untouched.
- Isolated Cursor (
🔒 Ключевые изменения / Key Changes
1. Терминальный интерфейс (packages/terminal_ui)
lib/src/graphics/kitty_graphics_types.dart: Модели командKittyAction,KittyFormat,KittyImageCommand.lib/src/graphics/kitty_graphics_parser.dart: Потоковый фильтрKittyGraphicsStreamFilterи разбор APC-последовательностей.lib/src/graphics/terminal_graphics_registry.dart: РеестрTerminalGraphicsRegistryсборки чанков, декодирования и управления текстурами.lib/src/graphics/terminal_graphics_overlay.dart: СлойTerminalGraphicsOverlayс кастомным рендерером сетки ячеек.lib/src/providers/terminal_settings_provider.dart:terminalFontFamilyProviderи каскадkTerminalFontFallbacks.lib/src/widgets/terminal/terminal_screen.dart: ИнтеграцияTerminalGraphicsOverlayпод слоем курсора, применение каскада шрифтов.lib/src/widgets/mobile/mobile_terminal_screen.dart: Поддержка каскада шрифтов на смартфонах и планшетах.test/kitty_graphics_test.dart: Модульные тесты перехвата APC, склейки чанков и реестра графики (7/7 успешно).
2. Приложение и Настройки (apps/shellit)
lib/src/screens/settings/terminal_settings_card.dart: Селектор шрифтов, поле ввода кастомного шрифта, интерактивный блок превью.lib/src/shellit_app.dart: Синхронизация сохраненного шрифта из хранилища при старте приложения.
3. Документация и Портал (apps/website, docs/)
- Добавлен Акт XVI в Хронику проекта (
docs/CHRONICLE.md,docs/CHRONICLE.en.md,apps/website/src/content/chronicle/). - Зарегистрирован баг
BUG-057вdocs/BUGS_AND_ISSUES.md. - Обновлен
StatsHUD.astro(57+ разобранных дефектов, статусv0.9.5 Alpha Preview). - Завершена Фаза 27 в
docs/CHECKLIST.md.
📦 Сборка и верификация / Verification
- Flutter & Dart Analysis:
dart analyze --fatal-infos— 0 ошибок, 0 предупреждений, 0 инфо (All clear). - Unit & Widget Tests:
packages/terminal_ui: 210 тестов (100% успешно);apps/shellit: 61 тест (100% успешно);packages/storage_vault: 63 теста (100% успешно);- Всего: 467+ зеленых тестов.
📦 Git Commits & Changes
🚀 Features & Enhancements
- feat(release): v0.9.5 - custom terminal typography, Nerd Fonts cascade & Kitty graphics protocol (BUG-057) (626f8c1)
🔧 Maintenance & Improvements
- test(smoke): expand viewport height for full settings visibility in CI (1fc23a9)
Full Changelog: v0.9.4...v0.9.5