What's new
Hardening release: the pipeline is now safe to run from multiple agents at once (e.g. Claude Code and Codex side by side).
- Run-dir single-writer lock (
runio.py) — extract/compose/export/unpack take a.sprite-gen.lockper run dir. A second writer on the same character folder fails loudly with the holder's pid instead of silently interleaving output; a dead holder's lock is reclaimed automatically. Different run dirs were always independent (auto port, no shared state) — now the same-run-dir case is enforced too, not just documented. - Atomic outputs — frames, atlas, manifests, and reports write via temp file +
os.replace, so a concurrent reader never sees a half-written file. - Curator flip fix — the per-frame flip (↔) button threw a
ReferenceErrorand never saved; it now renders and persists correctly. - Path-traversal guard — all curator-server routes now reject paths that escape their base directory.
- Auto-launch curation — SKILL.md workflow step 5: after the atlas bakes, agents launch the curation webview in the background and hand you the URL by default.
- Japanese, Simplified Chinese, Spanish & French READMEs (日本語 · 简体中文 · Español · Français), and the skill now carries
version: 1.6.0in its frontmatter.
Verified end-to-end with two Codex agents generating sprites concurrently, each with its own curation webview — zero lock/port collisions.
새 기능
다중 에이전트 동시 실행을 안전하게 만드는 하드닝 릴리즈 (예: 클로드 코드 + 코덱스 병행).
- run-dir 단일 쓰기 락 (
runio.py) — extract/compose/export/unpack 이 run dir 마다.sprite-gen.lock을 잡습니다. 같은 캐릭터 폴더에 두 번째 writer 가 들어오면 holder pid 와 함께 시끄럽게 실패하고, 죽은 프로세스의 락은 자동 회수됩니다. - 원자적 산출물 쓰기 — frames/atlas/manifest/report 가 temp+
os.replace로 쓰여 반쯤 쓰인 파일이 보이지 않습니다. - 큐레이터 플립 픽스 — 프레임 좌우반전(↔) 버튼이
ReferenceError로 죽던 문제 수정. - 경로 탈출 가드 — 큐레이터 서버 전 라우트가 베이스 디렉토리 밖 경로를 거부합니다.
- 큐레이션뷰 자동 실행 — SKILL.md step 5: atlas 굽기가 끝나면 에이전트가 큐레이션뷰를 백그라운드로 띄우고 URL 을 보고하는 게 기본.
- 일본어·간체중문·스페인어·프랑스어 README 추가, SKILL.md frontmatter 에
version: 1.6.0명시.
코덱스 에이전트 2개가 동시에 스프라이트를 생성하고 각자 큐레이션뷰를 띄우는 E2E 로 검증 — 락/포트 충돌 0건.