Simplify character dossier fields, add ShowPronouns setting
CI / build-and-push (push) Successful in 51s
CI / deploy (push) Successful in 9s

Collapse Want/Need into Motivation and Internal/External Conflict into
Conflict, drop Arc summary field, and move tags below open questions on
the character page. Gate Pronouns display behind new UiSettings:ShowPronouns
config (default off).
This commit is contained in:
James Wampler
2026-08-19 15:33:14 -07:00
parent bbd5e66777
commit 45afc980d3
18 changed files with 1425 additions and 147 deletions
@@ -48,23 +48,23 @@ public class CharacterServiceTests : ServiceTestFixture
public async Task Updating_leaves_omitted_fields_alone_and_clears_on_empty_string()
{
var character = await Characters.CreateAsync(_novelId, new CreateCharacterRequest(
"Ines", Want: "To find her sister.", Need: "To let go of the guilt."));
"Ines", Motivation: "To find her sister.", Conflict: "Torn between vengeance and letting go."));
var renamed = (await Characters.UpdateAsync(character.Id, new UpdateCharacterRequest(Name: "Ines Vell")))!;
Assert.Multiple(() =>
{
Assert.That(renamed.Name, Is.EqualTo("Ines Vell"));
Assert.That(renamed.Want, Is.EqualTo("To find her sister."));
Assert.That(renamed.Need, Is.EqualTo("To let go of the guilt."));
Assert.That(renamed.Motivation, Is.EqualTo("To find her sister."));
Assert.That(renamed.Conflict, Is.EqualTo("Torn between vengeance and letting go."));
});
var cleared = (await Characters.UpdateAsync(character.Id, new UpdateCharacterRequest(Need: "")))!;
var cleared = (await Characters.UpdateAsync(character.Id, new UpdateCharacterRequest(Conflict: "")))!;
Assert.Multiple(() =>
{
Assert.That(cleared.Need, Is.Null);
Assert.That(cleared.Want, Is.EqualTo("To find her sister."));
Assert.That(cleared.Conflict, Is.Null);
Assert.That(cleared.Motivation, Is.EqualTo("To find her sister."));
});
}