feat(data): split list-handler prompt into triage/wait/merge roles
Adds HandlerTriageAlias/HandlerWaitAlias/HandlerMergeAlias to ModelRegistry and replaces PromptKind.MergeHelperExecute with MergeHelperWait (phase 3 only) and MergeHelperMerge (phases 4-5), so the list handler can run as three cost-scoped sessions instead of two. Triage's Phase 2 now checks/sets a wide verify command via get_list_config/set_list_config once per run. Merge now merges before reruns, delegates diff review to a sonnet subagent, rejects 0-file diffs, tracks the merged-but-not-Done verify-gate outcome, and caps reruns at one per task via handoff_list_handler's new nextPhase parameter. InteractiveLaunchSpecService.cs still references the removed PromptKind.MergeHelperExecute and fails to build -- wiring the Worker/UI side onto the new roles is a follow-up task.
This commit is contained in:
@@ -57,4 +57,14 @@ public class ModelRegistryTests
|
||||
{
|
||||
Assert.Null(ModelRegistry.TryNormalizeAlias(input));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void List_handler_role_aliases_are_valid_and_split_cost_by_role()
|
||||
{
|
||||
// Triage and Merge get the wide-context, expensive role; Wait just queues and blocks,
|
||||
// so it stays on the cheaper model.
|
||||
Assert.Equal("opus", ModelRegistry.NormalizeAlias(ModelRegistry.HandlerTriageAlias));
|
||||
Assert.Equal("sonnet", ModelRegistry.NormalizeAlias(ModelRegistry.HandlerWaitAlias));
|
||||
Assert.Equal("opus", ModelRegistry.NormalizeAlias(ModelRegistry.HandlerMergeAlias));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user