<feed xmlns='http://www.w3.org/2005/Atom'>
<title>somhairles-dream-fsharp.git/README.md, 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-21T07:16:23+00:00</updated>
<entry>
<title>feat(ship): HNX-01 crewed starship design branch (7-step ship.py, --design ship, 409 replays completed run history)</title>
<updated>2026-09-21T07:16:23+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T07:16:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=d2a4cb4e645979f20c22a5c46c1c767db460f54a'/>
<id>urn:sha1:d2a4cb4e645979f20c22a5c46c1c767db460f54a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(readme): probe design branch, --design CLI flag, boot replay deployment notes</title>
<updated>2026-09-21T02:15:07+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T02:15:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=b8e49e1b8b57393f47bcc9a29664a7f509584ba2'/>
<id>urn:sha1:b8e49e1b8b57393f47bcc9a29664a7f509584ba2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Harden artifact serving: root-chain link validation, deterministic stream disposal</title>
<updated>2026-09-20T23:54:39+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T23:54:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=bba99bea934fe397b6aed59d3f33a5315799fa28'/>
<id>urn:sha1:bba99bea934fe397b6aed59d3f33a5315799fa28</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Secure artifact serving: manifest/checkpoint membership, hash validation, link rejection</title>
<updated>2026-09-20T23:37:51+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T23:37:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=56800fbbd4488db20abd4f44f0d39e48599be0ab'/>
<id>urn:sha1:56800fbbd4488db20abd4f44f0d39e48599be0ab</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>fix(viewer): guard step loads by generation and run identity, add stale-load regression</title>
<updated>2026-09-20T18:59:53+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T18:59:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=822c092790bad4b1c0d780c1fafee063d70c91f6'/>
<id>urn:sha1:822c092790bad4b1c0d780c1fafee063d70c91f6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(readme): require --noCache in the frontend fable command everywhere</title>
<updated>2026-09-20T18:26:27+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T18:26:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=183c4869e6baf03ad12d10ab8deeaec656a7d348'/>
<id>urn:sha1:183c4869e6baf03ad12d10ab8deeaec656a7d348</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(viewer): fit camera to loaded model and add checked-in browser acceptance driver</title>
<updated>2026-09-20T18:07:13+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T18:03:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=dd75aaf6e82799ce88d8e66b01a3d53ba05301c9'/>
<id>urn:sha1:dd75aaf6e82799ce88d8e66b01a3d53ba05301c9</id>
<content type='text'>
- add three.js Box3/Camera bindings and bbox-driven camera framing
  (fov-fit with margin, recenters the model so group rotation orbits
  in place); refit on canvas resize instead of reverting to replay
  placeholder geometry
- expose window.SOMHAIRLES_VIEWER debug handle for numeric verification
- add tools/acceptance/e2e_acceptance.py: self-provisioning playwright
  driver (isolated port/artifact root, unique run ids) asserting framing,
  frozen-screenshot determinism, GLB hash equality, failure surfacing
- gitignore scratch/ and tools/acceptance/deps/; document the
  clean-checkout verification sequence (fable before build)
</content>
</entry>
<entry>
<title>docs(readme): record browser E2E verification honestly</title>
<updated>2026-09-20T17:25:18+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T17:25:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/somhairles-dream-fsharp.git/commit/?id=7e7166e9a7dfe6d619dbb2d3baa54ee97dfce1b9'/>
<id>urn:sha1:7e7166e9a7dfe6d619dbb2d3baa54ee97dfce1b9</id>
<content type='text'>
The viewer now has end-to-end evidence: SSE-driven LIVE ingestion of
pipeline GLBs into the Three.js viewport (stage-1 mid-run, stage-3 final,
frozen-canvas hash separation, byte-identical served vs CLI artifact),
failure indication, and zero console errors. Documents the new
/api/artifacts/steps route and the vendored three.js dependency.
</content>
</entry>
</feed>
