summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-21 06:05:15 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-21 06:05:15 +0800
commit13479cd194cd992c67805093e59f8b1dd1b5f3a2 (patch)
tree2918d1d408a65e694c49c081ce288566b8bcf5d5 /README.md
parent822c092790bad4b1c0d780c1fafee063d70c91f6 (diff)
downloadsomhairles-dream-fsharp-13479cd194cd992c67805093e59f8b1dd1b5f3a2.tar.gz
feat(viewer): add user retry for failed step loads and regressions for same-run ordering and replay invalidation
Diffstat (limited to 'README.md')
-rw-r--r--README.md14
1 files changed, 10 insertions, 4 deletions
diff --git a/README.md b/README.md
index 09f6d2a..470dc8b 100644
--- a/README.md
+++ b/README.md
@@ -188,16 +188,22 @@ dotnet run --project src/SomhairlesDream.Cli -- run \
reference run; a failure run (pre-existing run directory) shows status
`失败` with the error surfaced in `run-message`; zero console errors on
all pages.
-- Browser acceptance driver (see above), 53/53 checks green on desktop and
+- Browser acceptance driver (see above), 61/61 checks green on desktop and
narrow viewports: framing asserted numerically from the projected scene
bounding box (not by trusting whole-canvas hashes alone), frozen
screenshots byte-deterministic, GLB hash equality, failure surfacing,
zero console errors. A stale-load regression intercepts step GLB
- responses and fulfills them late, reordered, or with errors across six
+ responses and fulfills them late, reordered, or with errors across nine
runs, asserting via actual scene geometry (`THREE.Object3D` types/colors)
and the visible note that superseded runs' responses never repaint the
- viewport, same-path reruns still reload, run switches to empty state
- fall back to the replay frame, and failed current loads retry. The
+ viewport, same-path reruns still reload, and run switches to empty state
+ fall back to the replay frame. It also proves: a failed current
+ latest-step load (after run completion) shows a visible retry affordance
+ on the note and a user click re-requests the same owner/path without
+ SSE reconnect; within one run an older step resolving after the newer
+ step is ignored; and a live step response still pending after entering
+ replay never repaints the selected replay frame view. Held responses
+ are drained and the route handler removed before the page closes. The
frontend refits the camera to the loaded model
(`THREE.Box3`-based framing) whenever the canvas resizes, and a resize
never reverts the viewport to replay placeholder geometry.