github Leadaxe/singbox-launcher v0.3.0
singbox-launcher v0.3.0 (Windows)

one month ago
🇷🇺 Русская версия

Релиз v0.3.0 - Крупный рефакторинг и исправления ошибок

🎯 Обзор

Этот релиз включает крупный рефакторинг кода для улучшения поддерживаемости, исправления ошибок и опечаток по всему кодовому базе.

⚠️ КРИТИЧЕСКИЕ ИЗМЕНЕНИЯ

Важно: Этот релиз требует обновления ваших конфигурационных файлов!

  • Изменилось имя блока конфигурации: @ParcerConfig@ParserConfig
    • Вы должны обновить ваш файл config.json: замените /** @ParcerConfig на /** @ParserConfig

    • Старые конфиги с @ParcerConfig не будут распознаны

    • Пример:

      /** @ParserConfig
      {
      "ParserConfig": {
      ...
      }
      }
      */

      ✨ Основные изменения

🔧 Рефакторинг кода

  • Сервисно-ориентированная архитектура: Разделение монолитного AppController на специализированные сервисы
    • ProcessService: Управление жизненным циклом процесса sing-box (запуск, остановка, мониторинг, авто-перезапуск)
    • ConfigService: Обработка парсинга конфигурации и обновления подписок
    • Logging: Централизованное управление ротацией лог-файлов
  • Улучшенная структура кода: Лучшее разделение ответственности и модульность
  • 29 файлов изменено: 2,035 добавлений(+), 1,413 удалений(-)

🐛 Исправления ошибок

  • Исправлено извлечение тегов: Теги теперь содержат полный label (включая часть после |)
    • Пример: {"tag":"🇭🇺Венгрия|Белые списки"} вместо {"tag":"🇭🇺Венгрия"}
  • Исправлено определение процессов: Улучшена потокобезопасная проверка PID
  • Исправлена проверка границ массива: Исправлена валидация длины при определении процессов

📝 Исправления опечаток

  • Исправлена опечатка: ParcerParser по всему коду и документации
    • Имена функций: ExtractParcerConfigExtractParserConfig
    • Блоки конфигурации: @ParcerConfig@ParserConfig
    • Обновлено в коде, документации и шаблонах конфигурации
  • Исправлена опечатка: WisardWizard в сообщениях об ошибках

📦 Новые файлы

  • core/config_service.go - Интерфейс ConfigService
  • core/config_service_impl.go - Реализация ConfigService (рефакторинг из parser.go)
  • core/logging.go - Утилиты для логирования
  • core/parsers/node_parser.go - Логика парсинга узлов
  • core/process_service.go - Сервис управления процессами
  • ui/config_wizard_state.go - Управление состоянием визарда
  • ui/wizard/common.go - Общие утилиты визарда
  • ui/wizard/source_step.go - Компонент шага источника визарда

🔄 Удаленные файлы

  • core/updater.go - Функциональность перенесена в другие модули

📚 Обновления документации

  • Обновлены README.md и README_RU.md с исправленной терминологией
  • Обновлена документация ParserConfig.md
  • Исправлены все примеры шаблонов конфигурации

🎨 Улучшения

  • Улучшенная обработка ошибок и логирование
  • Улучшенная читаемость и поддерживаемость кода
  • Более последовательная структура кода, следующая лучшим практикам Go
  • Улучшена потокобезопасность в управлении процессами

🔄 Руководство по миграции

Перед обновлением обязательно обновите ваш config.json:

  1. Откройте ваш файл config.json
  2. Найдите строку: /** @ParcerConfig
  3. Замените её на: /** @ParserConfig
  4. Сохраните файл
  5. Обновите приложение

Примечание: Если вы используете Config Wizard, он автоматически использует правильный формат.

🙏 Благодарности

Спасибо за использование singbox-launcher! Если вы столкнулись с проблемами, пожалуйста, сообщите о них на GitHub.

🎯 Overview

This release includes a major code refactoring to improve maintainability, fix bugs, and correct typos throughout the codebase.

⚠️ BREAKING CHANGES

Important: This release requires updating your configuration files!

  • Config block name changed: @ParcerConfig@ParserConfig
    • You must update your config.json file: replace /** @ParcerConfig with /** @ParserConfig

    • Old configs with @ParcerConfig will not be recognized

    • Example:

      /** @ParserConfig
      {
      "ParserConfig": {
      ...
      }
      }
      */

      ✨ Major Changes

🔧 Code Refactoring

  • Service-Oriented Architecture: Decomposed monolithic AppController into specialized services
    • ProcessService: Manages sing-box process lifecycle (start, stop, monitor, auto-restart)
    • ConfigService: Handles configuration parsing and subscription updates
    • Logging: Centralized log file rotation and management
  • Improved Code Structure: Better separation of concerns and modularity
  • 29 files changed: 2,035 insertions(+), 1,413 deletions(-)

🐛 Bug Fixes

  • Fixed tag extraction: Tags now include full label (including part after | separator)
    • Example: {"tag":"🇭🇺Венгрия|Белые списки"} instead of {"tag":"🇭🇺Венгрия"}
  • Fixed process detection: Improved thread-safe PID checking
  • Fixed array bounds checking: Corrected length validation in process detection

📝 Typo Fixes

  • Fixed typo: ParcerParser throughout codebase and documentation
    • Function names: ExtractParcerConfigExtractParserConfig
    • Config blocks: @ParcerConfig@ParserConfig
    • Updated in code, documentation, and config templates
  • Fixed typo: WisardWizard in error messages

📦 New Files

  • core/config_service.go - ConfigService interface
  • core/config_service_impl.go - ConfigService implementation (refactored from parser.go)
  • core/logging.go - Centralized logging utilities
  • core/parsers/node_parser.go - Node parsing logic
  • core/process_service.go - Process management service
  • ui/config_wizard_state.go - Wizard state management
  • ui/wizard/common.go - Wizard common utilities
  • ui/wizard/source_step.go - Wizard source step component

🔄 Removed Files

  • core/updater.go - Functionality moved to other modules

📚 Documentation Updates

  • Updated README.md and README_RU.md with corrected terminology
  • Updated ParserConfig.md documentation
  • Fixed all config template examples

🎨 Improvements

  • Better error handling and logging
  • Improved code readability and maintainability
  • More consistent code structure following Go best practices
  • Enhanced thread safety in process management

🔄 Migration Guide

Before updating, make sure to update your config.json:

  1. Open your config.json file
  2. Find the line: /** @ParcerConfig
  3. Replace it with: /** @ParserConfig
  4. Save the file
  5. Update the application

Note: If you're using Config Wizard, it will automatically use the correct format.

🙏 Thanks

Thank you for using singbox-launcher! If you encounter any issues, please report them on GitHub.

Don't miss a new singbox-launcher release

NewReleases is sending notifications on new releases.