Skip to content

feat(runtime): structuralRollout result should carry the winning artifact, not only SelectionReceipts #524

Description

@drewstone

StructuralRolloutResult (src/runtime/structural-rollout.ts:489) extends StrategyResult with selection: SelectionReceipt[], repairStop, and check counts — but not the winning candidate's artifact text.

Every consumer that needs to grade or persist the final artifact must wrap the CheckRunner to record it as a side effect. The first live self-improvement campaign had to do exactly this (the recordingRunner hack in the campaign smoke, agent-runtime-swe commit 3b93916).

Add a first-class artifact field (the selected candidate's final text) to the strategy result so the winner is part of the deliverable, not something reconstructed from runner side effects.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature ➕Tasks that are functional additions or enhancements

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions