Базовый репозиторий: 21st-dev/1code (оригинальный проект)
Наш форк: evgyur/1code (Windows-оптимизированная версия)
Адаптация десктопного приложения 1Code для полноценной работы на Windows с улучшенным пользовательским опытом и исправлением платформо-специфичных проблем.
Название: useNativeFrameAtom / Windows Window Frame Preference
Что это:
- Пользователь может выбрать между нативным окном Windows (белая полоса заголовка) и кастомным темным окном без рамки
- Настройка сохраняется и применяется после перезапуска
Зачем нужно:
- Нативное окно: Интеграция с системой Windows, доступ к меню через Alt, стандартный вид
- Кастомное окно: Темная тема, современный дизайн, больше места для контента
Где находится:
- Настройки → Preferences → "Native Window Frame" (только на Windows)
Технические детали:
- Атом Jotai для хранения предпочтения
- IPC-обработчик для сохранения в main process
- Автоматическое применение при запуске приложения
Название: Desktop Notifications / Windows Desktop Notifications
Что это:
- Нативные уведомления Windows, которые появляются в системном трее
- Показываются, когда агент завершает работу, а пользователь не смотрит на чат
Зачем нужно:
- Уведомление о завершении задач агента, даже если приложение свернуто
- Интеграция с системой уведомлений Windows
- Улучшенный UX для многозадачности
Где находится:
- Настройки → Preferences → "Desktop Notifications" (только на Windows)
Технические детали:
- Использует Electron API
Notification - Проверка видимости окна перед показом
- Настраивается отдельно от звуковых уведомлений
Название: Windows Dark Title Bar / Custom Frameless Window
Что это:
- Кастомная темная полоса заголовка вместо стандартной белой Windows
- Полностью интегрирована с темой приложения (светлая/темная)
Зачем нужно:
- Визуальная согласованность с темой приложения
- Современный внешний вид
- Больше контроля над UI
Технические детали:
- Frameless window (
frame: false) - Кастомный React-компонент
WindowsTitleBar - Кнопки управления окном (свернуть, развернуть, закрыть)
- Поддержка перетаскивания окна
Название: CWD Path Resolution / Worktree Path Handling
Что это:
- Правильное разрешение относительных путей в абсолютные на Windows
- Исправление проблем с путями worktree (временные рабочие директории Git)
Зачем нужно:
- Проблема: На Windows относительные пути типа
~/.21st/worktrees/...не работали - Решение: Автоматическое преобразование в абсолютные пути через
os.homedir() - Результат: Стабильная работа с Git worktrees на Windows
Технические детали:
- Валидация CWD перед запуском Claude
- Fallback на путь проекта, если worktree недоступен
- Поддержка как абсолютных, так и относительных путей
Название: Windows Binary Support / Claude.exe Download
Что это:
- Автоматическая загрузка правильной версии
claude.exeдля Windows - Исправление URL для загрузки (использует
claude.exeвместоclaude)
Зачем нужно:
- Проблема: Оригинальный код загружал macOS/Linux версию
- Решение: Определение платформы и загрузка Windows-версии
- Версия: Claude Code 2.1.8+ с поддержкой Windows
Технические детали:
- Скрипт
download-claude-binary.mjsс проверкой платформы - Правильный URL:
claude.exeвместоclaude - Интеграция в GitHub Actions для автоматической сборки
Название: Model Max Output Tokens Tracking / Dynamic Token Limits
Что это:
- Автоматическое определение максимального количества выходных токенов для разных моделей
- Динамическая настройка Extended Thinking в зависимости от модели
Зачем нужно:
- Проблема: Разные модели имеют разные лимиты токенов (например, Opus 4.5 = 64K, другие = 128K)
- Решение: Обучение лимитов из ошибок SDK и применение при настройке Extended Thinking
- Результат: Предотвращение ошибок "max_tokens exceeds limit"
Технические детали:
- Атом
modelMaxOutputTokensAtomдля хранения лимитов - Парсинг ошибок SDK для извлечения лимитов
- Автоматическая настройка
maxThinkingTokensс учетом лимита модели
Название: Project Path Fallback / Worktree Recovery
Что это:
- Если worktree недоступен или удален, используется путь основного проекта
- Восстановление работоспособности без пересоздания worktree
Зачем нужно:
- Проблема: Worktree может быть удален, но чат все еще ссылается на него
- Решение: Автоматический fallback на путь проекта из базы данных
- Результат: Приложение продолжает работать даже при проблемах с worktree
Технические детали:
- Проверка существования worktree перед использованием
- Запрос пути проекта из базы данных при ошибке
- Валидация доступности пути перед использованием
Название: Windows Build Improvements / Packaging Scripts
Что это:
- Специализированные скрипты для сборки Windows-версии
- Исправление проблем с better-sqlite3 native bindings
- Подавление ложных ошибок winCodeSign
Зачем нужно:
- Стабильная сборка на Windows
- Правильная упаковка native модулей
- Чистый вывод без ложных ошибок
Технические детали:
- Скрипт
package-windows.mjsс фильтрацией ошибок - Автоматическое копирование better-sqlite3 build директории
- GitHub Actions workflow для автоматической сборки
| Фича | Оригинал | Наша версия | Статус |
|---|---|---|---|
| Настройка стиля окна | ❌ | ✅ | Добавлено |
| Десктопные уведомления | ❌ | ✅ | Добавлено |
| Темная полоса заголовка | ❌ | ✅ | Добавлено |
| CWD разрешение | ✅ Полностью | Исправлено | |
| Windows binary | ✅ Работает | Исправлено | |
| Лимиты токенов | ❌ | ✅ | Добавлено |
| Fallback на проект | ❌ | ✅ | Добавлено |
| Сборка Windows | ✅ Стабильно | Улучшено |
- Атомы Jotai:
useNativeFrameAtom,desktopNotificationsEnabledAtom,modelMaxOutputTokensAtom - Компоненты:
WindowsTitleBar, настройки вAgentsPreferencesTab - Хуки:
use-desktop-notifications.tsдля управления уведомлениями
- IPC handlers:
setWindowFramePreference, обработка уведомлений - CWD валидация: Проверка и разрешение путей в
claude.ts - Worktree: Использование
os.homedir()вместоprocess.env.HOME
- Скрипты:
package-windows.mjs,download-claude-binary.mjs - GitHub Actions: Автоматическая сборка Windows-версии
- Фильтрация ошибок: Подавление ложных предупреждений
- ✅ Полноценная работа на Windows без проблем
- ✅ Настраиваемый внешний вид (нативное/кастомное окно)
- ✅ Уведомления о завершении работы агента
- ✅ Стабильная работа с Git worktrees
- ✅ Автоматическая настройка лимитов токенов
- ✅ Чистая архитектура с атомами Jotai
- ✅ Легкое добавление новых Windows-фич
- ✅ Совместимость с upstream (легкий merge)
- ✅ Автоматическая сборка и тестирование
- State Management: Jotai atoms для настроек
- IPC: Electron IPC для связи main/renderer
- UI: React компоненты для кастомного UI
- Build: Electron Builder с кастомными скриптами
- Git: Исправления работы с worktrees на Windows
Потенциальные направления развития:
- Поддержка Windows-специфичных шорткатов
- Интеграция с Windows Search
- Поддержка Windows 11 визуальных эффектов
- Оптимизация производительности для Windows
- Поддержка Windows Sandbox для изоляции
Все изменения задокументированы в:
README.md- Общее описание Windows-поддержкиWINDOWS_DARK_TITLE_BAR_PATCH.md- Детали темной полосы заголовкаPATCH_SUMMARY.md- Сводка всех патчейBUILD_WINDOWS.md- Инструкции по сборке
Все изменения направлены на:
- Улучшение UX - настройки, уведомления, внешний вид
- Исправление багов - пути, бинарники, worktrees
- Стабильность - сборка, обработка ошибок, fallback-механизмы
Форк остается совместимым с upstream и легко получает обновления, сохраняя все Windows-специфичные улучшения.