fix: correct relative imports after component reorganization

Fixed import paths for 43 components moved into features/ directories.
Key fixes:
- api/, types/, hooks/, state/, utils/ imports need ../../../ from features/*/
- components/ imports need ../../ from features/*/
- Cross-feature imports use relative paths (e.g., ../tool/tools-bottom-sheet)
- app-shell.tsx updated to import from features/ subdirectories

Frontend typecheck now passes except for one pre-existing error:
xterm-addon-webgl missing type declarations.

Quality gates: ruff passed on backend, py_compile passed on all backend files.
This commit is contained in:
2026-06-04 12:46:45 +02:00
parent 2680a8c44a
commit 8c7affc933
39 changed files with 117 additions and 117 deletions
@@ -2,15 +2,15 @@ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
import { render, act } from "@testing-library/react";
import { EventToastBridge } from "./event-toast-bridge";
import { useEventContext } from "../state/events";
import { getUserConfig } from "../api/settings";
import { getUserConfig } from "../../../api/settings";
import { handleEventToast } from "./toast-rules";
import type { InstanceEventPayload } from "../types/events";
import type { InstanceEventPayload } from "../../../types/events";
vi.mock("../state/events", () => ({
useEventContext: vi.fn(),
}));
vi.mock("../api/settings", () => ({
vi.mock("../../../api/settings", () => ({
getUserConfig: vi.fn(),
}));
@@ -1,12 +1,12 @@
import { useEffect, useRef, useState } from "react";
import { useEventContext } from "../state/events";
import { useEventContext } from "../../../state/events";
import {
handleEventToast,
mapEventToCategory,
mapEventToSeverity,
} from "./toast-rules";
import { getUserConfig } from "../api/settings";
import type { UserConfig } from "../api/settings";
} from "../../toast-rules";
import { getUserConfig } from "../../../api/settings";
import type { UserConfig } from "../../../api/settings";
interface ToastConfig {
notification_toast_level: string;
@@ -3,7 +3,7 @@ import { render, screen, fireEvent, cleanup } from "@testing-library/react";
import { NotificationCenter } from "./notification-center";
import { NotificationProvider } from "../state/notifications";
vi.mock("../api/notifications", () => ({
vi.mock("../../../api/notifications", () => ({
getNotifications: vi.fn(),
getUnreadCount: vi.fn(),
markNotificationRead: vi.fn(),
@@ -12,7 +12,7 @@ vi.mock("../api/notifications", () => ({
clearAllNotifications: vi.fn(),
}));
import { getNotifications, getUnreadCount } from "../api/notifications";
import { getNotifications, getUnreadCount } from "../../../api/notifications";
const mockedGetNotifications = vi.mocked(getNotifications);
const mockedGetUnreadCount = vi.mocked(getUnreadCount);
@@ -142,7 +142,7 @@ describe("NotificationCenter", () => {
fireEvent.click(screen.getByRole("button", { name: /mark all as read/i }));
const { markAllNotificationsRead: mockMarkAll } = await import(
"../api/notifications"
"../../../api/notifications"
);
expect(vi.mocked(mockMarkAll)).toHaveBeenCalled();
});
@@ -162,7 +162,7 @@ describe("NotificationCenter", () => {
fireEvent.click(screen.getByRole("button", { name: /clear all/i }));
const { clearAllNotifications: mockClearAll } = await import(
"../api/notifications"
"../../../api/notifications"
);
expect(vi.mocked(mockClearAll)).toHaveBeenCalled();
});
@@ -1,7 +1,7 @@
import { useEffect, useRef } from "react";
import { useNotifications } from "../hooks/use-notifications";
import { useNotifications } from "../../../hooks/use-notifications";
import { NotificationItem } from "./notification-item";
import { Icon } from "./icon";
import { Icon } from "../../icon";
interface NotificationCenterProps {
isMobileTerminal?: boolean;
@@ -1,6 +1,6 @@
import { Icon } from "./icon";
import { formatRelativeTime } from "../utils/time";
import type { NotificationItem as NotificationItemType } from "../api/notifications";
import { Icon } from "../../icon";
import { formatRelativeTime } from "../../../utils/time";
import type { NotificationItem as NotificationItemType } from "../../../api/notifications";
export interface NotificationItemProps {
notification: NotificationItemType;
@@ -8,7 +8,7 @@ export interface NotificationItemProps {
onDismiss: (id: string) => void;
}
import type { IconName } from "../utils/icons";
import type { IconName } from "../../../utils/icons";
const severityIconMap: Record<string, IconName> = {
info: "info",