Keep the Line a Prop or Character was made from #205

Closed
opened 2026-10-12 04:56:45 +00:00 by crowmaki · 0 comments
Owner

Parent

#157 (follow-up to #192)

Problem

When a Prop or a non-speaking Character is made from a selection in the script, create_prop_from_selection and create_character_from_selection only check that the source Line exists. Nothing links the new Entity to that Line ("source_line is checked to exist and nothing else is kept", crates/studio-core/src/entity_commands.rs).

User story 30 of #157 asks for the opposite: "I want to create a Prop or non-speaking Character from a Line's text, so that it is linked to where the script mentions it." #192's acceptance criterion "A Prop created from a Line's text is linked to that Line" was met the same way the app does it. The MCP create_prop / create_character tools take fromLineId, refuse an unknown Line and echo sourceLineId in the reply, but the link is not stored.

What to build

  • Store the source Line on a Prop or Character made from a selection. The create stays undoable.
  • Show it in the reads: the DTOs, list_entities and read_character.
  • Decide what happens to the link when the Line goes away on a script re-import, and when Entities are merged.

Acceptance criteria

  • A Prop or Character made from a Line's text reads back with that Line, in the app and through MCP
  • Undo of the create removes it together with its link
  • Re-import and merge keep or drop the link as decided
## Parent #157 (follow-up to #192) ## Problem When a Prop or a non-speaking Character is made from a selection in the script, `create_prop_from_selection` and `create_character_from_selection` only check that the source Line exists. Nothing links the new Entity to that Line ("`source_line` is checked to exist and nothing else is kept", `crates/studio-core/src/entity_commands.rs`). User story 30 of #157 asks for the opposite: "I want to create a Prop or non-speaking Character from a Line's text, so that it is linked to where the script mentions it." #192's acceptance criterion "A Prop created from a Line's text is linked to that Line" was met the same way the app does it. The MCP `create_prop` / `create_character` tools take `fromLineId`, refuse an unknown Line and echo `sourceLineId` in the reply, but the link is not stored. ## What to build - Store the source Line on a Prop or Character made from a selection. The create stays undoable. - Show it in the reads: the DTOs, `list_entities` and `read_character`. - Decide what happens to the link when the Line goes away on a script re-import, and when Entities are merged. ## Acceptance criteria - [ ] A Prop or Character made from a Line's text reads back with that Line, in the app and through MCP - [ ] Undo of the create removes it together with its link - [ ] Re-import and merge keep or drop the link as decided
crowmaki referenced this issue from a commit 2026-10-14 08:32:21 +00:00
Sign in to join this conversation.
No description provided.