From ce3e023c19853bbf091595dd00ded8c1b2b5cf4f Mon Sep 17 00:00:00 2001
From: Torsten Mahr
Date: Tue, 22 Sep 2026 22:53:57 +0200
Subject: [PATCH] docs: site and smoke-test log for 1.3.3; fix a flaky plugin
smoke test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The plugin's own smoke.js raced the placeholder title ('—', before the first
API poll resolves) against the real first paint, occasionally passing the
assertion the wrong value (seen in PR #34's CI). Waits for the actual expected
title now, not just any setTitle.
Co-Authored-By: Claude Sonnet 5
Claude-Session: https://claude.ai/code/session_01EGjbE4ZXFZyXFd2GQ7xRAp
---
CHANGELOG.md | 5 +++++
RELEASE_CHECKLIST.md | 1 +
Tools/openpromptr-streamdeck/test/smoke.js | 10 +++++++++-
docs/index.html | 14 +++++++-------
docs/self-assessment.md | 2 +-
5 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 04f8109..26f23b4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Fixed
+
+- A flaky Stream Deck plugin smoke test (`test/smoke.js`) that could race the
+ placeholder title against the real first paint.
+
## [1.3.3] - 2026-09-22
### Added
diff --git a/RELEASE_CHECKLIST.md b/RELEASE_CHECKLIST.md
index 1ed4d2e..b21866a 100644
--- a/RELEASE_CHECKLIST.md
+++ b/RELEASE_CHECKLIST.md
@@ -141,6 +141,7 @@ until one changes how the app is built, signed or packaged.
| v1.3.0 | 2026-09-20 | pass — 9 of 9 checks; app reports `OpenPromptr 1.3.0 (64)` | AI agent |
| v1.3.1 | 2026-09-20 | pass — 9 of 9 checks; app reports `OpenPromptr 1.3.1 (68)` | AI agent |
| v1.3.2 | 2026-09-21 | pass — 9 of 9 checks; app reports `OpenPromptr 1.3.2 (74)` | AI agent |
+| v1.3.3 | 2026-09-22 | pass — 9 of 9 checks; app reports `OpenPromptr 1.3.3 (81)` | AI agent |
## Release security gate log
diff --git a/Tools/openpromptr-streamdeck/test/smoke.js b/Tools/openpromptr-streamdeck/test/smoke.js
index 3186ac0..4912840 100644
--- a/Tools/openpromptr-streamdeck/test/smoke.js
+++ b/Tools/openpromptr-streamdeck/test/smoke.js
@@ -110,7 +110,15 @@ check("a key that appears is painted from the app's state, with a custom label",
const rotation = "com.trsdn.openpromptr.rotation";
tell({ event: "willAppear", context: "out", action: output, payload: { settings: { title: "Prompter" } } });
tell({ event: "willAppear", context: "rot", action: rotation, payload: { settings: {} } });
- await until(() => last("setTitle", "out") && last("setTitle", "rot"), "first paint");
+ // Not just "a setTitle arrived": the very first paint, before the API has
+ // been polled, is the "—" placeholder — wait for the one that reflects
+ // the state this test set up, or the assertions below race it.
+ await until(
+ () =>
+ last("setTitle", "out")?.payload.title === "Prompter" &&
+ last("setTitle", "rot")?.payload.title === "0°",
+ "first paint"
+ );
assert.equal(last("setTitle", "out").payload.title, "Prompter");
assert.equal(last("setState", "out").payload.state, 0);
assert.equal(last("setTitle", "rot").payload.title, "0°");
diff --git a/docs/index.html b/docs/index.html
index 9cf2c4e..8113eb0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -303,13 +303,13 @@ OpenPromptr
Maintained
- v1.3.2
+ v1.3.3
macOS 13+
MIT licence