From 3f1b7039b9946268720d5e1c5800d9d47501373d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 12 Sep 2026 21:22:56 +0000 Subject: [PATCH] Promote Sortify 4.8.4 public frontdoors --- .github/workflows/publish-v484-stable.yml | 102 ------------------ CHANGELOG.md | 13 +-- README.md | 22 ++-- ...NOTES_v4.8.4-webui-action-launch-hotfix.md | 12 +-- tools/promote-v484-stable.py | 93 ---------------- update.json | 8 +- 6 files changed, 26 insertions(+), 224 deletions(-) delete mode 100644 .github/workflows/publish-v484-stable.yml delete mode 100644 tools/promote-v484-stable.py diff --git a/.github/workflows/publish-v484-stable.yml b/.github/workflows/publish-v484-stable.yml deleted file mode 100644 index 189b4ca..0000000 --- a/.github/workflows/publish-v484-stable.yml +++ /dev/null @@ -1,102 +0,0 @@ -name: Publish Sortify 4.8.4 stable - -on: - push: - branches: [main] - paths: - - '.github/workflows/publish-v484-stable.yml' - workflow_dispatch: - -permissions: - actions: read - contents: write - -jobs: - publish: - runs-on: ubuntu-latest - timeout-minutes: 10 - env: - TAG: v4.8.4-webui-action-launch-hotfix - ASSET: dist/Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip - ACCEPTED_ARTIFACT_ID: '9991166629' - EXPECTED_SHA256: 6fd05118990e797d8868e6dd8279c220ddf881aad072872c9752fbc1387eecc1 - EXPECTED_BYTES: '2502058' - TARGET_SHA: a3bce87db788b861709df656e349bb9dd0e61bd3 - PROMOTION_BRANCH: automation/v484-public-frontdoors - GH_TOKEN: ${{ github.token }} - steps: - - uses: actions/checkout@v4 - - - name: Restore exact accepted package - shell: bash - run: | - set -euo pipefail - archive="$RUNNER_TEMP/accepted-artifact.zip" - extract="$RUNNER_TEMP/accepted-artifact" - mkdir -p "$extract" "$(dirname "$ASSET")" - gh api -H 'Accept: application/vnd.github+json' "/repos/$GITHUB_REPOSITORY/actions/artifacts/$ACCEPTED_ARTIFACT_ID/zip" > "$archive" - unzip -q "$archive" -d "$extract" - accepted="$extract/$(basename "$ASSET")" - test -f "$accepted" - test "$(stat -c %s "$accepted")" = "$EXPECTED_BYTES" - printf '%s %s\n' "$EXPECTED_SHA256" "$accepted" | sha256sum -c - - cp "$accepted" "$ASSET" - printf '%s\n' 'accepted_artifact_restore=PASS' - - - name: Publish or verify stable release - shell: bash - run: | - set -euo pipefail - notes="$RUNNER_TEMP/release-notes.md" - printf '%s\n' \ - '## What changed' \ - '' \ - '- Fixes the module-manager Action button opening an unreachable local WebUI.' \ - '- Fixes productive Sort now showing a network error on large Download trees. Productive sorting now runs as a background Job while Preview stays synchronous.' \ - '- Existing Sortify settings and persistent configuration are preserved.' \ - '' \ - 'Install or update the module with a Magisk/KernelSU-compatible module manager and reboot once.' \ - > "$notes" - if gh release view "$TAG" >/dev/null 2>&1; then - dir="$RUNNER_TEMP/existing-release" - mkdir -p "$dir" - gh release download "$TAG" --pattern "$(basename "$ASSET")" --dir "$dir" - existing="$dir/$(basename "$ASSET")" - test "$(stat -c %s "$existing")" = "$EXPECTED_BYTES" - printf '%s %s\n' "$EXPECTED_SHA256" "$existing" | sha256sum -c - - printf '%s\n' 'release_state=existing_verified' - else - gh release create "$TAG" "$ASSET" --target "$TARGET_SHA" --title 'Sortify Dispatch 4.8.4' --notes-file "$notes" - printf '%s\n' 'release_state=created' - fi - - - name: Verify published release asset - shell: bash - run: | - set -euo pipefail - dir="$RUNNER_TEMP/release-verify" - mkdir -p "$dir" - gh release download "$TAG" --pattern "$(basename "$ASSET")" --dir "$dir" - published="$dir/$(basename "$ASSET")" - test "$(stat -c %s "$published")" = "$EXPECTED_BYTES" - printf '%s %s\n' "$EXPECTED_SHA256" "$published" | sha256sum -c - - gh release view "$TAG" --json tagName,isDraft,isPrerelease,targetCommitish,url - printf '%s\n' 'RESULT: SORTIFY_V484_STABLE_RELEASE_PUBLISH_PASS' - - - name: Prepare public frontdoor pull-request branch - shell: bash - run: | - set -euo pipefail - python3 tools/promote-v484-stable.py - git diff --check - grep -Fq '"version": "4.8.4-webui-action-launch-hotfix"' update.json - grep -Fq '## Sortify Dispatch 4.8.4' README.md - grep -Fq '## 4.8.4-webui-action-launch-hotfix - WebUI Action Launch Hotfix' CHANGELOG.md - grep -Fq '## What changed' RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md - git rm .github/workflows/publish-v484-stable.yml tools/promote-v484-stable.py - git config user.name 'github-actions[bot]' - git config user.email '41898282+github-actions[bot]@users.noreply.github.com' - git add README.md CHANGELOG.md RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md update.json - git commit -m 'Promote Sortify 4.8.4 public frontdoors' - git push --force origin "HEAD:refs/heads/$PROMOTION_BRANCH" - printf '%s\n' 'RESULT: SORTIFY_V484_PUBLIC_FRONTDOOR_BRANCH_PASS' diff --git a/CHANGELOG.md b/CHANGELOG.md index 5eabc6c..e0b29d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,9 @@ -## 4.8.4-webui-action-launch-hotfix - WebUI Action Launch Hotfix candidate - -- Fixed the module-manager Action-button race that could leave the external browser with `ERR_CONNECTION_REFUSED` on the one-time loopback bootstrap URL. -- Fixed productive **Sort now** using a synchronous Action request even though real sorting can take minutes; Preview remains synchronous and productive apply now runs as a bounded background job. -- Pinned shared WebUI Core 0.6.3 for both the SIGHUP-safe Action launcher and action-to-job apply handoff. -- Kept the server explicitly user-triggered, loopback-only, authenticated by the existing one-time bootstrap flow, and bounded by the existing idle/session/job limits. -- Preserved Sortify configuration and SSH Drop Dispatcher policy v4115. -- Stable update metadata remains on 4.8.3 until exact-device Action-button and productive Sort-now acceptance are complete. +## 4.8.4-webui-action-launch-hotfix - WebUI Action Launch Hotfix + +- Fixed the module-manager Action button opening an unreachable local WebUI. +- Fixed productive **Sort now** showing a network error on large Download trees; productive sorting now runs as a background Job while Preview remains synchronous. +- Preserved existing Sortify settings and persistent configuration across the update. diff --git a/README.md b/README.md index a65f92e..72786b5 100755 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ -## Sortify Dispatch 4.8.4 candidate +## Sortify Dispatch 4.8.4 -Source candidate: `4.8.4-webui-action-launch-hotfix` / `versionCode=31`. +Current release: `4.8.4-webui-action-launch-hotfix` / `versionCode=31`. -This candidate fixes two WebUI field failures from 4.8.3: +This release fixes two WebUI failures from 4.8.3: -- the module-manager Action-button launch race where the external browser could reach the one-time `127.0.0.1` bootstrap URL after the standalone WebUI server had already stopped; -- productive **Sort now** running synchronously through the Action HTTP request, which can take minutes on a large Download tree and surface as a browser network error even while sorting continues. +- the module-manager Action button no longer opens a loopback URL after its local WebUI server has already stopped; +- productive **Sort now** no longer depends on one long browser request. Preview stays synchronous and read-only, while productive sorting runs as a background Job and remains observable until completion. -It pins shared WebUI Core 0.6.3. The launcher is detached from the Action shell's stdin/SIGHUP lifetime, while Sort now keeps its synchronous read-only Preview but starts productive sorting through the bounded background Jobs lifecycle. Loopback-only binding, one-time bootstrap authentication, idle/session/job bounds, existing Sortify state, and SDD policy v4115 are preserved. +Existing Sortify settings and persistent configuration are preserved during the update. Sortify uses shared WebUI Core 0.6.3 and keeps SSH Drop Dispatcher policy `v4115`. -Stable release remains `4.8.3-webui-actions-hotfix` until the exact installed candidate passes both Action-button bootstrap and productive Sort-now device acceptance. +Install `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` with a Magisk/KernelSU-compatible module manager and reboot once. ## Sortify Dispatch 4.8.3 -Current release: `4.8.3-webui-actions-hotfix`. +Previous release: `4.8.3-webui-actions-hotfix`. This hotfix keeps long action output inside a bounded mobile result panel, labels safe read-only actions as **Run check**, preserves detailed action failure messages, reports the installed Sortify version correctly, and keeps focused WebUI form controls visible above the Android software keyboard. @@ -211,7 +211,7 @@ Current release: `v4.4-ssh-drop-dispatcher` / `versionCode=15`. **Original author:** [xCaptaiN09](https://github.com/xCaptaiN09) **Fork maintainer:** [Lycidias93](https://github.com/Lycidias93) -**Version:** 4.8.3-webui-actions-hotfix +**Version:** 4.8.4-webui-action-launch-hotfix Sortify Dispatch is a Magisk / KernelSU module based on Sortify v4.0. It keeps normal download sorting, but adds an Artifact Guard for SSH Drop Dispatcher, Pixel-local scripts, Termux helper scripts, Magisk/KernelSU release ZIPs, and repo helper artifacts. @@ -252,7 +252,7 @@ Sortify Dispatch holds only operational artifacts. Normal downloads are sorted a ## Installation -1. Download `Sortify-Dispatch-4.8.3-webui-actions-hotfix.zip` from Releases. +1. Download `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` from Releases. 2. Flash through Magisk or KernelSU. 3. Reboot if your module manager requires it. 4. Run Sortify manually or wait for the service interval. @@ -265,7 +265,7 @@ su -c sh /data/adb/modules/sortify/action.sh ## WebUI -The shared WebUI Core 0.6.1 provides typed Settings, Actions, Jobs and Inventory views through an authenticated loopback session. It can open from the module Action button in the default browser or through compatible embedded WebUI hosts. +The shared WebUI Core 0.6.3 provides typed Settings, Actions, Jobs and Inventory views through an authenticated loopback session. It can open from the module Action button in the default browser or through compatible embedded WebUI hosts. ## Online updates diff --git a/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md b/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md index 61abb36..2d2a50a 100644 --- a/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md +++ b/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md @@ -1,9 +1,9 @@ # Sortify Dispatch 4.8.4 – WebUI Action Launch Hotfix -- Fixes the module-manager Action-button launch race that could open the browser after the standalone loopback WebUI server had already stopped, causing `ERR_CONNECTION_REFUSED` on the one-time `127.0.0.1` bootstrap URL. -- Fixes productive **Sort now** timing out as a synchronous browser Action request on large Download trees. Preview stays synchronous; productive sorting starts in the bounded Jobs lifecycle and remains observable there until completion. -- Pins shared WebUI Core 0.6.3 for the SIGHUP-safe launcher and action-to-job apply handoff. -- Keeps the WebUI loopback-only, one-time-token authenticated, idle/session/job bounded, and explicitly user-triggered. -- Preserves existing Sortify settings, persistent configuration, and SSH Drop Dispatcher policy v4115. +## What changed -This is a source candidate until the exact installed ZIP passes both the device Action-button bootstrap audit and productive Sort-now background-job acceptance. Stable update metadata remains on 4.8.3 until that acceptance is complete. +- Fixes the module-manager Action button opening an unreachable local WebUI. +- Fixes productive **Sort now** showing a network error on large Download trees. Productive sorting now runs as a background Job while Preview stays synchronous. +- Preserves existing Sortify settings and persistent configuration across the update. + +Install or update `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` with a Magisk/KernelSU-compatible module manager and reboot once. diff --git a/tools/promote-v484-stable.py b/tools/promote-v484-stable.py deleted file mode 100644 index d72a438..0000000 --- a/tools/promote-v484-stable.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env python3 -from pathlib import Path - - -def replace_block(path: str, start: str, end: str, replacement: str) -> None: - file = Path(path) - text = file.read_text(encoding="utf-8") - begin = text.find(start) - if begin < 0: - raise SystemExit(f"missing start marker in {path}: {start}") - finish = text.find(end, begin) - if finish < 0: - raise SystemExit(f"missing end marker in {path}: {end}") - finish += len(end) - file.write_text(text[:begin] + replacement + text[finish:], encoding="utf-8") - - -def replace_once(path: str, old: str, new: str) -> None: - file = Path(path) - text = file.read_text(encoding="utf-8") - count = text.count(old) - if count != 1: - raise SystemExit(f"expected one anchor in {path}, found {count}: {old}") - file.write_text(text.replace(old, new, 1), encoding="utf-8") - - -readme_start = "" -readme_end = "" -readme_block = """ -## Sortify Dispatch 4.8.4 - -Current release: `4.8.4-webui-action-launch-hotfix` / `versionCode=31`. - -This release fixes two WebUI failures from 4.8.3: - -- the module-manager Action button no longer opens a loopback URL after its local WebUI server has already stopped; -- productive **Sort now** no longer depends on one long browser request. Preview stays synchronous and read-only, while productive sorting runs as a background Job and remains observable until completion. - -Existing Sortify settings and persistent configuration are preserved during the update. Sortify uses shared WebUI Core 0.6.3 and keeps SSH Drop Dispatcher policy `v4115`. - -Install `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` with a Magisk/KernelSU-compatible module manager and reboot once. -""" -replace_block("README.md", readme_start, readme_end, readme_block) -replace_once("README.md", "Current release: `4.8.3-webui-actions-hotfix`.", "Previous release: `4.8.3-webui-actions-hotfix`.") -replace_once("README.md", "**Version:** 4.8.3-webui-actions-hotfix", "**Version:** 4.8.4-webui-action-launch-hotfix") -replace_once( - "README.md", - "1. Download `Sortify-Dispatch-4.8.3-webui-actions-hotfix.zip` from Releases.", - "1. Download `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` from Releases.", -) -replace_once( - "README.md", - "The shared WebUI Core 0.6.1 provides typed Settings, Actions, Jobs and Inventory views through an authenticated loopback session.", - "The shared WebUI Core 0.6.3 provides typed Settings, Actions, Jobs and Inventory views through an authenticated loopback session.", -) - -changelog_start = "" -changelog_end = "" -changelog_block = """ -## 4.8.4-webui-action-launch-hotfix - WebUI Action Launch Hotfix - -- Fixed the module-manager Action button opening an unreachable local WebUI. -- Fixed productive **Sort now** showing a network error on large Download trees; productive sorting now runs as a background Job while Preview remains synchronous. -- Preserved existing Sortify settings and persistent configuration across the update. -""" -replace_block("CHANGELOG.md", changelog_start, changelog_end, changelog_block) - -Path("RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md").write_text( - """# Sortify Dispatch 4.8.4 – WebUI Action Launch Hotfix - -## What changed - -- Fixes the module-manager Action button opening an unreachable local WebUI. -- Fixes productive **Sort now** showing a network error on large Download trees. Productive sorting now runs as a background Job while Preview stays synchronous. -- Preserves existing Sortify settings and persistent configuration across the update. - -Install or update `Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip` with a Magisk/KernelSU-compatible module manager and reboot once. -""", - encoding="utf-8", -) - -Path("update.json").write_text( - """{ - \"version\": \"4.8.4-webui-action-launch-hotfix\", - \"versionCode\": 31, - \"zipUrl\": \"https://github.com/Lycidias93/Sortify-Dispatch/releases/download/v4.8.4-webui-action-launch-hotfix/Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip\", - \"changelog\": \"https://raw.githubusercontent.com/Lycidias93/Sortify-Dispatch/main/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md\" -} -""", - encoding="utf-8", -) - -print("RESULT: SORTIFY_V484_PUBLIC_FRONTDOOR_PROMOTION_PASS") diff --git a/update.json b/update.json index 06e79fb..6158d26 100644 --- a/update.json +++ b/update.json @@ -1,6 +1,6 @@ { - "version": "4.8.3-webui-actions-hotfix", - "versionCode": 30, - "zipUrl": "https://github.com/Lycidias93/Sortify-Dispatch/releases/download/v4.8.3-webui-actions-hotfix/Sortify-Dispatch-4.8.3-webui-actions-hotfix.zip", - "changelog": "https://raw.githubusercontent.com/Lycidias93/Sortify-Dispatch/main/RELEASE_NOTES_v4.8.3-webui-actions-hotfix.md" + "version": "4.8.4-webui-action-launch-hotfix", + "versionCode": 31, + "zipUrl": "https://github.com/Lycidias93/Sortify-Dispatch/releases/download/v4.8.4-webui-action-launch-hotfix/Sortify-Dispatch-4.8.4-webui-action-launch-hotfix.zip", + "changelog": "https://raw.githubusercontent.com/Lycidias93/Sortify-Dispatch/main/RELEASE_NOTES_v4.8.4-webui-action-launch-hotfix.md" }