@cplieger/web-terminal-ui 5.4.3 → 5.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cplieger/web-terminal-ui",
3
- "version": "5.4.3",
3
+ "version": "5.4.4",
4
4
  "type": "module",
5
5
  "description": "Reference touch-first browser UI for @cplieger/web-terminal-engine: a composable kernel + feature modules (tabs, activity monitor, mobile toolbar, context menu, IME, predictive echo, viewport handling) and CSS. One createTerminal() call.",
6
6
  "license": "MPL-2.0",
@@ -233,11 +233,17 @@ async function createSessionHonouringRetry(
233
233
  // First refusal always speaks; after that only every
234
234
  // CREATE_RETRY_REANNOUNCE_MS, so a multi-minute wait is neither silent nor
235
235
  // a toast storm.
236
+ //
237
+ // The suffix says the page is WAITING, not recovering from a failure. It
238
+ // used to say "retrying", which read as an error loop when the server had
239
+ // only said "not yet" -- and the first announcement fires before any retry
240
+ // has happened at all, so a user two seconds into a boot was told
241
+ // "retrying" about a request that had been made exactly once.
236
242
  if (lastAnnouncedAt === 0 || elapsed - lastAnnouncedAt >= CREATE_RETRY_REANNOUNCE_MS) {
237
243
  lastAnnouncedAt = elapsed;
238
- const waiting = err.serverMessage ?? "Server is not ready yet";
239
- ctx.toast(`${waiting}; retrying`, 8000);
240
- ctx.announce(`${waiting}; retrying`);
244
+ const reason = err.serverMessage ?? "Server is not ready yet";
245
+ ctx.toast(`${reason}; waiting…`, 8000);
246
+ ctx.announce(`${reason}; waiting…`);
241
247
  }
242
248
  // Separate from the throttled pair above, and unthrottled: this writes the
243
249
  // reason onto the loading OVERLAY, which is the only surface a user can
@@ -246,7 +252,7 @@ async function createSessionHonouringRetry(
246
252
  // stacking notifications, so there is no storm to throttle, and repeating
247
253
  // the same string is idempotent. This is what turns the black screen of a
248
254
  // twenty-minute tools install into a screen that says why it is waiting.
249
- ctx.loadingReason(`${err.serverMessage ?? "Server is not ready yet"} — retrying…`);
255
+ ctx.loadingReason(`${err.serverMessage ?? "Server is not ready yet"}; waiting…`);
250
256
  await new Promise((resolve) => {
251
257
  window.setTimeout(resolve, err.retryAfterMs ?? CREATE_RETRY_FALLBACK_MS);
252
258
  });