@cat-factory/app 0.113.0 → 0.114.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,6 +41,16 @@ function reload() {
41
41
  <span class="font-medium text-slate-300">{{ t('app.misconfigured.howToFix') }}</span>
42
42
  {{ problem.remedy }}
43
43
  </p>
44
+ <a
45
+ v-if="problem.docsUrl"
46
+ :href="problem.docsUrl"
47
+ target="_blank"
48
+ rel="noopener noreferrer"
49
+ class="mt-2 inline-flex items-center gap-1 text-sm text-amber-300 hover:text-amber-200"
50
+ >
51
+ <UIcon name="i-lucide-book-open" class="h-4 w-4" />
52
+ {{ t('app.misconfigured.viewDocs') }}
53
+ </a>
44
54
  </li>
45
55
  </ul>
46
56
 
@@ -4,7 +4,7 @@
4
4
  // the unified retry through the agentRuns store, so every surface (board card,
5
5
  // inspector, task panel) gets identical behaviour from one place. Replaces the
6
6
  // three hand-rolled bootstrap banners that used to duplicate this logic.
7
- import type { EnvironmentFailureReason } from '@cat-factory/contracts'
7
+ import type { ConflictReason, EnvironmentFailureReason } from '@cat-factory/contracts'
8
8
  import type { AgentRunSummary } from '~/stores/agentRuns'
9
9
  import FailureDetail from '~/components/board/FailureDetail.vue'
10
10
 
@@ -26,6 +26,10 @@ const failure = computed(() => props.run.failure)
26
26
  // infra-setup banners use.
27
27
  const isEnvironmentFailure = computed(() => failure.value?.kind === 'environment')
28
28
  const DEPLOY_RUNNER_UNWIRED: EnvironmentFailureReason = 'deploy_runner_unwired'
29
+ // A `preflight` rejection with this reason means the run couldn't start because the workspace
30
+ // has no connected/linked repo — the same cause the 409 toast words, so reuse its translated
31
+ // title (and let the backend's actionable message + doc link show in the detail below).
32
+ const GITHUB_NOT_CONNECTED: ConflictReason = 'github_not_connected'
29
33
 
30
34
  // The provision type of the failed run's SERVICE frame (walk up to the frame, mirroring the
31
35
  // backend's `resolveServiceProvisioning`). Drives the K8s-specific gate below.
@@ -69,6 +73,10 @@ const showEnvironmentLocalHint = computed(
69
73
  provisionType.value === 'kubernetes',
70
74
  )
71
75
  const title = computed(() => {
76
+ // A `github_not_connected` preflight rejection (no repo linked/connected) — name it with
77
+ // the same translated title the 409 toast uses, with the actionable remedy in the detail.
78
+ if (failure.value?.reason === GITHUB_NOT_CONNECTED)
79
+ return t('errors.conflict.title.github_not_connected')
72
80
  // A `dispatch` failure means the container/runner never accepted the job — say so
73
81
  // explicitly rather than the generic "Run failed", and show the verbatim provider
74
82
  // error in the collapsible detail below.
@@ -3654,6 +3654,7 @@
3654
3654
  "title": "Backend nicht konfiguriert",
3655
3655
  "intro": "Der Server wurde gestartet, kann aber erst laufen, wenn die folgenden Einstellungen vorhanden sind. Ergänze die fehlenden Werte in deiner Umgebung und lade neu.",
3656
3656
  "howToFix": "So behebst du es:",
3657
+ "viewDocs": "Dokumentation ansehen",
3657
3658
  "reload": "Neu laden",
3658
3659
  "hint": "Hier werden nur Variablennamen und deren Einrichtung angezeigt, niemals geheime Werte."
3659
3660
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Backend not configured",
10
10
  "intro": "The server started but can't run until the settings below are provided. Add the missing values to your environment, then reload.",
11
11
  "howToFix": "How to fix:",
12
+ "viewDocs": "View documentation",
12
13
  "reload": "Reload",
13
14
  "hint": "Only variable names and how to set them are shown here, never any secret values."
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Backend sin configurar",
10
10
  "intro": "El servidor se inició pero no puede funcionar hasta que se proporcionen los ajustes siguientes. Añade los valores que faltan a tu entorno y vuelve a cargar.",
11
11
  "howToFix": "Cómo solucionarlo:",
12
+ "viewDocs": "Ver la documentación",
12
13
  "reload": "Recargar",
13
14
  "hint": "Aquí solo se muestran los nombres de las variables y cómo definirlas, nunca valores secretos."
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Backend non configuré",
10
10
  "intro": "Le serveur a démarré mais ne peut pas fonctionner tant que les paramètres ci-dessous ne sont pas fournis. Ajoutez les valeurs manquantes à votre environnement, puis rechargez.",
11
11
  "howToFix": "Comment corriger :",
12
+ "viewDocs": "Voir la documentation",
12
13
  "reload": "Recharger",
13
14
  "hint": "Seuls les noms des variables et la façon de les définir sont affichés ici, jamais de valeurs secrètes."
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "השרת אינו מוגדר",
10
10
  "intro": "השרת עלה אך אינו יכול לפעול עד שהערכים הבאים יסופקו. הוסיפו את הערכים החסרים לסביבה שלכם וטענו מחדש.",
11
11
  "howToFix": "איך לתקן:",
12
+ "viewDocs": "צפייה בתיעוד",
12
13
  "reload": "טעינה מחדש",
13
14
  "hint": "כאן מוצגים רק שמות המשתנים וכיצד להגדיר אותם, לעולם לא ערכים סודיים."
14
15
  }
@@ -3654,6 +3654,7 @@
3654
3654
  "title": "Backend non configurato",
3655
3655
  "intro": "Il server è avviato ma non può funzionare finché non vengono forniti i parametri seguenti. Aggiungi i valori mancanti al tuo ambiente e ricarica.",
3656
3656
  "howToFix": "Come risolvere:",
3657
+ "viewDocs": "Vedi la documentazione",
3657
3658
  "reload": "Ricarica",
3658
3659
  "hint": "Qui vengono mostrati solo i nomi delle variabili e come impostarle, mai valori segreti."
3659
3660
  }
@@ -9,6 +9,7 @@
9
9
  "title": "バックエンドが設定されていません",
10
10
  "intro": "サーバーは起動しましたが、以下の設定が指定されるまで動作できません。不足している値を環境に追加してから再読み込みしてください。",
11
11
  "howToFix": "対処方法:",
12
+ "viewDocs": "ドキュメントを表示",
12
13
  "reload": "再読み込み",
13
14
  "hint": "ここに表示されるのは変数名と設定方法のみで、秘密の値は表示されません。"
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Backend nie jest skonfigurowany",
10
10
  "intro": "Serwer wystartował, ale nie zadziała, dopóki nie uzupełnisz poniższych ustawień. Dodaj brakujące wartości do swojego środowiska i odśwież.",
11
11
  "howToFix": "Jak naprawić:",
12
+ "viewDocs": "Zobacz dokumentację",
12
13
  "reload": "Odśwież",
13
14
  "hint": "Tutaj pokazujemy tylko nazwy zmiennych i sposób ich ustawienia, nigdy wartości sekretnych."
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Arka uç yapılandırılmadı",
10
10
  "intro": "Sunucu başladı ancak aşağıdaki ayarlar sağlanana kadar çalışamaz. Eksik değerleri ortamınıza ekleyip yeniden yükleyin.",
11
11
  "howToFix": "Nasıl düzeltilir:",
12
+ "viewDocs": "Belgeleri görüntüle",
12
13
  "reload": "Yeniden yükle",
13
14
  "hint": "Burada yalnızca değişken adları ve nasıl ayarlanacakları gösterilir, asla gizli değerler değil."
14
15
  }
@@ -9,6 +9,7 @@
9
9
  "title": "Бекенд не налаштовано",
10
10
  "intro": "Сервер запустився, але не працюватиме, доки не буде задано наведені нижче параметри. Додайте відсутні значення до свого середовища та перезавантажте.",
11
11
  "howToFix": "Як виправити:",
12
+ "viewDocs": "Переглянути документацію",
12
13
  "reload": "Перезавантажити",
13
14
  "hint": "Тут показано лише назви змінних і як їх задати, ніколи не секретні значення."
14
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.113.0",
3
+ "version": "0.114.1",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,7 +34,7 @@
34
34
  "valibot": "^1.4.2",
35
35
  "vue": "3.5.39",
36
36
  "wretch": "^3.0.9",
37
- "@cat-factory/contracts": "0.125.0"
37
+ "@cat-factory/contracts": "0.126.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@toad-contracts/testing": "0.3.2",