fix evolution review issues
This commit is contained in:
parent
8f0fabd709
commit
e0a80ec621
5 changed files with 24 additions and 24 deletions
|
|
@ -213,7 +213,7 @@ func (b *evolutionBridge) handleTurnEndAsync(meta EventMeta, payload TurnEndPayl
|
|||
b.closeMu.Unlock()
|
||||
go func() {
|
||||
defer b.wg.Done()
|
||||
if err := b.runtime.FinalizeTurn(context.Background(), input); err != nil {
|
||||
if err := b.runtime.FinalizeTurn(b.bgCtx, input); err != nil {
|
||||
logger.WarnCF("agent", "Evolution finalize turn failed", map[string]any{
|
||||
"error": err.Error(),
|
||||
"turn_id": input.TurnID,
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ func TestEvolutionBridge_DirectDeliveryFailureFallsBackToCurrentRuntimeBridge(t
|
|||
}
|
||||
}
|
||||
|
||||
func TestEvolutionBridge_CloseFlushesPendingTurnEndRecord(t *testing.T) {
|
||||
func TestEvolutionBridge_CloseCancelsPendingTurnEndRecord(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
al := newEvolutionTestLoop(t, tmpDir, config.EvolutionConfig{
|
||||
Enabled: true,
|
||||
|
|
@ -315,14 +315,17 @@ func TestEvolutionBridge_CloseFlushesPendingTurnEndRecord(t *testing.T) {
|
|||
UserMessage: "close flush task",
|
||||
FinalContent: "ok",
|
||||
})
|
||||
al.Close()
|
||||
|
||||
record := waitForEvolutionRecord(t, filepath.Join(tmpDir, "state", "evolution", "task-records.jsonl"))
|
||||
if got := record["session_key"]; got != "session-close-flush" {
|
||||
t.Fatalf("session_key = %v, want session-close-flush", got)
|
||||
}
|
||||
if got := record["summary"]; got != "close flush task" {
|
||||
t.Fatalf("summary = %v, want close flush task", got)
|
||||
done := make(chan struct{})
|
||||
go func() {
|
||||
al.Close()
|
||||
close(done)
|
||||
}()
|
||||
|
||||
select {
|
||||
case <-done:
|
||||
case <-time.After(2 * time.Second):
|
||||
t.Fatal("Close timed out")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ func TestDefaultConfig_EvolutionDefaults(t *testing.T) {
|
|||
cfg := DefaultConfig()
|
||||
|
||||
assert.False(t, cfg.Evolution.Enabled)
|
||||
assert.Equal(t, "apply", cfg.Evolution.Mode)
|
||||
assert.Equal(t, "observe", cfg.Evolution.Mode)
|
||||
assert.Equal(t, "", cfg.Evolution.StateDir)
|
||||
assert.Equal(t, 2, cfg.Evolution.MinTaskCount)
|
||||
assert.Equal(t, 0.7, cfg.Evolution.MinSuccessRatio)
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ func DefaultConfig() *Config {
|
|||
},
|
||||
Evolution: EvolutionConfig{
|
||||
Enabled: false,
|
||||
Mode: "apply",
|
||||
Mode: "observe",
|
||||
MinTaskCount: 2,
|
||||
MinSuccessRatio: 0.7,
|
||||
ColdPathTrigger: "after_turn",
|
||||
|
|
|
|||
|
|
@ -57,29 +57,26 @@ func (a *Applier) applyDraftWithRollback(
|
|||
return nil, err
|
||||
}
|
||||
|
||||
skillDir := filepath.Join(workspace, "skills", draft.TargetSkillName)
|
||||
if mkdirErr := os.MkdirAll(skillDir, 0o755); mkdirErr != nil {
|
||||
return nil, mkdirErr
|
||||
}
|
||||
|
||||
renderedBody, err := renderAppliedBody(draft, existingBody, hadOriginal)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
skillPath := filepath.Join(skillDir, "SKILL.md")
|
||||
if err := fileutil.WriteFileAtomic(skillPath, []byte(renderedBody), 0o644); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := validateAppliedSkillBody(
|
||||
renderedBody,
|
||||
draft.TargetSkillName,
|
||||
allowsExistingFrontmatterFields(draft.ChangeKind, hadOriginal),
|
||||
); err != nil {
|
||||
if rollbackErr := a.rollbackSkill(skillPath, backupPath, hadOriginal); rollbackErr != nil {
|
||||
return nil, errorsJoin(err, rollbackErr)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
skillDir := filepath.Join(workspace, "skills", draft.TargetSkillName)
|
||||
if mkdirErr := os.MkdirAll(skillDir, 0o755); mkdirErr != nil {
|
||||
return nil, mkdirErr
|
||||
}
|
||||
|
||||
skillPath := filepath.Join(skillDir, "SKILL.md")
|
||||
if err := fileutil.WriteFileAtomic(skillPath, []byte(renderedBody), 0o644); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue