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
+1 -1
View File
@@ -17,7 +17,7 @@ export const DOMAIN_LIST_OPTIONS = {
russia_outside: 'Russia outside',
ukraine_inside: 'Ukraine',
geoblock: 'Geo Block',
block: 'Block (RKN)',
block: 'Block',
porn: 'Porn',
news: 'News',
anime: 'Anime',
@@ -465,10 +465,27 @@ export function showUpdateProgressModal(
cleanupTimers();
finishLogTracking();
let cleanError = (errorMessage || '').trim();
if (
cleanError.includes('Near here') ||
/^[-=~_^]{3,}$/m.test(cleanError)
) {
cleanError = cleanError
.split('\n')
.filter(
(line) =>
!line.includes('Near here') &&
!/^[\s\-_^]+$/.test(line) &&
line.trim() !== '',
)
.join(' ')
.trim();
}
const bannerEl = E(
'div',
{ class: 'tachyon-update-modal__error-banner' },
[renderXIcon24(), E('span', {}, errorMessage || _('Operation failed'))],
[renderXIcon24(), E('span', {}, cleanError || _('Operation failed'))],
);
const closeBtn = renderButton({