Map: job ids are vili-<ms>-<8 hex>, unique by exclusive create

Soul s3 finding docs-map-job-id-shape-stale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-25 02:49:32 +02:00
commit 8329da9cbc

View file

@ -210,7 +210,7 @@ Vili. `<models>` is `--models-root`, `/srv/vili/models` on Yggdrasil.
|---|---|---|---|
| Worker process | the daemon's one child, `kimodo-resident-worker.py` on `127.0.0.1:<ephemeral>` | spawned at daemon start (or on first job), restarted by the daemon if it exits, killed when the daemon exits; never outlives its parent | the daemon; the worker owns only generation inside it |
| Encoder child | one per request with cache misses, spawned by the worker | lives about a minute on CPU (55 s cold, 14.3 GiB peak), then exits | the worker's `CachedTextEncoder`; assembly B, CPU, bf16 |
| Motion job (`<state>/jobs/<jobId>.json`) | `vili-<epoch ms>` | written once when a job ends | the daemon |
| Motion job (`<state>/jobs/<jobId>.json`) | `vili-<13-digit ms>-<8 hex>` (rest jobs `rest-<13-digit ms>-<8 hex>`), unique by an exclusive create of the job directory | written once when a job ends | the daemon |
| Text embedding (`<state>/embeddings/text-embeddings.cc`) | `sha256(identity, text)`; the identity names assembly, device, dtype, the three repo revisions, torch, transformers, peft, accelerate, the Kimodo commit and the encoder child's own sha256 | appended on miss; a changed identity misses and leaves old rows inert | the worker's cache. Raven's file (assembly A on GPU) is not carried over |
| Clip artifact (`<state>/artifacts/<jobId>/motion*.bvh`, `motion*.fbx`, Kimodo's `meta.json`) | the job id; `clipName` names the FBX's armature, action and take | written once per job, never rewritten. The BVH is the reproducibility unit across host bodies, and the FBX is byte-identical for one BVH on one body. Read back through `GET /motion/artifacts/<jobId>/<file>` | the daemon (export, under the same write gate as generation) from Kimodo's BVH; Blender only converts. Planned by `cut-vili-fbx-export` r3 |
| Clip provenance (the job record `gamecult.vili.motion_job.v1`) | the job id | written once when a job ends; it carries the seed used (minted when absent), the worker's model, encoder and Kimodo identity, the export block (Blender version, script sha256, the determinism settings, clip names) and the sha256 of every artifact file | the daemon. Still JSON until `vili-jobs-cultcache` |