Epic complete — all six scope items shipped across the three repos.
Backend (spikersoft-backend#480, "Closes #843, #845, #846, #847, #849"):
ArtAssetStageRunrecords the worker's…
Done — spikersoft-backend#480 (feat(artstudio): reproduce and vary a recorded run (#847), commit cb37e8c).
RestartFromStageCommand gained ReproduceStageRunId (replay a completed…
Done — spikersoft-backend#480 (feat(artstudio): text+image concept, and fix image-upload submissions (#846), commit 860284c).
ArtAssetSourceType.TextAndImageadded; `ArtAssetStagePlan…
Fixed on master. libraries/keycloak-admin/src/lib/components/user-list/user-list.component.spec.ts — settle() now takes an optional predicate and polls until the expected state is…
Resolved. Two parts:
- Escape hatch —
.gitea/workflows/model-env-images.ymlgained ano_cachedispatch input (spikersoft-artpipe, line 44), with the rationale in place at line 304:…
Done. All four deliverables are on spikersoft-artpipe master:
models/Pixal3D/artpipe.json+models/Pixal3D/run_pixal3d.py— our own runner (upstream's argparse forwards only 7 of…
Done. spikersoft-artpipe#34 moved both constants out of dispatcher.py into src/artpipe/config.py with env overrides and bounds, defaults unchanged exactly as proposed:
Resolved by the #851 fix (spikersoft-backend#483, fix(api): never compress an already-compressed response).
The root cause turned out to be exactly the mechanism this ticket measured —…
Fixed on master. spikersoft-angular#609 — every routed Art Studio admin surface now reserves the fixed menu-bar height:
sub against ChatHub's sid
Done. spikersoft-angular#604.
New libraries/ui/image-paste/ (image-paste.directive.ts + spec), applied across the upload surfaces — 13 files outside the library itself reference the…
Done. spikersoft-angular#606.
projects/spikersoft/src/app/_components/menu-bar/menu-bar.menu.ts is now the single source of truth — desktop dropdowns (MenuDropdownComponent) and the…