Skip to content

Add shared validation and versioned save recovery - #257

Merged
nolanvenhola merged 1 commit into
mainfrom
feat/zeliard2-validation-saves
Aug 20, 2026
Merged

Add shared validation and versioned save recovery#257
nolanvenhola merged 1 commit into
mainfrom
feat/zeliard2-validation-saves

Conversation

@nolanvenhola

Copy link
Copy Markdown
Owner

What changed

  • adds structured content diagnostics with stable codes, severity, owning content ID, resource path, property path, and message
  • makes Zeliard Creator and the headless CI command use the same validation service, deterministic ordering, and formatter
  • versions authored content definitions and introduces a separately versioned runtime/save-state model
  • adds canonical JSON save envelopes with SHA-256 payload integrity
  • adds deterministic in-memory v1-to-v2 migration with committed input and expected-output fixtures
  • implements verified temporary writes, valid-primary backup rotation, corrupt-primary quarantine, and backup recovery
  • documents save integrity, migration, atomic-write, and recovery guarantees

Acceptance evidence

  • editor/CI diagnostic text is generated by the same service and remains identical regardless of content discovery order
  • diagnostics link failures to owning resource, stable ID, and property
  • the v1 fixture migrates repeatedly to the exact expected v2 semantic state and encoding
  • tampered current saves fail checksum validation
  • replacement saves retain the previous valid state as a backup
  • corrupt primaries recover from backup without rewriting either source
  • saving beside a corrupt primary quarantines it without replacing a recoverable backup
  • corrupt saves with no backup fail without modifying the source file

Validation

  • architecture and typing rules: PASS (34 scripts)
  • production content graph: PASS (12 resources)
  • validation/save scenarios: PASS (14 tests)
  • Creator EditorPlugin startup: PASS
  • main scene smoke: PASS
  • Windows release export and executable smoke: PASS
  • Web release export: PASS

Closes #241

@nolanvenhola
nolanvenhola marked this pull request as ready for review August 20, 2026 02:25
@nolanvenhola
nolanvenhola merged commit 0efc55d into main Aug 20, 2026
1 check passed
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.

[Zeliard 2] Implement shared content validation, save versioning, and migrations

1 participant