Skip to content

Export a uo-content job as a transfer artifact (SM-XPORT1) - #25

Merged
DatMoshu merged 1 commit into
mainfrom
worker/sm-xport1
Oct 7, 2026
Merged

DatMoshu merged 1 commit into
mainfrom
worker/sm-xport1

Conversation

@DatMoshu

@DatMoshu DatMoshu commented Oct 7, 2026

Copy link
Copy Markdown
Owner

SM-XPORT1, accepted by spritemotion-director at 977c9b6 on main 1386e86.

  • tools/transfer-export/run.py exports a uo-content build job as a transfer artifact (schema v1, accepted by GUO's director), read back through spritemotion.transfer.
  • Synthetic test job only; no renders committed. The director read back a local, unshared export of a real job: 50 frames, valid.
  • pytest 139 passed, 1 skipped (needs UO client data); outfit-lab OK; agents check clean.

🤖 Generated with Claude Code

tools/transfer-export/run.py reads a finished job (read only), crops each
rendered frame to its alpha bounding box, writes transfer.json and the
cropped PNGs, then reads the result back with spritemotion.transfer.read.
Fields the job does not record are left out. Docs gain "Making one".

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-07T03:58:18.024707Z 977c9b6 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@DatMoshu
DatMoshu merged commit 480b43f into main Oct 7, 2026
2 checks passed
@DatMoshu
DatMoshu deleted the worker/sm-xport1 branch October 7, 2026 03:57

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 977c9b6c15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +139 to +140
if mode == "full" and any(e["directions"] != [0, 1, 2, 3, 4] for e in actions.values()):
raise ExportError("The job's mode is full but an action is missing stored directions; rebuild it.")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Reject incomplete action sets labeled as full

When a job explicitly uses mode: "full" with a subset of actions—which tools/uo-content/pipeline.py permits—this check only verifies that each present action has directions 0–4. The exporter therefore emits coverage: "full" even when actions 0–34 are missing, allowing GUO's coverage gate to accept an artifact that leaves the wearable absent during omitted game actions. Require the complete action set, or use the validation report's full_animation_set, before declaring full coverage.

Useful? React with 👍 / 👎.

Comment on lines +150 to +151
for source, digest in (spec.get("source_fingerprints") or {}).items():
hashes[f"source/{Path(source.replace(chr(92), '/')).name}"] = digest

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve hashes for same-named source files

When a supported asset-pack job contains source files from different directories with the same basename, both fingerprints map to the same source/<basename> key and the later digest silently overwrites the earlier one. The resulting artifact remains schema-valid but no longer records all inputs needed for reproducibility; generate collision-safe labels rather than keying solely by basename.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant