@cat-factory/app 0.138.1 → 0.140.0
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.
- package/app/components/board/AddTaskModal.vue +12 -39
- package/app/components/brainstorm/BrainstormWindow.vue +338 -374
- package/app/components/clarity/ClarityReviewWindow.vue +323 -353
- package/app/components/consensus/ConsensusSessionWindow.vue +138 -150
- package/app/components/docs/DocInterviewWindow.vue +108 -136
- package/app/components/documents/ContextDocumentPicker.vue +89 -70
- package/app/components/documents/RepoContextDocPicker.vue +277 -0
- package/app/components/followUp/FollowUpWindow.vue +3 -5
- package/app/components/forkDecision/ForkDecisionWindow.vue +1 -3
- package/app/components/gates/GateResultView.vue +3 -5
- package/app/components/github/RepoTreeBrowser.vue +19 -10
- package/app/components/humanTest/HumanTestWindow.vue +3 -5
- package/app/components/initiative/InitiativePlanningWindow.vue +89 -112
- package/app/components/initiative/InitiativeTrackerWindow.vue +389 -424
- package/app/components/panels/GenericStructuredResultView.vue +3 -5
- package/app/components/panels/MergerResultView.vue +3 -5
- package/app/components/panels/ResultWindowShell.vue +1 -1
- package/app/components/panels/inspector/TaskRunSettings.vue +16 -23
- package/app/components/pipeline/PipelineBuilder.vue +10 -0
- package/app/components/pipeline/PipelinePicker.vue +120 -0
- package/app/components/pipeline/PipelinePreview.vue +49 -0
- package/app/components/prReview/PrReviewWindow.vue +181 -205
- package/app/components/ralph/RalphLoopResultView.vue +3 -5
- package/app/components/requirements/RequirementsReviewWindow.vue +512 -557
- package/app/components/spec/ServiceSpecWindow.vue +235 -266
- package/app/components/testing/TestReportWindow.vue +4 -6
- package/app/components/visualConfirm/VisualConfirmationWindow.vue +3 -5
- package/app/composables/api/github.ts +8 -0
- package/app/composables/useContextLinking.spec.ts +138 -0
- package/app/composables/useContextLinking.ts +120 -8
- package/app/composables/useCopyToClipboard.spec.ts +27 -0
- package/app/composables/useCopyToClipboard.ts +17 -1
- package/app/composables/useResultView.ts +10 -21
- package/app/stores/github.ts +24 -0
- package/app/stores/pipelines.ts +9 -0
- package/app/utils/pipeline.ts +25 -1
- package/i18n/locales/de.json +20 -0
- package/i18n/locales/en.json +20 -0
- package/i18n/locales/es.json +20 -0
- package/i18n/locales/fr.json +20 -0
- package/i18n/locales/he.json +20 -0
- package/i18n/locales/it.json +20 -0
- package/i18n/locales/ja.json +20 -0
- package/i18n/locales/pl.json +20 -0
- package/i18n/locales/tr.json +20 -0
- package/i18n/locales/uk.json +20 -0
- package/package.json +2 -2
|
@@ -35,7 +35,7 @@ const agentConfig = useAgentConfigStore()
|
|
|
35
35
|
const toast = useToast()
|
|
36
36
|
const { t } = useI18n()
|
|
37
37
|
|
|
38
|
-
const { linkPending } = useContextLinking()
|
|
38
|
+
const { linkPending, presentLinkFailures } = useContextLinking()
|
|
39
39
|
|
|
40
40
|
const open = computed({
|
|
41
41
|
get: () => ui.addTaskContainerId !== null,
|
|
@@ -292,24 +292,6 @@ const selectedModelPresetLabel = computed(() => {
|
|
|
292
292
|
const selectablePipelines = computed(() =>
|
|
293
293
|
pipelines.pipelines.filter((p) => pipelineAllowedForManualStart(p, frame.value, board.blocks)),
|
|
294
294
|
)
|
|
295
|
-
const pipelineMenu = computed(() => [
|
|
296
|
-
[
|
|
297
|
-
{
|
|
298
|
-
label: t('board.addTask.chooseAtRunTime'),
|
|
299
|
-
icon: 'i-lucide-rotate-ccw',
|
|
300
|
-
onSelect: () => (pipelineId.value = ''),
|
|
301
|
-
},
|
|
302
|
-
...selectablePipelines.value.map((p) => ({
|
|
303
|
-
label: p.name,
|
|
304
|
-
icon: 'i-lucide-workflow',
|
|
305
|
-
onSelect: () => (pipelineId.value = p.id),
|
|
306
|
-
})),
|
|
307
|
-
],
|
|
308
|
-
])
|
|
309
|
-
const selectedPipelineLabel = computed(
|
|
310
|
-
() => pipelines.getPipeline(pipelineId.value)?.name ?? t('board.addTask.chooseAtRunTime'),
|
|
311
|
-
)
|
|
312
|
-
|
|
313
295
|
// Picking the Ralph loop task type auto-selects its pipeline, so the per-task validation
|
|
314
296
|
// command + iteration budget (contributed by the `ralph` agent) surface immediately — the
|
|
315
297
|
// loop is meaningless without them, so "choose at run time" would be a dead end here.
|
|
@@ -578,14 +560,10 @@ async function add() {
|
|
|
578
560
|
...(technical.value ? { technical: true } : {}),
|
|
579
561
|
})
|
|
580
562
|
if (block) {
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
icon: 'i-lucide-triangle-alert',
|
|
586
|
-
color: 'warning',
|
|
587
|
-
})
|
|
588
|
-
}
|
|
563
|
+
// Surface the SPECIFIC cause of any attachment that couldn't be linked (a GitHub
|
|
564
|
+
// permission/visibility error, a not-found doc, …) instead of a bare count, plus a
|
|
565
|
+
// one-click "Copy details" for a bug report.
|
|
566
|
+
presentLinkFailures(await linkPending(block.id, pendingContext.value), block.id)
|
|
589
567
|
}
|
|
590
568
|
ui.closeAddTask()
|
|
591
569
|
} catch (e) {
|
|
@@ -895,18 +873,13 @@ async function add() {
|
|
|
895
873
|
|
|
896
874
|
<div class="grid grid-cols-2 gap-3">
|
|
897
875
|
<UFormField :label="t('board.addTask.pipeline')">
|
|
898
|
-
<
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
class="w-full justify-between"
|
|
906
|
-
>
|
|
907
|
-
{{ selectedPipelineLabel }}
|
|
908
|
-
</UButton>
|
|
909
|
-
</UDropdownMenu>
|
|
876
|
+
<PipelinePicker
|
|
877
|
+
:model-value="pipelineId"
|
|
878
|
+
:options="selectablePipelines"
|
|
879
|
+
:none-label="t('board.addTask.chooseAtRunTime')"
|
|
880
|
+
trigger-class="w-full justify-between"
|
|
881
|
+
@update:model-value="pipelineId = $event"
|
|
882
|
+
/>
|
|
910
883
|
</UFormField>
|
|
911
884
|
|
|
912
885
|
<UFormField :label="t('board.addTask.mergePolicy')">
|