summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-21 10:15:07 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-21 10:15:07 +0800
commitb8e49e1b8b57393f47bcc9a29664a7f509584ba2 (patch)
treef7b6181f675212ae60981b88c00e6e246583021a /README.md
parent958e24b0fd08e4bc92656964e832606dbf7d3fa3 (diff)
downloadsomhairles-dream-fsharp-b8e49e1b8b57393f47bcc9a29664a7f509584ba2.tar.gz
docs(readme): probe design branch, --design CLI flag, boot replay deployment notes
Diffstat (limited to 'README.md')
-rw-r--r--README.md35
1 files changed, 29 insertions, 6 deletions
diff --git a/README.md b/README.md
index 4c23116..bc96f29 100644
--- a/README.md
+++ b/README.md
@@ -113,16 +113,37 @@ Environment variables (all optional):
- `SOMHAIRLES_ARTIFACT_ROOT` — artifact output root (default `.artifacts`)
- `SOMHAIRLES_STAGE_ROOT` — stage directory containing `blender/fixture.py`
- (default `stage`)
-- `SOMHAIRLES_BPYTHON` — Python interpreter used to run the fixture
- (default `python3`)
+ and `blender/probe.py` (default `stage`)
+- `SOMHAIRLES_BPYTHON` — Python interpreter used to run those blender
+ scripts; must be able to `import bpy` (default `python3`)
+
+### Probe design branch
+
+The real-probe dataset lives alongside the heritage fixture: steps
+`probe-01-bus` … `probe-07-livery` are defined in
+`src/SomhairlesDream.Modeling/Definitions.fs` (`Design.probeSteps`) and
+rendered by `stage/blender/probe.py` (7 cumulative bpy exports, clay until
+`probe-07-livery` applies the livery pass). Steps are selected by project id
+prefix: any `probe-…` project id resolves to the probe design both in the
+server coordinator and in the CLI (`run --design probe` accepts/uses the
+probe id defaults), while all other project ids keep the heritage design.
+
+The public landing page boots into a pre-published probe run
+(`probe-001 / run-probe-real-2`): after startup the frontend fetches
+`GET /api/artifacts/manifest` for that run and renders its latest
+checkpoint with 构建-重演 labels. Serving works for completed runs that are
+no longer in the in-memory run registry: `GET /api/artifacts/manifest` and
+`GET /api/artifacts/steps` fall back to the on-disk verified manifest
+(integrity checks unchanged; unknown/offline environments stay on the honest
+placeholder idle state). To publish a fresh probe run, run the pipeline
+against the artifact root the server reads and a new run id.
Routes used by the frontend: `POST /api/runs/start`,
`GET /api/runs/events?projectId=...&runId=...` (run-scoped SSE),
`GET /api/artifacts/manifest`, `GET /api/artifacts/file`, and
`GET /api/artifacts/steps?projectId=...&runId=...&path=steps/<step>.glb`
-(serve a step GLB while a run is still active; `.glb` files under `steps/`
-only, traversal-guarded). Artifact serving is integrity-checked: `file`
+(serve a step GLB for an active or completed run; `.glb` files under
+`steps/` only, traversal-guarded). Artifact serving is integrity-checked: `file`
serves only paths published in the verified run manifest (logs, the
manifest itself, and stray files are never exposed), `steps` serves only
checkpointed GLBs (manifest members for completed runs), and every served
@@ -148,7 +169,9 @@ dotnet run --project src/SomhairlesDream.Cli -- verify <manifest.json>
```
`run` options: `--project-id`, `--run-id`, `--base-id`, `--target-id`,
-`--output-root`, `--stage-root`, `--python`, `--render`. `SOMHAIRLES_BPYTHON`
+`--output-root`, `--stage-root`, `--python`, `--render`,
+`--design heritage|probe` (probe selects the real-probe design; ids still at
+the heritage defaults are swapped to the probe defaults). `SOMHAIRLES_BPYTHON`
sets the default interpreter. Exit codes: `0` success, `2` usage, `3` bridge
failure, `4` pipeline/verify failure. On success it prints the manifest path.