Pulse/scripts/tests
rcourtman 6351fd6526 fix(updates): select releases by highest version, not GitHub list order
Production telemetry (7d, 2026-07-17) shows a persistent tail of live
installs on 6.0.0-rc.x and 6.0.3/6.0.4 while 6.0.5 has been stable since
2026-07-09. Root cause for the reachable stranding class: release
selection trusted GitHub's created_at ordering, and this repo interleaves
v5-line maintenance releases with v6 releases (v5.1.36 was created the
day before v6.0.5). Whenever a v5.1.x release is the most recently
created stable:

- stable channel (getLatestReleaseForChannel) returned the first
  non-prerelease in list order -> "no update" for every v6 install
  until the next v6 release ships
- the RSS rate-limit fallback returned the first feed entry matching the
  channel, same failure, both channels
- the unattended updater trusted /releases/latest, which GitHub defines
  as most-recently-created stable -> timer no-ops in the same window

All three now select the highest eligible version: the API path tracks
newest stable + newest prerelease in one pass (prerelease = GitHub flag
OR tag shape), the feed fallback picks the max matching the channel, and
pulse-auto-update.sh scans /releases pairing each tag with its own
draft/prerelease flags before the fail-closed shape filter, keeping
/releases/latest as fallback. helm-chart-* tags fail semver parsing and
are dropped everywhere.

Verified not broken (pinned by new tests): rc-channel installs are
offered the newer stable (6.0.0-rc.6 -> 6.0.5) and move onto the next rc
line when one opens (-> 6.1.0-rc.2); the auto-update prerelease filter
(fail-closed is_prerelease_tag, metadata-flag refusal) still refuses
prerelease targets on stable. Go tests fail on the pre-fix code
(returned 5.1.37 / "no update").

Contract: deployment-installability now pins version-max release
selection with proofs in manager_stranded_upgrade_test.go and
pulse_auto_update_test.go.
2026-07-17 23:21:49 +01:00
..
integration feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
run.sh test(scripts): run python smoke tests 2026-03-28 21:53:09 +00:00
test-cloud-public-signup-smoke.sh Add Pulse Cloud public signup smoke 2026-04-23 23:09:10 +01:00
test-common-lib.sh feat: add shared script library system and refactor docker-agent installer 2025-10-20 15:13:38 +00:00
test-hot-dev-auth.sh Stabilize script smoke checks 2026-05-28 12:55:33 +01:00
test-hot-dev-bg.sh backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
test-hot-dev-runtime.sh Modernize Unified Agent lifecycle and platform support 2026-07-09 23:20:35 +01:00
test-install-ps1-parser.sh Tighten unified agent hardening proof 2026-04-23 23:37:25 +01:00
test-install-update-resilience.sh Verify Pulse restarts after an interactive update; don't leave it silently stopped (#1323) 2026-06-09 15:05:08 +01:00
test-pulse-auto-update.sh fix(updates): select releases by highest version, not GitHub list order 2026-07-17 23:21:49 +01:00
test-retired-trial-acquisition-docs.sh Rename retired trial acquisition proof assets 2026-04-28 18:38:10 +01:00
test-script-reference-integrity.sh Switch script-reference integrity test from rg to git grep for portable CI 2026-05-12 00:30:43 +01:00
test-toggle-mock.sh Recover managed mock-mode restart handoffs 2026-06-01 08:33:18 +01:00
test_localized_public_docs.py Add localized public docs entry points 2026-06-13 08:07:46 +01:00
test_repo_docs_link_drift.py test(repo): generalize docs drift guard 2026-03-28 22:15:12 +00:00
test_sync_chart_release_metadata.py fix(deploy): pin docs links to release refs 2026-03-28 21:32:11 +00:00
test_telemetry_adoption_report.py fix(telemetry): suppress outbound pings while mock mode is enabled 2026-07-17 18:19:18 +01:00