feat(app): give composer track pills a segment per state

A mixed fan-out used to collapse the pill to its single most urgent
state, so a red dot beside "1 failed" over a child that was still
working read as the whole fan-out having stopped. Every state present
now gets its own mark and count, in the sidebar's status-group order.
This commit is contained in:
Mohamed Boudra
2026-08-18 21:51:25 +02:00
parent 5731f016c2
commit 25fbc939e0
17 changed files with 221 additions and 116 deletions
+1 -1
View File
@@ -1664,7 +1664,7 @@ export const ar: TranslationResources = {
title: "الوكلاء الفرعيون",
pillLabelOne: "وكيل فرعي واحد",
pillLabelMany: "{{count}} وكلاء فرعيين",
pillLabelRunning: "{{count}} قيد التشغيل",
pillLabelWorking: "{{count}} قيد التشغيل",
pillLabelFailed: "{{count}} فشلت",
pillLabelNeedsInputOne: "واحد يحتاج إدخالاً",
pillLabelNeedsInputMany: "{{count}} تحتاج إدخالاً",
+1 -1
View File
@@ -1674,7 +1674,7 @@ export const en = {
title: "Subagents",
pillLabelOne: "1 subagent",
pillLabelMany: "{{count}} subagents",
pillLabelRunning: "{{count}} running",
pillLabelWorking: "{{count}} working",
pillLabelFailed: "{{count}} failed",
pillLabelNeedsInputOne: "1 needs input",
pillLabelNeedsInputMany: "{{count}} need input",
+1 -1
View File
@@ -1710,7 +1710,7 @@ export const es: TranslationResources = {
title: "Subagentes",
pillLabelOne: "1 subagente",
pillLabelMany: "{{count}} subagentes",
pillLabelRunning: "{{count}} en ejecución",
pillLabelWorking: "{{count}} en ejecución",
pillLabelFailed: "{{count}} con error",
pillLabelNeedsInputOne: "1 necesita datos",
pillLabelNeedsInputMany: "{{count}} necesitan datos",
+1 -1
View File
@@ -1714,7 +1714,7 @@ export const fr: TranslationResources = {
title: "Sous-agents",
pillLabelOne: "1 sous-agent",
pillLabelMany: "{{count}} sous-agents",
pillLabelRunning: "{{count}} en cours",
pillLabelWorking: "{{count}} en cours",
pillLabelFailed: "{{count}} en échec",
pillLabelNeedsInputOne: "1 attend une réponse",
pillLabelNeedsInputMany: "{{count}} attendent une réponse",
+1 -1
View File
@@ -1681,7 +1681,7 @@ export const ja: TranslationResources = {
title: "サブエージェント",
pillLabelOne: "サブエージェント 1 件",
pillLabelMany: "サブエージェント {{count}} 件",
pillLabelRunning: "{{count}} 件実行中",
pillLabelWorking: "{{count}} 件実行中",
pillLabelFailed: "{{count}} 件失敗",
pillLabelNeedsInputOne: "1 件が入力待ち",
pillLabelNeedsInputMany: "{{count}} 件が入力待ち",
+1 -1
View File
@@ -1674,7 +1674,7 @@ export const ko: TranslationResources = {
title: "하위 에이전트",
pillLabelOne: "하위 에이전트 1개",
pillLabelMany: "하위 에이전트 {{count}}개",
pillLabelRunning: "{{count}}개 실행 중",
pillLabelWorking: "{{count}}개 실행 중",
pillLabelFailed: "{{count}}개 실패",
pillLabelNeedsInputOne: "1개 입력 필요",
pillLabelNeedsInputMany: "{{count}}개 입력 필요",
+1 -1
View File
@@ -1696,7 +1696,7 @@ export const ptBR: TranslationResources = {
title: "Subagentes",
pillLabelOne: "1 subagente",
pillLabelMany: "{{count}} subagentes",
pillLabelRunning: "{{count}} em execução",
pillLabelWorking: "{{count}} em execução",
pillLabelFailed: "{{count}} com falha",
pillLabelNeedsInputOne: "1 precisa de resposta",
pillLabelNeedsInputMany: "{{count}} precisam de resposta",
+1 -1
View File
@@ -1699,7 +1699,7 @@ export const ru: TranslationResources = {
title: "Субагенты",
pillLabelOne: "1 субагент",
pillLabelMany: "{{count}} субагентов",
pillLabelRunning: "{{count}} в работе",
pillLabelWorking: "{{count}} в работе",
pillLabelFailed: "{{count}} с ошибкой",
pillLabelNeedsInputOne: "1 ожидает ввода",
pillLabelNeedsInputMany: "{{count}} ожидают ввода",
+1 -1
View File
@@ -1644,7 +1644,7 @@ export const zhCN: TranslationResources = {
title: "Subagent",
pillLabelOne: "1 个 subagent",
pillLabelMany: "{{count}} 个 subagent",
pillLabelRunning: "{{count}} 个运行中",
pillLabelWorking: "{{count}} 个运行中",
pillLabelFailed: "{{count}} 个失败",
pillLabelNeedsInputOne: "1 个需要输入",
pillLabelNeedsInputMany: "{{count}} 个需要输入",