Progress: the reply's line is the 3.4.0 progress object, {{text}} · {{elapsed}}
ci / check (push) Failing after 3s
ci / start (push) Failing after 2s

ui/js/progress.js draws harness spec 3.4.0's `progress` (progress.md) with the
spec's texts as the page's sentences: the thirteen phases, their variants and
field words, the line with its clock in whole seconds (5s, 1m 05s, 1h 02m),
none for stopped and failed, retrying counted down. A live reply takes
`progress` from any stream frame that carries it and ticks once a second; with
no progress (an older server, or null) it draws the status text as before.

The sentences are the server's to translate: gen-i18n.py takes them from its
catalogues once they are there (SERVER_PENDING), English until then, without
failing.

tests/ui: every case of the spec's conformance/progress.json (copied, 3.4.0),
and a live stream's progress, clock, fallback and stopped line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
HomerandClaude Opus 5.5 committed 2026-11-10 09:10:20 +00:00
1 parent 3ef0bbaad3
commit 3baae016e1
7 files changed
+607 -2

No files matched your search

+7
View File
@@ -34,6 +34,13 @@ All notable changes to LLeMbas Desktop. The format follows
closing either keeps the shell. Offered where the computer allows a terminal (needs the server's
2.0.0-beta.8). The app opens the connection itself, with its sign-in: the page never holds it.
"Continue in a terminal" is now in the chat's menu only.
- **What a reply is doing, the same way everywhere.** The line under a reply being written now
says it in the words every LLeMbas client uses (harness spec 3.4.0): queued, waiting for a
model and why, loading it, reading the prompt (with how far), thinking, writing (with its
speed), running a tool and what it runs, waiting for you, waiting for subagents, compacting,
retrying (counting down), stopped or failed -- each with how long it has lasted, kept moving
every second. From a server that sends no such line (before 2.0.0-beta.8), the app shows the
server's own words as before. Translations come with the server's.
- `tests/ui/`: the page under a headless browser against a stand-in for the app's bridge, with
the server's answers as a table (`node tests/ui/run.mjs`, needs Playwright and a Chromium).