@cat-factory/app 0.7.3 → 0.7.4

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.
@@ -1,7 +1,13 @@
1
1
  <script setup lang="ts">
2
2
  import type { AgentState } from '~/types/domain'
3
3
  import { agentKindMeta } from '~/utils/catalog'
4
- import { subtaskIconClass, isFailedStep, FAILED_STEP_META } from '~/utils/pipelineRender'
4
+ import {
5
+ subtaskIconClass,
6
+ isFailedStep,
7
+ FAILED_STEP_META,
8
+ gateCompanionFor,
9
+ COMPANION_STATE_META,
10
+ } from '~/utils/pipelineRender'
5
11
  import { lodAtLeast } from '~/composables/useSemanticZoom'
6
12
 
7
13
  // Spatial drill-down inside a task card: at the `steps` zoom band the task's
@@ -24,6 +30,13 @@ const steps = computed(() => instance.value?.steps ?? [])
24
30
  // `working`) must stop spinning, matching the failure card the task card shows.
25
31
  const runFailed = computed(() => instance.value?.status === 'failed')
26
32
 
33
+ // The conditionally-run companion (if any) each step drives — the polling gates'
34
+ // helper (ci → ci-fixer, conflicts → conflict-resolver) or the Tester's fixer — with
35
+ // its possible/running/completed/skipped state. The board drill-down shows it the same
36
+ // way the inspector + focus pipeline do, so a gate working its helper reads as active
37
+ // (spinning "Running") rather than a frozen subtask list.
38
+ const companionByStep = computed(() => steps.value.map((s) => gateCompanionFor(s, runFailed.value)))
39
+
27
40
  // Expand the pipeline list only when zoomed in far enough AND the board driver
28
41
  // permits this card — on-screen, and the centre-most of any cards that would
29
42
  // otherwise overlap (see useTaskExpansion) — so deep-zoom expansions don't pile up.
@@ -132,6 +145,29 @@ const ITEM_ICON: Record<string, string> = {
132
145
  />
133
146
  </div>
134
147
 
148
+ <!-- conditionally-run companion (the gate's ci-fixer / conflict-resolver, or the
149
+ Tester's fixer): a compact running/ran/skipped line, so a gate that's working
150
+ its helper reads as actively fixing rather than a frozen subtask list. -->
151
+ <div v-if="companionByStep[i]" class="mt-1 flex items-center gap-1 text-[9px]">
152
+ <UIcon
153
+ :name="agentKindMeta(companionByStep[i]!.kind).icon"
154
+ class="h-2.5 w-2.5 shrink-0"
155
+ :class="[
156
+ COMPANION_STATE_META[companionByStep[i]!.state].text,
157
+ companionByStep[i]!.state === 'running' ? 'animate-spin' : '',
158
+ ]"
159
+ />
160
+ <span class="truncate text-slate-400">
161
+ {{ agentKindMeta(companionByStep[i]!.kind).label }}
162
+ </span>
163
+ <span
164
+ class="ml-auto shrink-0"
165
+ :class="COMPANION_STATE_META[companionByStep[i]!.state].text"
166
+ >
167
+ {{ COMPANION_STATE_META[companionByStep[i]!.state].label }}
168
+ </span>
169
+ </div>
170
+
135
171
  <!-- deepest band: the actual todo list (done / in-progress / pending) -->
136
172
  <ul v-if="showItems && s.subtasks?.items?.length" class="mt-1 space-y-0.5">
137
173
  <li
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/kibertoad/cat-factory.git",