fix(components): robust version installation and updates across Docker, APK v3 and OPKG

- fix(updater): support single release JSON object for specific tag queries and unblock prereleases on explicit selection
- fix(action): replace wget --header with -U for uclient-fetch compatibility on OpenWrt 23.05
- fix(action): make package list updates best-effort to prevent failures on snapshot kmod feeds
- fix(action): add offline/corrupt extract fallbacks (apk extract and opkg data.tar.gz) for kernel dependency mismatch
- fix(action): ensure /var/lock and /tmp/run directories exist before opkg/procd operations
- fix(action): fix fallback asset URL pattern for remittor zapret releases
- fix(packages): add binary presence and --version detection fallbacks for zapret, zapret2, byedpi, sing-box
- fix(byedpi): support direct apk list parsing for installed package version
- fix(state): include schedule, profile, and guest_mode in reload state signatures
- fix(imports): fix missing command_status_from_args, write_json, and remove_file imports
- fix(updates): extract meaningful ucode errors and strip trailing caret lines
This commit is contained in:
Dushnilin
2026-09-10 19:38:26 +03:00
parent f3e77e7142
commit a254cfc8b6
15 changed files with 514 additions and 148 deletions
+6 -2
View File
@@ -2359,7 +2359,9 @@ function nft_rule_signature_body(body, section) {
function nft_schedule_signature_body(body, schedule) {
let name = as_string(schedule[".name"]);
body = signature_add_value(body, "schedule." + name + ".enabled", bool_option(schedule, "enabled", true) ? "1" : "0");
body = signature_add_value(body, "schedule." + name + ".device_ip", option(schedule, "device_ip", ""));
let dev_ips = join(",", list_option(schedule, "device_ip"));
if (dev_ips == "") dev_ips = option(schedule, "device_ip", "");
body = signature_add_value(body, "schedule." + name + ".device_ip", dev_ips);
body = signature_add_value(body, "schedule." + name + ".profile", join(",", list_option(schedule, "profile")));
body = signature_add_value(body, "schedule." + name + ".target", option(schedule, "target", "all"));
body = signature_add_value(body, "schedule." + name + ".sections", join(",", list_option(schedule, "sections")));
@@ -2375,7 +2377,9 @@ function nft_schedule_signature_body(body, schedule) {
function nft_profile_signature_body(body, profile) {
let name = as_string(profile[".name"]);
body = signature_add_value(body, "profile." + name + ".enabled", bool_option(profile, "enabled", true) ? "1" : "0");
body = signature_add_value(body, "profile." + name + ".device_ip", join(",", list_option(profile, "device_ip")));
let dev_ips = join(",", list_option(profile, "device_ip"));
if (dev_ips == "") dev_ips = option(profile, "device_ip", "");
body = signature_add_value(body, "profile." + name + ".device_ip", dev_ips);
body = signature_add_value(body, "profile." + name + ".safe_search", option(profile, "safe_search", "0"));
body = signature_add_value(body, "profile." + name + ".block_doh", option(profile, "block_doh", "0"));
body = signature_add_value(body, "profile." + name + ".blocked_domains", join(",", list_option(profile, "blocked_domains")));