This commit is contained in:
Ian Gulliver
2026-10-21 10:59:58 -07:00
parent 01edc09385
commit 39fe50eff2
+26 -42
View File
@@ -150,20 +150,9 @@ func (p claudeProcess) discard() {
func (p claudeProcess) drive(m *Manager, l *live) {
ctx := context.Background()
for ev := range p.s.Events() {
start := time.Now()
if wait := start.Sub(ev.Read); wait > 200*time.Millisecond {
slog.Info("agent event waited", "session", l.id, "type", ev.Type, "wait", wait)
}
err := m.handle(ctx, l, ev)
if err != nil {
slog.Error("record agent event", "session", l.id, "type", ev.Type, "err", err)
}
if isDecodeError(err) {
m.recordBadLine(l, ev.Raw, fmt.Sprintf("decode %s: %s", ev.Type, err))
}
if took := time.Since(start); took > 200*time.Millisecond {
slog.Info("agent event slow", "session", l.id, "type", ev.Type, "took", took)
}
m.handleProcessEvent(l, ev.Read, ev.Type, ev.Raw, func() error {
return m.handle(ctx, l, ev)
})
}
}
@@ -242,20 +231,9 @@ func (p codexProcess) discard() {
func (p codexProcess) drive(m *Manager, l *live) {
ctx := context.Background()
for ev := range p.s.Events() {
start := time.Now()
if wait := start.Sub(ev.Read); wait > 200*time.Millisecond {
slog.Info("agent event waited", "session", l.id, "method", ev.Method, "wait", wait)
}
err := m.handleCodex(ctx, l, p.s, ev)
if err != nil {
slog.Error("record agent event", "session", l.id, "method", ev.Method, "err", err)
}
if isDecodeError(err) {
m.recordBadLine(l, ev.Params, fmt.Sprintf("decode %s: %s", ev.Method, err))
}
if took := time.Since(start); took > 200*time.Millisecond {
slog.Info("agent event slow", "session", l.id, "method", ev.Method, "took", took)
}
m.handleProcessEvent(l, ev.Read, ev.Method, ev.Params, func() error {
return m.handleCodex(ctx, l, p.s, ev)
})
}
}
@@ -325,20 +303,26 @@ func (p antigravityProcess) drive(m *Manager, l *live) {
ctx := context.Background()
steps := &agySteps{text: map[int]*strings.Builder{}, tools: map[string]bool{}}
for ev := range p.s.Events() {
start := time.Now()
if wait := start.Sub(ev.Read); wait > 200*time.Millisecond {
slog.Info("agent event waited", "session", l.id, "event", ev.Kind, "wait", wait)
}
err := m.handleAntigravity(ctx, l, p, steps, ev)
if err != nil {
slog.Error("record agent event", "session", l.id, "event", ev.Kind, "err", err)
}
if isDecodeError(err) {
m.recordBadLine(l, ev.Raw, fmt.Sprintf("decode %s: %s", ev.Kind, err))
}
if took := time.Since(start); took > 200*time.Millisecond {
slog.Info("agent event slow", "session", l.id, "event", ev.Kind, "took", took)
}
m.handleProcessEvent(l, ev.Read, ev.Kind, ev.Raw, func() error {
return m.handleAntigravity(ctx, l, p, steps, ev)
})
}
}
func (m *Manager) handleProcessEvent(l *live, read time.Time, name string, raw []byte, handle func() error) {
start := time.Now()
if wait := start.Sub(read); wait > 200*time.Millisecond {
slog.Info("agent event waited", "session", l.id, "event", name, "wait", wait)
}
err := handle()
if err != nil {
slog.Error("record agent event", "session", l.id, "event", name, "err", err)
}
if isDecodeError(err) {
m.recordBadLine(l, raw, fmt.Sprintf("decode %s: %s", name, err))
}
if took := time.Since(start); took > 200*time.Millisecond {
slog.Info("agent event slow", "session", l.id, "event", name, "took", took)
}
}