Release 0.3.6, so Update all moves the runners onto the background-task wait #132

Merged
agra merged 3 commits from task/3779-release-0-3-6-so-the-runners-take-3687-s into master 2026-10-24 15:29:22 +03:00
Owner

Tracker: #3779

Master carries #3687's runner change (a run waits on the background tasks its turn leaves running, in the runner's run loop, the stream-json adapter and the harness layer), and sak is deployed at 13c9709. VERSION still reads 0.3.5, the version m5 and s32 already run. behind (src/api.sx) compares version strings, so sak marks neither runner behind and Update all asks neither to take the new build. Before this PR, /api/health answered {"version":"0.3.5","commit":"13c9709"}, and /api/runners listed m5 and s32 at 0.3.5 with behind: false.

What it delivers

The release is four lines. git diff origin/master...HEAD holds exactly these:

  • src/version.sx: VERSION :: "0.3.6";
  • README.md: the tarball name in the unpack line, sak-0.3.6-macos-arm64.tar.gz
  • tests/support/handover.sx:19: LATER :: "0.3.7";
  • tests/runner_handover.sx:12: MISLABELLED :: "0.3.8";

The four lines span the branch's three commits, which are already on the forge, so they are not folded into one:

  1. release: 0.3.6 (b605304) changes VERSION and the README tarball name.
  2. 3472f22 moved LATER to "0.9.0".
  3. bf166ae sets LATER to "0.3.7" and MISLABELLED to "0.3.8", the values the task names. #3782 stays open for deriving them from VERSION.

Why the hand-over tests' versions move

LATER is the version the hand-over tests build runner/main.sx at, which must never be VERSION. At b605304 alone it still read "0.3.6", so the tests handed a runner over to its own version. full gate run 289 at b605304 failed exactly the three test files that use LATER:

  • tests/runner_handover.sx: RUNNER HANDOVER FAIL (17 checks), among them "next names b", "the new process's take of next" and "the slotted runner is gone"
  • tests/runner_launchd.sx: RUNNER LAUNCHD FAIL (5 checks), among them "a to b: the new runner registers its version and takes next"
  • tests/runner_view.sx: RUNNER VIEW FAIL (1 checks), "Next shows the update waiting for the steps running"

Every other tests/*.sx file passed in that gate.

MISLABELLED moves from 0.3.7 to 0.3.8 so that it differs from LATER. It now equals UNCONNECTED (0.3.8). That is harmless: store.ask_update (src/store.sx) clears failed_version whenever Update all asks for a version, so one failed update's record does not answer the other's probe.

Gates at the head

All at bf166ae:

  • fast, gate run 302 (s32): passed (vitest 401/401 in 8.39 s). Gate run 301 had failed before it in 4 s, at its node_modules copy, because the disk was full (No space left on device), with swap at 11 GB.
  • fast, gate run 308 (review, s32): passed.
  • full, gate run 306 (s32), and the flow's gate step, job 113 (s32): every step passed through the main Playwright config (740 passed and 1 skipped, 4.8–4.9 min). Those steps were both sak builds, npm run build, the libc grep, every tests/*.sx file, scripts/release.sh (release: sak 0.3.6) with tests/step9_release.sx, and the deploy contract. Both failed only at the runner Playwright config's global setup, with sak serve never answered on http://127.0.0.1:18988. On s32 that port is held by pid 6685, a sak serve that run 75 left behind. Run by hand from a git archive of bf166ae, using the gate's own dist/, web/dist and node_modules with the daemon's port moved to 18978, the runner config passed 10 of 10 in 30.6 s.
  • full, gate run 305 (s32): failed one check of tests/runner_core.sx, and the output's 40-line tail does not name it. Every other tests/*.sx file passed. Run by hand from a git archive of bf166ae, runner_core passed (RUNNER CORE OK), and it passed again in gate run 306. The PR touches nothing under runner/.
  • full, gate run 316 (m5, where port 18988 is free): passed every step. Those were both sak builds, npm run build, the libc grep, every tests/*.sx file, scripts/release.sh (release: sak 0.3.6) with tests/step9_release.sx, the deploy contract (PASS), the main Playwright config (740 passed and 1 skipped, 3.6 min) and the runner Playwright config (10 passed, 37.0 s).

After the merge

The task's remaining acceptance is Agra's: deploy.yml's publish at the merge commit, scripts/deploy_nas.sh, /api/health reporting 0.3.6, then Update all moving m5 and s32 to 0.3.6.

Tracker: [#3779](https://sak.swipelab.com/tasks/3779) Master carries #3687's runner change (a run waits on the background tasks its turn leaves running, in the runner's run loop, the stream-json adapter and the harness layer), and sak is deployed at 13c9709. VERSION still reads 0.3.5, the version m5 and s32 already run. `behind` (src/api.sx) compares version strings, so sak marks neither runner behind and Update all asks neither to take the new build. Before this PR, `/api/health` answered `{"version":"0.3.5","commit":"13c9709"}`, and `/api/runners` listed m5 and s32 at 0.3.5 with `behind: false`. ## What it delivers The release is four lines. `git diff origin/master...HEAD` holds exactly these: - `src/version.sx`: `VERSION :: "0.3.6";` - `README.md`: the tarball name in the unpack line, `sak-0.3.6-macos-arm64.tar.gz` - `tests/support/handover.sx:19`: `LATER :: "0.3.7";` - `tests/runner_handover.sx:12`: `MISLABELLED :: "0.3.8";` The four lines span the branch's three commits, which are already on the forge, so they are not folded into one: 1. `release: 0.3.6` (b605304) changes VERSION and the README tarball name. 2. 3472f22 moved `LATER` to `"0.9.0"`. 3. bf166ae sets `LATER` to `"0.3.7"` and `MISLABELLED` to `"0.3.8"`, the values the task names. #3782 stays open for deriving them from VERSION. ## Why the hand-over tests' versions move `LATER` is the version the hand-over tests build `runner/main.sx` at, which must never be VERSION. At b605304 alone it still read `"0.3.6"`, so the tests handed a runner over to its own version. `full` gate run 289 at b605304 failed exactly the three test files that use `LATER`: - `tests/runner_handover.sx`: `RUNNER HANDOVER FAIL (17 checks)`, among them "next names b", "the new process's take of next" and "the slotted runner is gone" - `tests/runner_launchd.sx`: `RUNNER LAUNCHD FAIL (5 checks)`, among them "a to b: the new runner registers its version and takes next" - `tests/runner_view.sx`: `RUNNER VIEW FAIL (1 checks)`, "Next shows the update waiting for the steps running" Every other `tests/*.sx` file passed in that gate. `MISLABELLED` moves from 0.3.7 to 0.3.8 so that it differs from `LATER`. It now equals `UNCONNECTED` (0.3.8). That is harmless: `store.ask_update` (src/store.sx) clears `failed_version` whenever Update all asks for a version, so one failed update's record does not answer the other's probe. ## Gates at the head All at bf166ae: - `fast`, gate run 302 (s32): passed (vitest 401/401 in 8.39 s). Gate run 301 had failed before it in 4 s, at its node_modules copy, because the disk was full (`No space left on device`), with swap at 11 GB. - `fast`, gate run 308 (review, s32): passed. - `full`, gate run 306 (s32), and the flow's gate step, job 113 (s32): every step passed through the main Playwright config (740 passed and 1 skipped, 4.8–4.9 min). Those steps were both sak builds, `npm run build`, the libc grep, every `tests/*.sx` file, `scripts/release.sh` (`release: sak 0.3.6`) with `tests/step9_release.sx`, and the deploy contract. Both failed only at the runner Playwright config's global setup, with `sak serve never answered on http://127.0.0.1:18988`. On s32 that port is held by pid 6685, a `sak serve` that run 75 left behind. Run by hand from a `git archive` of bf166ae, using the gate's own `dist/`, `web/dist` and node_modules with the daemon's port moved to 18978, the runner config passed 10 of 10 in 30.6 s. - `full`, gate run 305 (s32): failed one check of `tests/runner_core.sx`, and the output's 40-line tail does not name it. Every other `tests/*.sx` file passed. Run by hand from a `git archive` of bf166ae, runner_core passed (`RUNNER CORE OK`), and it passed again in gate run 306. The PR touches nothing under `runner/`. - `full`, gate run 316 (m5, where port 18988 is free): passed every step. Those were both sak builds, `npm run build`, the libc grep, every `tests/*.sx` file, `scripts/release.sh` (`release: sak 0.3.6`) with `tests/step9_release.sx`, the deploy contract (`PASS`), the main Playwright config (740 passed and 1 skipped, 3.6 min) and the runner Playwright config (10 passed, 37.0 s). ## After the merge The task's remaining acceptance is Agra's: deploy.yml's publish at the merge commit, `scripts/deploy_nas.sh`, `/api/health` reporting 0.3.6, then Update all moving m5 and s32 to 0.3.6.
VERSION is 0.3.6, so LATER takes the next release version and MISLABELLED moves past it. The values are the ones task #3779 names.
agra merged commit 6f823cd36e into master 2026-10-24 15:29:22 +03:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sx/sak!132
No description provided.