- Automatically populate feature_list.json with all features + Automatically create features in the features folder from the implementation roadmap after the spec is generated.
diff --git a/app/src/components/ui/category-autocomplete.tsx b/app/src/components/ui/category-autocomplete.tsx index c0742a07..7addab59 100644 --- a/app/src/components/ui/category-autocomplete.tsx +++ b/app/src/components/ui/category-autocomplete.tsx @@ -1,11 +1,23 @@ "use client"; import * as React from "react"; -import { useState, useRef, useEffect, useCallback } from "react"; -import { createPortal } from "react-dom"; +import { Check, ChevronsUpDown } from "lucide-react"; + import { cn } from "@/lib/utils"; -import { Input } from "./input"; -import { Check, ChevronDown } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from "@/components/ui/command"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; interface CategoryAutocompleteProps { value: string; @@ -26,225 +38,54 @@ export function CategoryAutocomplete({ disabled = false, "data-testid": testId, }: CategoryAutocompleteProps) { - const [isOpen, setIsOpen] = useState(false); - const [inputValue, setInputValue] = useState(value); - const [filteredSuggestions, setFilteredSuggestions] = useState
diff --git a/app/src/components/views/analysis-view.tsx b/app/src/components/views/analysis-view.tsx
index 48f4e07d..2860cb79 100644
--- a/app/src/components/views/analysis-view.tsx
+++ b/app/src/components/views/analysis-view.tsx
@@ -409,7 +409,7 @@ ${Object.entries(projectAnalysis.filesByExtension)
}
}, [currentProject, projectAnalysis]);
- // Generate .automaker/feature_list.json from analysis
+ // Generate features from analysis and save to .automaker/features folder
const generateFeatureList = useCallback(async () => {
if (!currentProject || !projectAnalysis) return;
@@ -755,23 +755,12 @@ ${Object.entries(projectAnalysis.filesByExtension)
});
}
- // Generate the feature list content
- const featureListContent = JSON.stringify(detectedFeatures, null, 2);
-
- // Write the feature list file
- const featureListPath = `${currentProject.path}/feature_list.json`;
- const writeResult = await api.writeFile(
- featureListPath,
- featureListContent
- );
-
- if (writeResult.success) {
- setFeatureListGenerated(true);
- } else {
- setFeatureListError(
- writeResult.error || "Failed to write feature list file"
- );
+ // Create each feature using the features API
+ for (const feature of detectedFeatures) {
+ await api.features.create(currentProject.path, feature);
}
+
+ setFeatureListGenerated(true);
} catch (error) {
console.error("Failed to generate feature list:", error);
setFeatureListError(
@@ -1041,7 +1030,7 @@ ${Object.entries(projectAnalysis.filesByExtension)
Generate Feature List
diff --git a/app/src/components/views/kanban-card.tsx b/app/src/components/views/kanban-card.tsx
index cc9b3b11..c86eb412 100644
--- a/app/src/components/views/kanban-card.tsx
+++ b/app/src/components/views/kanban-card.tsx
@@ -12,6 +12,7 @@ import {
CardTitle,
} from "@/components/ui/card";
import { Button } from "@/components/ui/button";
+import { HotkeyButton } from "@/components/ui/hotkey-button";
import {
Dialog,
DialogContent,
@@ -52,6 +53,8 @@ import {
GitBranch,
Undo2,
GitMerge,
+ ChevronDown,
+ ChevronUp,
} from "lucide-react";
import { CountUpTimer } from "@/components/ui/count-up-timer";
import { getElectronAPI } from "@/lib/electron";
@@ -116,6 +119,7 @@ export const KanbanCard = memo(function KanbanCard({
const [isSummaryDialogOpen, setIsSummaryDialogOpen] = useState(false);
const [isRevertDialogOpen, setIsRevertDialogOpen] = useState(false);
const [agentInfo, setAgentInfo] = useState
- Shortcuts won't trigger when typing in input fields. Use
- single keys (A-Z, 0-9) or special keys like ` (backtick).
- Changes take effect immediately.
+ Shortcuts won't trigger when typing in input fields.
+ Use single keys (A-Z, 0-9) or special keys like `
+ (backtick). Changes take effect immediately.
- Automatically populate feature_list.json with all features from the
+ Automatically create features in the features folder from the
implementation roadmap after the spec is generated.