Prepare requests with captured conversation history

This commit is contained in:
2026-11-14 01:16:38 +00:00
parent fcd0485340
commit 26530808e0
10 changed files with 136 additions and 3 deletions

View File

@@ -79,6 +79,8 @@ type preparationState struct {
type preparedOperation struct {
run *domain.PreparedRun
validation validate.PreparedValidation
capture bool
parent *domain.Exchange
}
func NewRunner(
@@ -399,7 +401,7 @@ func (r *Runner) completePreparation(
if err != nil {
return nil, err
}
return &preparedOperation{run: prepared, validation: validationPlan}, nil
return &preparedOperation{run: prepared, validation: validationPlan, capture: req.CaptureExchange, parent: req.ContinueFrom}, nil
}
func (r *Runner) prepareValidation(
@@ -473,11 +475,15 @@ func (r *Runner) completePreparationWithStructuredOutput(
effectivePrompt.SessionID = state.directSessionID
}
effectivePrompt.Messages = domain.ConcatRenderedMessages(renderedPrompt.Messages, req.AppendedMessages)
if req.ContinueFrom != nil {
effectivePrompt.Messages = domain.ConcatRenderedMessages(req.ContinueFrom.Messages(), effectivePrompt.Messages)
}
end := time.Now().UTC()
effectiveModel := state.effectiveModel
effectiveModel.APIKey = ""
return &domain.PreparedRun{
ParentRunID: req.ContinueFrom.RunID(),
PromptID: state.definition.ID,
PromptHash: state.promptDefinitionHash,
SelectedProfileID: state.selectedProfileID,