diff --git a/packages/dashboard/app/components/InlineCreateCard.tsx b/packages/dashboard/app/components/InlineCreateCard.tsx
index 13cc732d8..902099ecf 100644
--- a/packages/dashboard/app/components/InlineCreateCard.tsx
+++ b/packages/dashboard/app/components/InlineCreateCard.tsx
@@ -197,13 +197,14 @@ export function InlineCreateCard({ tasks, onSubmit, onCancel, addToast }: Inline
{showDeps && (() => {
const term = depSearch.toLowerCase();
- const filtered = term
+ const filtered = (term
? tasks.filter((t) =>
t.id.toLowerCase().includes(term) ||
(t.title && t.title.toLowerCase().includes(term)) ||
(t.description && t.description.toLowerCase().includes(term))
)
- : tasks;
+ : [...tasks]
+ ).sort((a, b) => b.createdAt.localeCompare(a.createdAt));
return (
e.preventDefault()}>
{
});
});
+describe("InlineCreateCard dependency dropdown sort order", () => {
+ const scrambledTasks: Task[] = [
+ { id: "KB-001", title: "Oldest", description: "First", column: "todo" as Column, dependencies: [], steps: [], currentStep: 0, log: [], createdAt: "2026-01-01T00:00:00Z", updatedAt: "2026-01-01T00:00:00Z" },
+ { id: "KB-003", title: "Newest", description: "Third", column: "todo" as Column, dependencies: [], steps: [], currentStep: 0, log: [], createdAt: "2026-03-01T00:00:00Z", updatedAt: "2026-03-01T00:00:00Z" },
+ { id: "KB-002", title: "Middle", description: "Second", column: "todo" as Column, dependencies: [], steps: [], currentStep: 0, log: [], createdAt: "2026-02-01T00:00:00Z", updatedAt: "2026-02-01T00:00:00Z" },
+ ];
+
+ it("renders dependency dropdown items sorted newest-first by createdAt", () => {
+ renderCard(scrambledTasks);
+ fireEvent.click(screen.getByText(/Deps/));
+ const items = document.querySelectorAll(".dep-dropdown-item");
+ expect(items).toHaveLength(3);
+ const ids = Array.from(items).map((el) => el.querySelector(".dep-dropdown-id")?.textContent);
+ expect(ids).toEqual(["KB-003", "KB-002", "KB-001"]);
+ });
+
+ it("preserves newest-first sort order when a search filter is applied", () => {
+ renderCard(scrambledTasks);
+ fireEvent.click(screen.getByText(/Deps/));
+ const input = document.querySelector(".dep-dropdown-search") as HTMLInputElement;
+ // All three tasks match "KB-00" so we can verify order with a filter active
+ fireEvent.change(input, { target: { value: "KB-00" } });
+ const items = document.querySelectorAll(".dep-dropdown-item");
+ expect(items).toHaveLength(3);
+ const ids = Array.from(items).map((el) => el.querySelector(".dep-dropdown-id")?.textContent);
+ expect(ids).toEqual(["KB-003", "KB-002", "KB-001"]);
+ });
+});
+
describe("InlineCreateCard dependency dropdown search", () => {
const testTasks: Task[] = [
{ id: "KB-001", title: "Fix login", description: "Login page broken", column: "todo" as Column, dependencies: [], steps: [], currentStep: 0, log: [], createdAt: "2026-01-01T00:00:00Z", updatedAt: "2026-01-01T00:00:00Z" },