<feed xmlns='http://www.w3.org/2005/Atom'>
<title>somhairles-dream-fsharp.git/public/vendor/addons/utils/BufferGeometryUtils.js, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/somhairles-dream-fsharp.git/atom?h=main</id>
<link rel='self' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/'/>
<updated>2026-09-20T17:18:53+00:00</updated>
<entry>
<title>feat(viewer): stream live pipeline GLBs into the browser viewport</title>
<updated>2026-09-20T17:18:53+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T17:18:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=0397c375acea763d3110163b045d259155ba2341'/>
<id>urn:sha1:0397c375acea763d3110163b045d259155ba2341</id>
<content type='text'>
Protocol: RunSnapshot gains CompletedSteps (accumulated from checkpoint
artifact paths, reset on start) so the frontend can tell when real
pipeline geometry exists. New coordinator method StepArtifact plus
GET /api/artifacts/steps serves steps/*.glb while a run is active (any
lifecycle status), traversal-guarded and .glb-only, so stages appear
without waiting for run completion.

Frontend: GLTFLoader loads the latest completed step into the viewport
group as soon as its checkpoint lands over SSE; replay placeholder
frames render only while no step artifacts exist. ?freeze=1 query param
stops rotation for deterministic screenshot verification. Three.js r160
and GLTFLoader (with BufferGeometryUtils) are vendored under public/
vendor with an import map and a window.THREE shim, replacing the CDN
UMD script; the ~1.4MB vendored three.js files are third-party
dependencies (MIT), not project assets.

Tests: store accumulation of completed artifact paths; steps endpoint
serves GLB during an active run, rejects traversal, 404s missing files.

Verified: dotnet build Debug+Release clean, 42/42 tests pass, Fable
compile clean, release server smoke serves index/vendor/steps endpoint.
</content>
</entry>
</feed>
