Auto-Spawn Worker-Count nicht synchron mit tatsächlichen Workers #341

Closed
opened 2026-03-02 13:38:41 +00:00 by jack · 1 comment
Owner

Problem

Symptom: Auto-Spawn zeigt "1/6 spawned" obwohl tatsächlich 3 Workers connected und working sind.

Sichtbar in UI:

  • 3 connected (grau)
  • 3 working (orange)
  • 1/6 spawned (grau) ← INKONSISTENT!
  • Auto-Spawn On (grün, aktiviert)

Erwartetes Verhalten

Wenn 3 Workers connected und working sind, sollte auch "3/6 spawned" (oder mehr) angezeigt werden.

Auswirkungen

  1. Falsche Auto-Spawn-Decisions: System denkt es hat nur 1 Worker, spawnt evtl. zu viele neue
  2. Misleading UI: User sieht falsche Zahlen
  3. Resource-Waste: Potentiell doppelte Worker-Spawns

Mögliche Ursachen

  1. Tracking-Fehler: Spawn-Counter wird nicht korrekt incrementiert
  2. Externe Workers: 2 Workers haben sich außerhalb des Auto-Spawn-Mechanismus connected
  3. State-Desync: Worker-Registry ist nicht synchron mit Spawn-Registry
  4. Race Conditions: Workers connecten bevor Spawn-Counter updated wurde

Technische Details

Zu prüfen:

  • Worker-Registration-Flow (wann wird Spawn-Counter erhöht?)
  • Auto-Spawn-Trigger-Logic (wann spawnt es neue Workers?)
  • Worker-Lifecycle-Events (spawn → connect → register → work)
  • State-Management (wo wird spawned-count gespeichert?)

Vermutung:
Der Spawn-Counter trackt nur Workers die durch Auto-Spawn erstellt wurden, nicht alle connected Workers. Das ist semantisch korrekt aber UX-technisch verwirrend.

Lösungsansätze

Option A: Zwei getrennte Metriken anzeigen

Workers: 3 connected | 3 working
Auto-Spawn: 1/6 spawned | On

Option B: Spawned = Connected (logisch einfacher)

Workers: 3/6 spawned | 3 working | Auto-Spawn On

Option C: Detaillierte Anzeige

Workers: 3 total (1 auto-spawned, 2 manual) | 3 working
Auto-Spawn: On (1/6 limit)

Screenshot

Auto-Spawn count mismatch

  • #340 (Stuck Tasks) - evtl. connected: Wenn Spawn-Count falsch ist, spawnt System evtl. nicht genug Workers
  • UI-State-Inkonsistenzen (#327-#334)

Labels

  • bug
  • component:worker
  • component:auto-spawn
  • ux (verwirrende Anzeige)
## Problem **Symptom:** Auto-Spawn zeigt "1/6 spawned" obwohl tatsächlich 3 Workers connected und working sind. **Sichtbar in UI:** - `3 connected` (grau) - `3 working` (orange) - `1/6 spawned` (grau) ← **INKONSISTENT!** - `Auto-Spawn On` (grün, aktiviert) ## Erwartetes Verhalten Wenn 3 Workers connected und working sind, sollte auch "3/6 spawned" (oder mehr) angezeigt werden. ## Auswirkungen 1. **Falsche Auto-Spawn-Decisions:** System denkt es hat nur 1 Worker, spawnt evtl. zu viele neue 2. **Misleading UI:** User sieht falsche Zahlen 3. **Resource-Waste:** Potentiell doppelte Worker-Spawns ## Mögliche Ursachen 1. **Tracking-Fehler:** Spawn-Counter wird nicht korrekt incrementiert 2. **Externe Workers:** 2 Workers haben sich außerhalb des Auto-Spawn-Mechanismus connected 3. **State-Desync:** Worker-Registry ist nicht synchron mit Spawn-Registry 4. **Race Conditions:** Workers connecten bevor Spawn-Counter updated wurde ## Technische Details **Zu prüfen:** - Worker-Registration-Flow (wann wird Spawn-Counter erhöht?) - Auto-Spawn-Trigger-Logic (wann spawnt es neue Workers?) - Worker-Lifecycle-Events (spawn → connect → register → work) - State-Management (wo wird spawned-count gespeichert?) **Vermutung:** Der Spawn-Counter trackt nur Workers die **durch Auto-Spawn** erstellt wurden, nicht alle connected Workers. Das ist semantisch korrekt aber UX-technisch verwirrend. ## Lösungsansätze ### Option A: Zwei getrennte Metriken anzeigen ``` Workers: 3 connected | 3 working Auto-Spawn: 1/6 spawned | On ``` ### Option B: Spawned = Connected (logisch einfacher) ``` Workers: 3/6 spawned | 3 working | Auto-Spawn On ``` ### Option C: Detaillierte Anzeige ``` Workers: 3 total (1 auto-spawned, 2 manual) | 3 working Auto-Spawn: On (1/6 limit) ``` ## Screenshot ![Auto-Spawn count mismatch](attached) ## Related - #340 (Stuck Tasks) - evtl. connected: Wenn Spawn-Count falsch ist, spawnt System evtl. nicht genug Workers - UI-State-Inkonsistenzen (#327-#334) ## Labels - `bug` - `component:worker` - `component:auto-spawn` - `ux` (verwirrende Anzeige)
Author
Owner

Update: Vollständiger Context aus Screenshot

Tatsächlicher Status (Screenshot zeigt):

Header-Metriken:

  • 3 connected Korrekt
  • 2 working FALSCH (alle 3 sind working!)
  • 1 idle FALSCH (keiner ist idle!)
  • 1/6 spawned Korrekt (zählt nur Auto-Spawn-Workers)

Permanent Workers: 2

  • pending-787-1772... → Status: Working (Heartbeat: 14:36:56)
  • pending-789-1772... → Status: Working (Heartbeat: 14:37:12)

Spawned Workers: 1

  • pending-4168-177... → Status: Working (Heartbeat: 14:37:12, Stop-Button vorhanden)

Korrektur meiner ursprünglichen Analyse

Der "1/6 spawned" Count ist tatsächlich korrekt! Er zählt nur Auto-Spawn-Workers (1), nicht die Permanent Workers (2). Das macht Sinn.

Das eigentliche Problem

Header behauptet: 2 working, 1 idle
Realität: 3 working, 0 idle

Alle Worker-Cards zeigen "Working" Badge. Keiner zeigt "Idle". Der Header hat falsche Metriken.

Auswirkung

  • Misleading Monitoring (User sieht falsche Auslastung)
  • Evtl. falsche Auto-Spawn-Decisions (wenn System denkt 1 Worker ist idle)
  • Debugging wird schwieriger durch inkonsistente Metriken

Mögliche Ursache

Vermutung: Ein Worker wird fälschlicherweise als idle gezählt, obwohl er Tasks bearbeitet. Evtl. State-Sync-Problem zwischen Worker-Cards und Header-Aggregation.

## Update: Vollständiger Context aus Screenshot ### Tatsächlicher Status (Screenshot zeigt): **Header-Metriken:** - `3 connected` ✅ Korrekt - `2 working` ❌ **FALSCH** (alle 3 sind working!) - `1 idle` ❌ **FALSCH** (keiner ist idle!) - `1/6 spawned` ✅ Korrekt (zählt nur Auto-Spawn-Workers) **Permanent Workers: 2** - `pending-787-1772...` → Status: **Working** (Heartbeat: 14:36:56) - `pending-789-1772...` → Status: **Working** (Heartbeat: 14:37:12) **Spawned Workers: 1** - `pending-4168-177...` → Status: **Working** (Heartbeat: 14:37:12, Stop-Button vorhanden) ### Korrektur meiner ursprünglichen Analyse Der **"1/6 spawned" Count ist tatsächlich korrekt!** Er zählt nur Auto-Spawn-Workers (1), nicht die Permanent Workers (2). Das macht Sinn. ### Das eigentliche Problem **Header behauptet: 2 working, 1 idle** **Realität: 3 working, 0 idle** Alle Worker-Cards zeigen "Working" Badge. Keiner zeigt "Idle". Der Header hat falsche Metriken. ### Auswirkung - Misleading Monitoring (User sieht falsche Auslastung) - Evtl. falsche Auto-Spawn-Decisions (wenn System denkt 1 Worker ist idle) - Debugging wird schwieriger durch inkonsistente Metriken ### Mögliche Ursache Vermutung: Ein Worker wird fälschlicherweise als idle gezählt, obwohl er Tasks bearbeitet. Evtl. State-Sync-Problem zwischen Worker-Cards und Header-Aggregation.
review.bot 2026-03-02 13:49:48 +00:00
  • closed this issue
  • added the
    has-pr
    label
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
customable/claude-mem#341
No description provided.