mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
fix(content): move lifecycle-transition notes off quick_context into markers
The structure-everything sweep found four more writers packing key:value soup into quick_context (the human ResumptionNote field), same anti-pattern as the already-fixed approve_and_start_notes: - _record_completion_notes -> completion_notes:<text> - escalate_to_ceo -> escalation_notes:<text> - ceo_approve -> ceo_approval_notes:<text> - ceo_reject -> ceo_rejection:<reason> Route them through a unified orchestration_markers['transition_notes'] dict (keyed by event) via markers.set_transition_note, so quick_context carries only the structured ResumptionNote and the panel never shows raw <event>:<text> soup. Adds the typed accessor + a roundtrip test.
This commit is contained in:
@@ -68,6 +68,17 @@ def test_approve_and_start_notes_roundtrip() -> None:
|
||||
assert m.get_approve_and_start_notes(t) == "Board approved; build it."
|
||||
|
||||
|
||||
def test_transition_note_roundtrip_keyed_by_event() -> None:
|
||||
t = _task()
|
||||
assert m.get_transition_note(t, "ceo_rejection") is None
|
||||
m.set_transition_note(t, "completion", "Reviewed and merged.")
|
||||
m.set_transition_note(t, "ceo_rejection", "Needs the migration first.")
|
||||
# Each event keeps its own note; setting one doesn't clobber another.
|
||||
assert m.get_transition_note(t, "completion") == "Reviewed and merged."
|
||||
assert m.get_transition_note(t, "ceo_rejection") == "Needs the migration first."
|
||||
assert m.get_transition_note(t, "never_set") is None
|
||||
|
||||
|
||||
def test_documenter_self_heal_head_supersede() -> None:
|
||||
t = _task()
|
||||
m.set_documenter(t, "doc-uuid")
|
||||
|
||||
Reference in New Issue
Block a user