Dushnilin
383b426e46
feat: локализация исключений GeoIP по секциям и мониторинг памяти DNS-кэша dnsmasq
2026-09-17 20:48:14 +03:00
Dushnilin
623ea59797
feat: гармонизация секции AWG в дашборде и изоляция маршрутизации FPTN
2026-09-17 19:42:54 +03:00
Dushnilin
44e93b1f16
fix(test): restore CACHE and RUNTIME module paths in subscription_happ_crypt4 test
2026-09-17 18:55:51 +03:00
Dushnilin
5f3b3eb77b
fix(test): make crypt4 test resilient without openssl CLI and add openssl-util to docker e2e
2026-09-17 18:44:22 +03:00
Dushnilin
bf4255438f
release: 1.3.29 — Happ Crypt4 decryption, dual HWID headers, P2P isolation fix & diagnostic symptom collapsing
2026-09-17 18:26:35 +03:00
Dushnilin
e2c90ed6ea
fix(singbox): fix p2p isolation rule matching for transport network and port directions
2026-09-17 18:17:44 +03:00
Dushnilin
b556f2539b
feat(subscription): add crypt4 decryption, dual HWID headers, and diagnosis symptom collapsing
2026-09-17 18:04:23 +03:00
Dushnilin
e610ea9ca3
fix(installer): use core.common in runtime healthcheck and fix CLI guard in ucode modules
2026-09-17 15:45:50 +03:00
Dushnilin
3bcce51ec3
Refactor Tachyon installer into resilient transactional flow ( #61 )
...
Replace the monolithic installer with a staged transactional flow, add atomic locking, APK lock waiting/diagnostics, tmpfs and overlay preflight, verified release downloads, recovery snapshots, package transaction healthchecks, and active installer regression tests.
2026-09-17 15:26:07 +03:00
Dushnilin
a27173a04a
fix(singbox): prevent empty logical subrules when excluding IPs on evaluate and match-all rules ( #60 )
2026-09-17 14:53:12 +03:00
Dushnilin
2ab4e0db74
fix(subscription): auto fallback on unsupported app provider stubs
2026-09-17 14:39:47 +03:00
Dushnilin
5bfe7103dc
fix(updates): trigger immediate telegram push on component updates and fix cron cleanup regex
Backend CI / Backend Runtime Checks (push) Failing after 2m0s
Frontend CI / Frontend Quality Checks (push) Failing after 0s
Backend CI / OpenWrt Docker E2E (push) Skipped
Differential ShellCheck / Differential ShellCheck (push) Failing after 15s
2026-09-17 13:43:51 +03:00
Dushnilin
8d60bd36ef
fix(install): increase service start timeout from 30s to 120s to allow full provider startup
2026-09-17 13:16:58 +03:00
Dushnilin
37d8c6b19e
fix(install): use exact package matching for apk to avoid false legacy migration warning
2026-09-17 12:58:08 +03:00
Dushnilin
fcb40ee512
fix(install): define command_success in embedded ucode helper
2026-09-17 12:45:06 +03:00
Dushnilin
df61efce80
fix(singbox): allow routed DNS on bypass sections and hide proxy group outbounds in urltest
2026-09-17 12:35:14 +03:00
Dushnilin
5df1124ee8
fix(apk): sanitize orphaned sing-box packages in apk world and add force-overwrite
2026-09-17 11:16:28 +03:00
Dushnilin
287a8f8e0c
fix(singbox): resolve 1.14.1 DNS deprecation, store_rdrc, ruleset download_detour, and provider routing isolation
2026-09-17 10:46:04 +03:00
Dushnilin
0efa47abdc
fix(dns): preserve 127.0.0.42 during restart and add local DNS cache support
...
- decouple restart() from stop_impl() in lifecycle.uc to avoid premature dnsmasq_restore
- keep dhcp.@dnsmasq[0].server locked to 127.0.0.42 throughout service restarts
- add atomic restart_service hooks in init.d/tachyon and initd.uc
- fix dns_turbo_cache path resolution to promote default cache to /etc/sing-box/cache.db
- add Local DNS Cache support in dnsmasq (dns_local_cache, dns_cache_size)
- add comprehensive behavioral regression test tests/service_restart_lifecycle.sh
2026-09-17 08:45:24 +03:00
Dushnilin
44a1777c0d
fix(singbox): separate dns query and response rulesets for sing-box 1.14+ compatibility
2026-09-17 08:13:11 +03:00
Dushnilin
67761143f5
test(predicates): restore list update signature parity & update plain list validation assertions
2026-09-16 22:54:34 +03:00
Dushnilin
61c01109ad
feat(rulesets): add native plain list (.lst/.txt) download and compilation in rule_set & fix OlcRTC/WDTT status
2026-09-16 22:41:52 +03:00
Dushnilin
5eeaa91864
fix: resolve zapret2 fuzzer daemon startup, premature self-update completion, and component visibility cache
2026-09-16 19:54:36 +03:00
Dushnilin
304a95de0a
fix(routing): broaden disable_quic to all inbounds and reject SVCB/HTTPS DNS queries
2026-09-16 17:20:14 +03:00
Dushnilin
e10509033c
fix(fe): resolve eslint any errors and format frontend files
2026-09-16 16:33:03 +03:00
Dushnilin
0f5967e51c
fix(routing): scope excluded_ips to section rules, humanize section names, and add component visibility
2026-09-16 16:16:32 +03:00
Dushnilin
94d629b8bb
chore(i18n): update translation call index and synchronize po templates
2026-09-16 15:20:15 +03:00
Dushnilin
d28af621c9
fix(ruleset): reject plain lists in ruleset references ( #58 ) and route components to Dushnilin repos
2026-09-16 15:16:56 +03:00
Dushnilin
a23c2a2a55
fix(fptn): boot recovery, reload planner, persistent selector state and telegram token flow
2026-09-16 14:54:54 +03:00
Dushnilin
3834b783cc
fix(diagnostics): prevent tunnel IP pollution in WAN addresses and exempt Tailscale inbounds from public WAN warning
2026-09-16 10:07:09 +03:00
Dushnilin
4d6892e733
fix: resolve dashboard tile unselection, fuzzer probe parsing and complete translations
2026-09-16 09:45:06 +03:00
Dushnilin
86d6e92ce7
chore: actualize locales and extract translation calls
2026-09-16 08:37:05 +03:00
Dushnilin
76c51b92a1
feat(fuzzer): implement Probe v2, stable scoring, two-stage verification, and adaptive smart fuzzer
2026-09-16 08:34:02 +03:00
Dushnilin
cd584a100f
fuzzer: harden runner, fail-closed validation, job isolation and fix AI handoff
2026-09-16 08:20:17 +03:00
Dushnilin
5e9ffa2a01
chore: sync source and packaged Russian PO catalogs (Boosty strings)
2026-09-16 06:44:48 +03:00
Dushnilin
7112c5158c
chore: update locales calls.json after Boosty strings extraction
2026-09-16 06:43:56 +03:00
Dushnilin
affd8f7ca4
feat: add Boosty donation link to README and LuCI support modal
...
- Add Boosty badge to README.md and README.en.md headers
- Add Boosty as first donation option in support sections of both READMEs
- Add Boosty card (with orange border accent) to LuCI diagnostic support modal
- Add Russian translations for Boosty strings in po/ru/tachyon.po
2026-09-16 06:42:09 +03:00
Dushnilin
971d958331
fix(fptn): add fptn action to sing-box route target and outbound generation
...
- Add fptn to route.target() to prevent exit(2) crash on config generation
- Add add_fptn_outbound() using direct outbound with routing_mark=0x00300000
(routes traffic through tun-fptn via kernel ip rule → table 4249)
- Add fptn to reserve_section_outbound_tags
- Add fptn to generator_routes outbound dispatch
Fixes torrents and all traffic breaking when an FPTN section is configured.
2026-09-16 06:33:23 +03:00
Dushnilin
c59e90f4e1
ci: trigger backend-ci for full E2E verification
2026-09-15 22:44:07 +03:00
Dushnilin
cb899a208e
fix: fptn_component test env var and update calls.json
...
- Fix fptn_component.sh test #5 : diagnostics/runtime.uc reads TACHYON_LIB (not TACHYON_LIB_DIR)
- Update locales/calls.json with FPTN UI strings from section.js
2026-09-15 21:38:25 +03:00
Dushnilin
8855179793
feat: add FPTN section action UI, config fields, dashboard status, and diagnostics
...
- Add FPTN to ROUTING_ACTIONS, actionProvidersAvailabilityState, isFptnInstalledForUi()
- Add FPTN action option label (FPTN) in getActionOptionLabel and getRuleActionDisplayValue
- Add FPTN to populateActionOptionValues (guarded by isFptnInstalledForUi())
- Add FPTN section config fields: access_token (required), sni, bypass_method, preferred_server
- Add fptn to ACTION_COLORS (#e74c3c)
- Add GetFptnStatus type, GET_FPTN_STATUS method, getFptnStatus() shell method
- Add fptn to dashboard: getDashboardSections, renderSections, getServiceStatus handler
- Add get_fptn_status CLI dispatch and get-fptn-status handler in diagnostics/runtime.uc
- Add FPTN unit test in getDashboardSections.test.ts
- Update translation calls index (locales/calls.json)
2026-09-15 21:25:54 +03:00
Dushnilin
e6387aff25
chore(i18n): update translation call index
2026-09-15 19:21:04 +03:00
Dushnilin
6978601d4d
fix: resolve Discord Cloudflare voice ports #55 , smart detect proxy sections #56 , and UI enhancements
2026-09-15 19:15:57 +03:00
Dushnilin
046902d4e9
chore(i18n): update translation call index and locale templates
2026-09-15 15:08:49 +03:00
Dushnilin
73cdde17bb
feat(fptn): integrate FPTN client component and runtime provider
2026-09-15 14:57:05 +03:00
Dushnilin
03c51d7606
fix(service): prevent recursive flock deadlock and crontab wipe; increase component RPC timeout
...
- initd.uc: retry_start_on_wan_up now calls BIN_PATH directly instead of
SERVICE_INIT to avoid the rc.common flock-1000 self-deadlock that was
hanging Backend CI for the full 1-hour runner timeout
- initd.uc: schedule_start_retry uses background_command() so inherited
fd 1000 (procd lock) is closed before the sleep starts
- updates.uc, parental_quota.uc: read /etc/crontabs/root via fs.readfile
instead of crontab -l — BusyBox exits 1 on an empty file causing
command_output_from_args to return '' and wipe all user cron entries
- shell/index.ts: COMPONENT_ACTION_RPC_TIMEOUT_MS 10s -> 45s to prevent
false RPC timeout errors during opkg installs on slow routers
2026-09-15 11:16:50 +03:00
Dushnilin
aba424426b
fix(ci): update calls.json index and fix non-root permission in route_router_traffic test
2026-09-15 09:34:17 +03:00
Dushnilin
2d00141696
feat(routing): route router's own traffic through designated section
2026-09-15 09:30:04 +03:00
Dushnilin
45e6a6ae60
chore(i18n): update translation call index in calls.json
2026-09-15 08:40:48 +03:00
Dushnilin
d6d39dac81
perf(ui,watchdog): adaptive UI polling and zero-UCI cached settings context
...
- Feat(ui): implement adaptive polling in runtimeUiState service (1s -> 2s during active tasks, 10s idle)
- Perf(controller): cache settings snapshot in current_tick_ctx across all probe setting() calls to eliminate repeated uci_core.get_all()
- Perf(controller): reuse ctx.proxy_port in probe_proxy to eliminate duplicate proxy_port() evaluation
- Perf(watchdog): guard adaptive_normal_interval behind 120s check and clear tick context at tick boundary
- Test: add static and behavioral assertions in tests/watchdog_adaptive_intervals.sh
2026-09-15 08:37:43 +03:00