More bugfixes in the glossary protection guard

This commit is contained in:
2026-04-23 10:51:47 -05:00
parent 671188aaba
commit dee6ae4067
3 changed files with 161 additions and 20 deletions

View File

@@ -1042,6 +1042,74 @@ def test_grammar_stage_can_correct_toward_protected_term(tmp_path):
assert list((tmp_path / "work").iterdir()) == []
def test_grammar_stage_allows_quote_wrapping_with_unchanged_lowercase_protected_term(tmp_path):
transcript = parse_source_transcript_json(
"""
[
{
"speaker": "Eric",
"start": 0.0,
"end": 1.0,
"text": "When you say that, Popov will say, when I was in that room with the jesters, I just knew that Godfrey and Lyra came directly from Loviator herself. They're really powerful."
}
]
"""
)
glossary = parse_glossary_yaml(
"""
glossary:
- name: "Popov"
category: npc
summary: "Popov is an allied NPC."
- name: "Jesters"
aliases:
- "Jester"
category: faction
summary: "The Jesters are a faction."
- name: "Godfrey"
category: npc
summary: "Godfrey is an NPC."
- name: "Lyra"
category: npc
summary: "Lyra is an NPC."
- name: "Loviator"
category: deity
summary: "Loviator is a deity."
"""
)
original_text = (
"When you say that, Popov will say, when I was in that room with the jesters, "
"I just knew that Godfrey and Lyra came directly from Loviator herself. They're really powerful."
)
corrected_text = (
'When you say that, Popov will say, "When I was in that room with the jesters, '
'I just knew that Godfrey and Lyra came directly from Loviator herself. '
'They\'re really powerful."'
)
grammar_correction = CorrectionCandidate(
id=1,
original_text=original_text,
corrected_text=corrected_text,
confidence=0.95,
)
fake_client = FakeLLMClient(
[
CorrectionSet(corrections=[]),
CorrectionSet(corrections=[grammar_correction]),
]
)
revised = process_transcript(
transcript,
glossary,
_config(tmp_path),
llm_client=fake_client,
)
assert revised[0].text == corrected_text
assert list((tmp_path / "work").iterdir()) == []
def test_grammar_stage_cannot_change_away_from_protected_term(tmp_path):
transcript = parse_source_transcript_json(
"""