Capture completed conversation exchanges

This commit is contained in:
2026-11-14 01:18:55 +00:00
parent 26530808e0
commit 04569e44df
7 changed files with 126 additions and 4 deletions

View File

@@ -30,6 +30,8 @@ type PreparedExecution struct {
type preparedExecutionPayload struct {
prepared *domain.PreparedRun
capture bool
parent *domain.Exchange
validation validate.PreparedValidation
directKey string
transientRetries uint64
@@ -55,6 +57,8 @@ func (r *Runner) PrepareExecution(ctx context.Context, req domain.RunRequest) (*
details: operation.run,
payload: &preparedExecutionPayload{
prepared: operation.run,
capture: operation.capture,
parent: operation.parent,
validation: operation.validation,
directKey: state.effectiveModel.APIKey,
transientRetries: state.transientRetries,
@@ -139,7 +143,7 @@ func (r *Runner) RunPrepared(ctx context.Context, prepared *PreparedExecution) (
}
defer release()
return r.executePreparedRun(ctx, payload.prepared, payload.directKey, payload.transientRetries, runID, start, func(
return r.executePreparedRun(ctx, payload.prepared, payload.capture, payload.parent, payload.directKey, payload.transientRetries, runID, start, func(
ctx context.Context,
artifact *domain.Artifact,
attemptsUsed int,
@@ -174,6 +178,8 @@ func (p *preparedExecutionPayload) clear() {
return
}
p.prepared = nil
p.capture = false
p.parent = nil
p.validation = nil
p.directKey = ""
p.transientRetries = 0