<feed xmlns='http://www.w3.org/2005/Atom'>
<title>somhairles-dream-fsharp.git/public/styles.css, 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-21T13:04:01+00:00</updated>
<entry>
<title>feat(ui): remove masthead connection readout and its dead state plumbing</title>
<updated>2026-09-21T13:04:01+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T13:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=7c3a0728570f84f5c7d5f396c5a5d5c11f5fb661'/>
<id>urn:sha1:7c3a0728570f84f5c7d5f396c5a5d5c11f5fb661</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(ui): loading overlay with instant mesh swap, no-store GLB, full-width viewport, ground grid, drop masthead title</title>
<updated>2026-09-21T12:31:37+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T12:31:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=374afdcd7172402a0be0371964fd6d4040610d5a'/>
<id>urn:sha1:374afdcd7172402a0be0371964fd6d4040610d5a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(ui): replace id form with clickable model library cards</title>
<updated>2026-09-21T08:06:48+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T08:06:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=8a1e79e46605291234314bd1a02dcab7a8c9bdc1'/>
<id>urn:sha1:8a1e79e46605291234314bd1a02dcab7a8c9bdc1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Real historical replay: timeline pins load run's own checkpoint GLBs</title>
<updated>2026-09-20T23:02:13+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T23:02:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=e8eebe49407de8947bf509d5cf04d9080ee4edf7'/>
<id>urn:sha1:e8eebe49407de8947bf509d5cf04d9080ee4edf7</id>
<content type='text'>
- renderTimeline rebuilds #timeline-track after each snapshot and wires
  click-to-pin on completed checkpoints (kept placeholder nodes otherwise)
- selection loads the pinned run's own steps/&lt;n&gt;-*.glb (generation/
  ownership guards apply), pins survive live snapshots, 跟随最新 restores
  live scope, replay pauses/scrubs through 已完成 versions
- placeholder fallback now clearly labeled (占位…) only before any run
- acceptance: historical_replay_regression (9 checks) pins mid-run,
  asserts no auto-follow strays, late-older-response precedence, served
  checkpoint sha256 vs CLI reference, and viewport geometry change
- fix: timeline-track id missing in index.html crashed renderTimeline
  (null firstChild), leaving static placeholder nodes non-clickable
- driver: 71/71 checks, zero console/page errors
</content>
</entry>
<entry>
<title>feat(viewer): add user retry for failed step loads and regressions for same-run ordering and replay invalidation</title>
<updated>2026-09-20T22:05:15+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T22:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=13479cd194cd992c67805093e59f8b1dd1b5f3a2'/>
<id>urn:sha1:13479cd194cd992c67805093e59f8b1dd1b5f3a2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(pipeline): add runnable artifact pipeline increment</title>
<updated>2026-09-20T16:58:15+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T16:58:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=7b29dbff7e43e87741476f47df17ad1582b16546'/>
<id>urn:sha1:7b29dbff7e43e87741476f47df17ad1582b16546</id>
<content type='text'>
[Change Nature]
- This commit adds the first runnable increment of the F# artifact
  pipeline: CLI, server, frontend bundle, stage fixture, and tests.
  It is feature work, not a bug fix.

[New Capability]
- CLI `run` executes the three-step Blender fixture through the process
  bridge and writes GLBs, step logs, events, and a manifest; `verify`
  validates a manifest without Blender.
- Server exposes run start, run-scoped SSE, artifact manifest/file
  routes, and serves the Fable frontend from its build output.
- Frontend starts runs, follows run-scoped SSE progress, and links the
  artifact manifest on completion.

[Implementation]
- Shared layer holds domain, run state, replay, and artifact contracts;
  Modeling holds the pipeline, 120s bridge timeout, and result-file
  protocol; stage/blender/fixture.py owns geometry in Python (bpy owns
  geometry, F# owns orchestration).
- Fable bundle is regenerated into public/ and copied by the server
  project; solution includes all projects with warnings-as-errors.
- README documents build, Fable, server, interpreter/env, fixture
  limitations, and current verification status.

[Impact]
- Verified: 40/40 solution tests pass; Release build 0 warnings/errors;
  real CLI run with bpy 5.0.1 produced 3 GLBs, 3 logs, and a
  verify-clean manifest; isolated-port server smoke flow succeeded.
- Not yet verified: browser end-to-end behavior and production
  fidelity. Artifacts and caches are gitignored.
</content>
</entry>
</feed>
