UI: pas d'animation de repli au refresh + reorg reglages

- serveur emet {caught_up} quand le replay est draine ; le client cree alors les
  bulles raisonnement/outil DEJA repliees (collapseInstant, sans animation) tant
  qu'on rejoue le journal -> au refresh elles apparaissent fermees direct
- 'Mise a jour' passe au-dessus de 'Actions'
- le toggle compactage rejoint la section Parametres (sous le mode agent)
This commit is contained in:
nathaninline committed 2026-07-21 20:28:10 +02:00
1 parent 54e14c7935
commit e28bc45557
2 files changed
+38 -10

No files matched your search

+13
View File
@@ -261,6 +261,7 @@ func (c *Conversation) Subscribe(ctx context.Context, from int, emit func(map[st
c.mu.Lock()
last := from
epoch := c.epoch
announced := false // a-t-on signalé la fin du replay (caught_up) ?
for {
if ctx.Err() != nil {
c.mu.Unlock()
@@ -304,6 +305,18 @@ func (c *Conversation) Subscribe(ctx context.Context, from int, emit func(map[st
if sent {
continue // il peut y avoir eu de nouveaux événements pendant l'envoi
}
// Replay drainé : on le signale UNE fois au client (il replie alors
// instantanément les vieilles bulles, sans animation), avant de suivre le
// direct. Événement synthétique, non journalisé.
if !announced {
announced = true
c.mu.Unlock()
if !emit(map[string]any{"caught_up": true}) {
return
}
c.mu.Lock()
continue
}
c.cond.Wait() // rien de neuf : dort jusqu'au prochain Broadcast (ou ctx annulé)
}
}