Entity editors (#30) #76

Merged
crowmaki merged 1 commit from issue-30-entity-editors into main 2026-10-07 09:58:03 +00:00
Owner

Closes #30. Part of #24.

Stacked PR. Review and merge in order: #26 → #27 → #28 → #29 → #30 → #31 → #32. Each PR targets the branch of the one before it.

What

  • Migration V5: reference_set(id, kind), look, wardrobe_item and prop, Character identity fields and voice_set_id, and Location description and ambience. Existing Characters are backfilled with a voice set and a default Look.
  • Characters, Locations and Props can be created by hand or from a script text selection. Parsed and manual Entities are equal.
  • Looks override identity field by field over the Character, and the read model returns effective values. Each Character has one default Look, which cannot be deleted.
  • Each owner gets exactly one Reference set: turnaround per Look, mannequin per Wardrobe item, prop per Prop, voice per Character.
  • ADR-0004 deletion: hard delete for now, behind one is_consumed check. Deleting a Character with Lines or a Location with Scenes is refused. Every create, edit and delete is undoable, and undo keeps the same ids.
  • Not included: per-Location-per-Lighting reference sets (location_lighting). They were not in this ticket's criteria.

Tests

tests/entities.rs and a migration backfill test.

Checks

  • cargo test --workspace --all-features, cargo clippy --workspace --all-targets --all-features -- -D warnings and bun run check pass.
  • The Svelte UI is type-checked only. It has not been run in the app.
Closes #30. Part of #24. > **Stacked PR.** Review and merge in order: #26 → #27 → #28 → #29 → #30 → #31 → #32. Each PR targets the branch of the one before it. ## What - Migration V5: `reference_set(id, kind)`, `look`, `wardrobe_item` and `prop`, Character identity fields and `voice_set_id`, and Location `description` and `ambience`. Existing Characters are backfilled with a voice set and a default Look. - Characters, Locations and Props can be created by hand or from a script text selection. Parsed and manual Entities are equal. - Looks override identity field by field over the Character, and the read model returns effective values. Each Character has one default Look, which cannot be deleted. - Each owner gets exactly one Reference set: turnaround per Look, mannequin per Wardrobe item, prop per Prop, voice per Character. - ADR-0004 deletion: hard delete for now, behind one `is_consumed` check. Deleting a Character with Lines or a Location with Scenes is refused. Every create, edit and delete is undoable, and undo keeps the same ids. - Not included: per-Location-per-Lighting reference sets (`location_lighting`). They were not in this ticket's criteria. ## Tests `tests/entities.rs` and a migration backfill test. ## Checks - `cargo test --workspace --all-features`, `cargo clippy --workspace --all-targets --all-features -- -D warnings` and `bun run check` pass. - The Svelte UI is type-checked only. It has not been run in the app.
Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
crowmaki changed target branch from issue-29-osf-locations-lighting to main 2026-10-07 09:57:53 +00:00
crowmaki deleted branch issue-30-entity-editors 2026-10-07 09:58:03 +00:00
Sign in to join this conversation.
No description provided.