summaryrefslogtreecommitdiff
path: root/README.md
Commit message (Collapse)AuthorAgeFilesLines
* feat(ship): HNX-01 crewed starship design branch (7-step ship.py, --design ↵Somhairle H. Marisol13 days1-3/+5
| | | | ship, 409 replays completed run history)
* docs(readme): probe design branch, --design CLI flag, boot replay deployment ↵Somhairle H. Marisol14 days1-6/+29
| | | | notes
* Harden artifact serving: root-chain link validation, deterministic stream ↵Somhairle H. Marisol14 days1-4/+11
| | | | disposal
* Secure artifact serving: manifest/checkpoint membership, hash validation, ↵Somhairle H. Marisol14 days1-1/+9
| | | | link rejection
* Real historical replay: timeline pins load run's own checkpoint GLBsSomhairle H. Marisol14 days1-10/+18
| | | | | | | | | | | | | | | - 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/<n>-*.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
* feat(viewer): add user retry for failed step loads and regressions for ↵Somhairle H. Marisol14 days1-4/+10
| | | | same-run ordering and replay invalidation
* fix(viewer): guard step loads by generation and run identity, add stale-load ↵Somhairle H. Marisol14 days1-2/+8
| | | | regression
* docs(readme): require --noCache in the frontend fable command everywhereSomhairle H. Marisol14 days1-1/+7
|
* feat(viewer): fit camera to loaded model and add checked-in browser ↵Somhairle H. Marisol14 days1-4/+59
| | | | | | | | | | | | | | | acceptance driver - 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)
* docs(readme): record browser E2E verification honestlySomhairle H. Marisol14 days1-5/+26
| | | | | | | | 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.
* feat(pipeline): add runnable artifact pipeline incrementSomhairle H. Marisol2026-09-211-0/+117
[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.