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