feat(context): render retry repair mandate as final user turn (#293)
buildRetryFeedbackEntry was L1/SYSTEM, so PromptRenderer folded it into the leading system block — far from the assistant/tool transcript and weaker than the original stage task. Flip it to USER role and give the renderer an explicit trailing repair-mandate slot (a sourceType set, extensible for recovery later): repair mandates are lifted out of the inline flow and emitted once as the final message, after the tool evidence and the steering anchor. retryFeedback is already in REQUIRED_SOURCE_TYPES so it stays unprunable. Golden renderer test proves the final message is the repair USER mandate and leading system no longer carries it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -71,7 +71,9 @@ fun buildRetryFeedbackEntry(events: List<StoredEvent>, stageId: StageId): Contex
|
||||
sourceType = "retryFeedback",
|
||||
sourceId = stageId.value,
|
||||
tokenEstimate = content.length / 4,
|
||||
role = EntryRole.SYSTEM,
|
||||
// #293: USER (not SYSTEM) so PromptRenderer routes it to the trailing repair-mandate slot —
|
||||
// the final message after the tool transcript — rather than folding it into leading system.
|
||||
role = EntryRole.USER,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user