Skip to content

feat: reset presentation state on subject replacement - #346

Merged
han4wluc merged 8 commits into
mainfrom
docs/presentation-subject-replacement-semantics
Aug 14, 2026
Merged

feat: reset presentation state on subject replacement#346
han4wluc merged 8 commits into
mainfrom
docs/presentation-subject-replacement-semantics

Conversation

@han4wluc

@han4wluc han4wluc commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • treat an explicitly authored presentation subject as a fresh instance for backgrounds, character items, and visual items
  • reset every omitted instance field, including appearance, placement, layer, backing color, resource playback overrides, and animations, even when the same subject is reauthored
  • preserve the current instance for omitted channels and subject-less continuation patches, including partial visual-text patches
  • mark history-dependent subject-less continuation patches as compatibility-only behavior planned for removal in a future version
  • document the complete-action authoring contract and migration impact in the public guide and action schema
  • ship the behavior as feature version 1.46.0 and sync the branch with main at v1.45.2

Subject contract

  • Background: resourceId
  • Character item: non-empty sprites
  • Visual item: resourceId, complete layout, or complete text containing content and textStyleId

A subject-bearing action is complete. Fields omitted from it use normal defaults. To patch the current instance, omit the subject; this patch form remains supported in v1.46.0 for compatibility but new content should not rely on it.

Compatibility

This intentionally changes older content that reauthored a subject while relying on inherited instance fields. Conforming authoring tools already emit complete subject-bearing actions, so practical risk is expected to be low. The migration notes identify the affected behavior present in recent versions.

Validation

  • bun run test: 84 files and 2,068 tests passed
  • bun run build
  • bun run lint
  • bun run check:test-markers: 158 files scanned
  • Prettier check for every changed source, test, schema, documentation, and VT spec
  • isolated background, character, and visual VT capture and report: 3/3 images passed per target, zero mismatches
  • live Chromium reproduction: continuation patch retained placement and blur; identical resource reassertion reset placement and appearance
  • full Docker VT capture: 196/198 cases captured; two unrelated audio-channel assertions failed (audio-effects-handoff and audio-effects-initial-entry)

@han4wluc han4wluc changed the title docs: define presentation subject replacement semantics feat: reset presentation state on subject replacement Aug 14, 2026
@han4wluc
han4wluc merged commit c8a421a into main Aug 14, 2026
19 checks 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.

1 participant