Commit Graph
100 Commits
Author SHA1 Message Date
Dushnilin 7b215e5792 feat(uninstall): скрипт чистого удаления uninstall.sh с сохранением бэкапа конфигурации и документация 2026-08-15 21:31:56 +03:00
Dushnilin b1c336ccad docs(readme): единая визуальная система Tachyon с анимированными баннерами для Telegram-бота, Watchdog, LuCI UI, CLI API и футера 2026-08-15 20:33:15 +03:00
Dushnilin 954596c26f docs(readme): анимированные лазерные разделители разделов, ЭКГ-монитор AI Doctor и интерактивный терминал установки 2026-08-15 20:30:11 +03:00
Dushnilin 9280708363 fix(svg): исправление фильтров userSpaceOnUse для горизонтальных линий потоков Zapret v2 и LAN 2026-08-15 20:29:27 +03:00
Dushnilin 983c81b1e1 docs(readme): раздельные анимированные каналы для Zapret v1, Zapret v2 и ByeDPI в диаграмме архитектуры 2026-08-15 20:28:52 +03:00
Dushnilin d4121b191b docs(readme): анимированный SVG hero-баннер и диаграмма архитектуры, актуализация возможностей AI Doctor v2.5 и аварийного восстановления 2026-08-15 20:28:10 +03:00
Dushnilin 91c7d5f8ee fix(updates): стабильный диалог установки, сохранение баннеров и логов без паразитных автозакрытий 2026-08-15 20:07:21 +03:00
Dushnilin d2a4243aa2 feat(ui): постоянная кнопка аварийного возврата прямого интернета в окне AI Doctor и действиях диагностики 2026-08-15 19:24:44 +03:00
Dushnilin 528bc7b9db feat(doctor): расширенная офлайн-диагностика (NTP, conntrack, deadlock, MTU) и аварийный возврат интернета 2026-08-15 17:18:23 +03:00
Dushnilin 56e847eceb fix(ui): корректный выбор сервера в модальных окнах и скрытие недоступного выбора для URLTest 2026-08-15 16:18:34 +03:00
Dushnilin 3425ef77f7 fix(core): восстановление дефолта hide_urltest_group_outbounds и ассертов urltest_groups 2026-08-15 16:07:54 +03:00
Dushnilin 4dd882f276 fix(core): объявление default_gateway_exists до wan_has_ip и видимость URLTest по умолчанию 2026-08-15 16:06:22 +03:00
Dushnilin e02e9169d4 fix(core): исправление forward-reference в AI Doctor и фильтрации селектора 2026-08-15 16:02:31 +03:00
Dushnilin 85ae733787 feat(doctor): расширенная локальная диагностика DPI, нод, конфликтов и фикс зависимостей CI 2026-08-15 15:58:40 +03:00
Dushnilin 1437997153 fix(core): повышение стабильности, фоновый поиск MTU AWG, zero-fork проверка WAN и защита от OOM 2026-08-15 15:51:10 +03:00
Dushnilin 381ae6580c fix(dashboard): fix URLTest details modal layout and server selection actions 2026-08-15 13:27:06 +03:00
Dushnilin 95a209adc9 feat(dashboard): show active server on URLTest cards and allow manual server selection with reset to auto 2026-08-15 13:00:39 +03:00
Dushnilin d81d9fd077 fix(ci): fix forward function declaration in runtime.uc and harden tests for multi-call coreutils/alpine 2026-08-15 12:28:49 +03:00
Dushnilin e0828eb53a fix(diagnostics): fix false-positive sing-box DNS check on busybox nslookup and auto-fetch LAN clients in support report 2026-08-15 12:12:59 +03:00
Dushnilin 3c5108b26b fix(i18n): translate all AI Doctor and LAN inspector strings to Russian and fix diagnostic banner status logic 2026-08-15 12:00:28 +03:00
Dushnilin 2bafb334c0 chore: trigger fresh package rebuild for release 1.2.82 2026-08-15 11:44:19 +03:00
Dushnilin 01cb9e8285 fix(updates): auto-complete modal and trigger reload when Tachyon update finishes in log 2026-08-15 11:17:54 +03:00
Dushnilin 7ff42e61c7 fix(nft): add meta l4proto tcp/udp restriction to priority proxy IP rules to avoid ICMP/ping drops 2026-08-15 11:09:46 +03:00
Dushnilin 6fdf24723e fix(diagnostics): use core.uci for WAN interface detection instead of shell uci 2026-08-15 10:58:20 +03:00
Dushnilin 57c04c71e8 feat(doctor): add 1-click anonymized support report and LAN device inspector 2026-08-15 10:05:09 +03:00
Dushnilin 315cf63238 Сделать интерфейс ИИ-Доктора нативным и лаконичным по стандартам LuCI 2026-08-15 09:49:43 +03:00
Dushnilin c8d02a917e Улучшение ИИ-Доктора: экспертная скриптовая система диагностики и самовосстановления 2026-08-15 09:48:40 +03:00
Dushnilin 1e406c3e06 fix(updates): предотвратить повторное открытие и зависание модального окна обновления
- Исключить повторное открытие окна прогресса для уже завершенных задач (handledComponentJobs)

- Актуализировать состояние фоновых задач в get_ui_state и нормализовать таймаут stale PID

- Исправить определение WAN интерфейса в event_controller во избежание ложного перезапуска (#31)

- Улучшить сверку версий при самообновлении
2026-08-15 09:23:07 +03:00
Dushnilin d6c4f81daf Revert "refactor(ui): диагностика и AI-чат на нативных LuCI CSS классах"
This reverts commit e1c6a9aba8.
2026-08-14 21:52:55 +03:00
Dushnilin e1c6a9aba8 refactor(ui): диагностика и AI-чат на нативных LuCI CSS классах 2026-08-14 17:30:45 +03:00
Dushnilin b9c0f72518 fix(doctor): вернуть require core.common и порядок функций в runtime.uc 2026-08-14 17:30:39 +03:00
Dushnilin 7ef5d542fd feat(mcp): MCP-сервер с 13 tools и 6 resources + команда tachyon mcp 2026-08-14 17:30:34 +03:00
Dushnilin 455c67c0a7 fix(diagnostic): install servicecheck_profiles.json + guard doctor/ai_doctor (#33)
Makefile was missing the install rule for servicecheck_profiles.json — the community service probe profiles were never copied to /usr/share/tachyon/ on the router, so Service Health Check had zero targets to probe and showed an empty modal.
2026-08-14 16:06:48 +03:00
Dushnilin 4cd4fe6193 fix: operation log path mismatch + AmneziaWG server support (#32)
fix(updates): component_action_worker wrote UPDATES_JOB_LOG to job_id.out.log but component_action_log reads from job_id.log — the two paths never matched so the modal log was always empty. Now derives the log path from the output path by stripping the .out suffix.
2026-08-14 15:52:40 +03:00
Dushnilin af541bc4bd fix(updates): log as primary modal content + fix ru.po regression
The progress modal showed fake step indicators that auto-advanced on a timer, hiding the real operation log behind a small panel. Now the modal is just header + full-size log (350px) + action buttons. Steps, progress bar, and status message removed; updateStep/updateStatus become no-ops.\n\ngenerate-po.js silently dropped every ru.po entry not present in calls.json, wiping ~100 manual translations. It now preserves existing entries. All empty msgstr filled (operation log, port validation, restore).\n\nStyles: removed step/progress bar CSS, enlarged log panel, modal max-width 640px.
2026-08-14 14:46:51 +03:00
Dushnilin 8ecc3ee685 feat(updates): live operation log with page lock in progress modal
The progress modal faked its steps on a timer because the worker only wrote to syslog. Now every updates_log line is appended to <job>.log (UPDATES_JOB_LOG), the running state advertises log_path, the log survives job completion until the TTL sweep, and the new component_action_log CLI mode serves it from a byte offset. The UI polls it into a monospace panel with auto-scroll, exposes a Copy log button, and the modal cannot be closed while the job runs (only the disabled progress button is shown).
2026-08-14 13:20:33 +03:00
Dushnilin 5d8e0bbfcc fix(smart-detect): маршрутизировать user_domains через прокси секции 2026-08-14 12:39:42 +03:00
Dushnilin f91a99f8e1 chore: удалить мусорный uc.out от локального ucode 2026-08-14 11:48:35 +03:00
Dushnilin 478b99170c fix(snapshots): починка restore и валидации снапшотов под реальным ucode 2026-08-14 11:48:27 +03:00
Dushnilin 85ce7f98c7 feat(snapshots): сохранение и восстановление рабочих конфигов из расширенных настроек 2026-08-14 11:36:48 +03:00
Dushnilin 18bd271bef fix(tests): keep stale-pid test alive when a parallel job wipes /tmp/tmp.* dirs 2026-08-14 10:52:57 +03:00
Dushnilin 5be411994c fix(migration): declare write_cache_format_file before ensure_runtime_cache_format (no hoisting in ucode) 2026-08-14 10:41:00 +03:00
Dushnilin 464dcebc50 fix(ci): harden stale-pid test and cache format writes against parallel test races 2026-08-14 10:37:27 +03:00
Dushnilin 65b216b6a2 feat(p2p): поле портов торрент-клиента для изоляции P2P (issue #31) 2026-08-14 09:46:15 +03:00
Dushnilin 7bd373c392 fix(diagnostics): убрать крокозябры в Глобальной проверке и разорвать цикл повторных фиксов AI Doctor (issue #31) 2026-08-14 09:31:31 +03:00
Dushnilin 2f6941b102 fix(updates): не вешать окно обновления при неизменной версии и мёртвом RPC (issue #31) 2026-08-13 23:11:44 +03:00
Dushnilin 4bc68d7e8e fix(build): пересобрать main.js с фиксом завершения self-update (issue #31) 2026-08-13 22:51:56 +03:00
Dushnilin c1a21ef97b fix(updates): корректно завершать self-update при переиспользовании pid воркера (issue #31) 2026-08-13 22:44:06 +03:00
Dushnilin 25c9160b38 fix(watchdog): не проверять прокси без http/mixed-инбаунда (issue #31) 2026-08-13 22:44:03 +03:00
Dushnilin b099b26a68 feat(doctor): режим восстановления при остановленном сервисе и реальная верификация AI Doctor 2026-08-13 21:59:54 +03:00
Dushnilin ac3fbc90fc fix(watchdog): не перезапускать WAN по одиночному сбою пробы (issue #31) 2026-08-13 21:24:43 +03:00
Dushnilin 305e14d44e feat(reset): кнопка сброса настроек в LuCI и дефолтное состояние при чистой установке
- новый модуль service/reset.uc (режим reset-settings, флаг no-start): остановка сервиса, чистка runtime/кэшей, сохранение tailscale, запись дефолтного конфига
2026-08-13 21:06:39 +03:00
Dushnilin 9b4767a5af fix(tests): убрать повторную декларацию seen_domains и добавить ключ локализации 2026-08-13 09:07:55 +03:00
Dushnilin 4f9bf7153d fix(subscription): использовать синтаксис /[\x01-\x1f\x7f]/ без искажения букв 2026-08-13 09:01:48 +03:00
Dushnilin f67282067a fix(subscription): использовать безопасный regexp() без нулевого байта \x00 2026-08-13 08:55:33 +03:00
Dushnilin 86bc63c809 fix(subscription): исправить повреждение заголовка подписки при декодировании и ширину стилей названия 2026-08-13 08:50:12 +03:00
Dushnilin b39efa02ae fix(backend): полноценное сопоставление всех ID правил, учет отсутствующих профилей и проверка активности секций 2026-08-13 08:43:52 +03:00
Dushnilin 79df32ef7c fix(backend): корректный разбор всех community_lists и дедупликация доменов в режиме активных маршрутов 2026-08-13 08:40:56 +03:00
Dushnilin 443a62ece7 feat(ui): явные русские названия категорий и элементов интерфейса в окне проверки доступности 2026-08-13 08:38:11 +03:00
Dushnilin 715a7fee5c refactor(ui): замена сетки кнопок фильтров на компактный выпадающий список в окне проверки 2026-08-13 08:35:56 +03:00
Dushnilin 657c80da79 feat(ui): привести окно проверки доступности сервисов к нативному стилю LuCI и нормализовать наименования 2026-08-13 08:32:31 +03:00
Dushnilin a8f34ea73f release: v1.2.77 2026-08-13 08:29:32 +03:00
Dushnilin 8724f82d1a feat(ui): добавить кнопку установки при наличии обновления и исправить зависание окна установки 2026-08-13 08:05:43 +03:00
Dushnilin 901c4ea1c1 Fix progress modal hang during self-update by lowering settle delay and status refresh interval 2026-08-12 14:34:38 +03:00
Dushnilin 6f47e83712 Cleanly terminate sing-box PID when MTProxy inbound is active to avoid 5s procd SIGTERM timeout (issue #30) 2026-08-12 14:26:39 +03:00
Dushnilin 19a8e2219b Enhance update progress modal step granularity, timers and theme-agnostic styling 2026-08-12 14:17:08 +03:00
Dushnilin bc161ae3ee Include short git commit SHAs in progress modal version badge 2026-08-12 14:14:52 +03:00
Dushnilin ebf9b7eeea Update service check profile titles with clean descriptive group names and badges 2026-08-12 14:06:58 +03:00
Dushnilin 02496fd9fb Add interactive progress modal dialog with animated progress bar and live steps for component updates 2026-08-12 13:51:08 +03:00
Dushnilin ca77b519ea Restore full Russian translation catalog (2400+ lines) and merge missing UI tab/section keys 2026-08-12 13:41:11 +03:00
Dushnilin 2396197d99 Update Russian translation catalogs for UI tabs, sections, and action buttons 2026-08-12 13:29:00 +03:00
Dushnilin d527b86d4c Fix procd sing-box termination timeout, watchdog backup dir creation, and telegram retry log levels 2026-08-12 13:09:05 +03:00
Dushnilin e1a0f04e4a Update localization catalogs and fill script for Cannot save settings 2026-08-12 12:51:16 +03:00
Dushnilin cb645cad7a Update diagnostic service check configuration and engine helpers 2026-08-12 12:40:50 +03:00
Dushnilin fb1d9dfe5b Fix CI test failures: add missing Russian translation for 'Cannot save settings' and use common.background_command in service_check.uc 2026-08-12 12:39:30 +03:00
Dushnilin 265d7d19cd Fix issue #30: Remove invalid close_timeout property from MTProxy inbound and bypass SIGHUP reload with clean service restart when MTProxy is active 2026-08-12 12:34:58 +03:00
Dushnilin 285ab7910b v1.2.76: Fix ucode syntax error (remove duplicate stub functions in service_check.uc) and release v1.2.76 2026-08-12 12:27:25 +03:00
Dushnilin 5b372f5572 v1.2.75: Add Service Check mode switcher (Active Sections / All Profiles), restore AI Chat Assistant, harmonize action button styles, and fix dark theme compatibility 2026-08-12 12:22:52 +03:00
Dushnilin 8d6041f9fa chore: remove test.uc 2026-08-12 10:50:56 +03:00
Dushnilin 3672af46d8 fix(diagnostics): type error on float conversion in ucode
Replaced non-existent \loat()\ function with unary plus coercion for string to number conversion in service_check.uc.
2026-08-12 10:50:43 +03:00
Dushnilin 2bd2fd7645 feat(diagnostics): нативная кнопка проверки сервисов
Реализована нативная проверка сервисов (watchdog, telegram, sing-box) через ucode, избавляя от внешней зависимости forkop-servicecheck.
2026-08-12 10:42:09 +03:00
Dushnilin 2b4d8cd4e0 fix(i18n): wrap Ollama and LM Studio labels in _() with English defaults and update po/pot 2026-08-11 22:29:34 +03:00
Dushnilin 1a1fd7f4c3 fix(settings): add Ollama & LM Studio to CBI settings tab options and make API key optional for local LLMs 2026-08-11 22:27:57 +03:00
Dushnilin 5db8ed7889 feat(ai-doctor): add dynamic endpoint placeholders and optional API key hint for Ollama and LM Studio 2026-08-11 22:11:48 +03:00
Dushnilin 40e185c143 i18n: actualize translation pot and po files for 1.2.74 2026-08-11 22:01:21 +03:00
Dushnilin da199c236a feat(ai-doctor): super-upgrade with Live Stepper, Root Cause Graph, Smart Fix Badges, Deep Log Inspection & Local LLM Presets 2026-08-11 22:00:20 +03:00
Dushnilin bc8a60fc73 fix(ui): hide legacy doctor repair button and make AI Doctor always clickable 2026-08-11 21:35:27 +03:00
Dushnilin 7c39a5335f ci: enable generate_release_notes in release workflow 2026-08-11 21:21:24 +03:00
Dushnilin a7c391cbdb fix(singbox): preserve cache.db across restarts and ensure parent directory 2026-08-11 21:10:07 +03:00
Dushnilin 15a4f8962e fix(ui): add close and copy buttons to AI Doctor modal footer 2026-08-11 20:15:50 +03:00
Dushnilin e140766215 fix(ci): bypass node tls validation in release step 2026-08-11 19:54:45 +03:00
Dushnilin ee44f21d77 fix(ui): remove duplicate commit sha formatting in header 2026-08-11 19:47:41 +03:00
Dushnilin 999686fea3 fix(ui): display short commit SHA next to Tachyon version in UI and constants 2026-08-11 19:06:00 +03:00
Dushnilin 4d0eb2ea6a fix(action): use explicit else block in check_tachyon for outdated_same_release 2026-08-11 18:44:54 +03:00
Dushnilin c192eb5e5e fix(updater): inline tag normalization in release_metadata_tsv to prevent ucode order warning 2026-08-11 18:36:44 +03:00
Dushnilin 680802a62d fix(updater): strip leading v prefix in tachyon_normalized_release_version 2026-08-11 18:17:56 +03:00
Dushnilin 2ef7092810 feat: Add local heuristic AI Doctor engine, DPI block analyzer, and offline fallback 2026-08-11 17:26:53 +03:00
Dushnilin f790917999 release: v1.2.70 - Tachyon AI Doctor & Agent API 2026-08-11 16:37:24 +03:00
Dushnilin 180c52ecde test: fix BusyBox portability issues in backend test suite 2026-08-11 16:33:46 +03:00
Dushnilin 3ddd321575 docs: add Hosts Engine section detailing static DNS overrides, remote host lists, and mirror retry logic 2026-08-11 16:13:34 +03:00