@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 +1 -1
- package/src/features/tabs/index.ts +10 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cplieger/web-terminal-ui",
|
|
3
|
-
"version": "5.4.
|
|
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
|
|
239
|
-
ctx.toast(`${
|
|
240
|
-
ctx.announce(`${
|
|
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"}
|
|
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
|
});
|