fix: complete refactoring integration — rename remaining snake_case API files and fix test imports

During refactoring verification found several remaining inconsistencies:

API files (kebab-case naming):
- Rename config_profiles.ts → config-profiles.ts
- Rename tool_definitions.ts → tool-definitions.ts
- Update all imports across 8 files

Missing Python __init__.py (backend package structure):
- Add utils/__init__.py
- Add services/__init__.py
- Add schemas/__init__.py
- Add services/build/__init__.py

Test file import fixes (component reorganization fallout):
- DashboardPage.test.tsx: import from ./dashboard → ./DashboardPage
- ProjectsPage.test.tsx: import from ./projects → ./ProjectsPage
- event-toast-bridge.test.tsx: fix relative paths for moved components
  (../state/events → ../../../state/events, ./toast-rules → ../../toast-rules)
- notification-center.test.tsx: fix relative path
  (../state/notifications → ../../../state/notifications)

Quality gates: tsc --noEmit (pass), build (pass), py_compile (pass)
Tests: 9/12 test files pass (3 pre-existing UI test failures unrelated to refactoring)
This commit is contained in:
Developer
2026-06-05 09:30:44 +00:00
parent 6553a8845b
commit a9e2dd3552
16 changed files with 16 additions and 16 deletions
View File
View File
View File
@@ -1,7 +1,7 @@
import { useState, useEffect } from "react";
import { Icon } from "../../icon";
import { validateGitUrl } from "../../../api/config_profiles";
import type { GitMount, GitMountMapping } from "../../../api/config_profiles";
import { validateGitUrl } from "../../../api/config-profiles";
import type { GitMount, GitMountMapping } from "../../../api/config-profiles";
interface GitMountEditorProps {
mounts: GitMount[];
@@ -1,12 +1,12 @@
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 { useEventContext } from "../../../state/events";
import { getUserConfig } from "../../../api/settings";
import { handleEventToast } from "./toast-rules";
import { handleEventToast } from "../../toast-rules";
import type { InstanceEventPayload } from "../../../types/events";
vi.mock("../state/events", () => ({
vi.mock("../../../state/events", () => ({
useEventContext: vi.fn(),
}));
@@ -14,8 +14,8 @@ vi.mock("../../../api/settings", () => ({
getUserConfig: vi.fn(),
}));
vi.mock("./toast-rules", async (importOriginal) => {
const actual = await importOriginal<typeof import("./toast-rules")>();
vi.mock("../../toast-rules", async (importOriginal) => {
const actual = await importOriginal<typeof import("../../toast-rules")>();
return {
...actual,
handleEventToast: vi.fn(),
@@ -1,7 +1,7 @@
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
import { render, screen, fireEvent, cleanup } from "@testing-library/react";
import { NotificationCenter } from "./notification-center";
import { NotificationProvider } from "../state/notifications";
import { NotificationProvider } from "../../../state/notifications";
vi.mock("../../../api/notifications", () => ({
getNotifications: vi.fn(),
@@ -5,7 +5,7 @@ import type { Project } from "../../../types";
import { listRepositoryBranches, type GitRepository, type Branch } from "../../../api/git-repositories";
import type { ToolType } from "../../../api/tool-types";
import { listSSHKeys, type SSHKey } from "../../../api/ssh-keys";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config_profiles";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config-profiles";
interface CreateSessionFormProps {
projects: Project[];
@@ -11,7 +11,7 @@ import {
} from "../../../api/sessions";
import type { ToolType } from "../../../api/tool-types";
import { CreateSessionForm } from "../session/create-session-form";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config_profiles";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config-profiles";
import { listSSHKeys, type SSHKey } from "../../../api/ssh-keys";
import { useEventContext } from "../../../state/events";
@@ -4,7 +4,7 @@ import { extractErrorMessage } from "../../../utils/errors";
import {
compileToolDefinition,
type ToolDefinitionManifest,
} from "../../../api/tool_definitions";
} from "../../../api/tool-definitions";
interface PackageEntry {
name: string;
@@ -3,7 +3,7 @@
import { useState, useEffect, useCallback } from "react";
import { Icon } from "../../icon";
import { listToolTypes, type ToolType } from "../../../api/tool-types";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config_profiles";
import { listConfigProfiles, type ConfigProfile } from "../../../api/config-profiles";
import { listSSHKeys, type SSHKey } from "../../../api/ssh-keys";
import type { Workspace } from "../../../types/workspace";
import type { ToolInstance } from "../../../api/sessions";
+1 -1
View File
@@ -17,7 +17,7 @@ import {
type ConfigProfile,
type CreateConfigProfileRequest,
type ResolvedProfile,
} from "../api/config_profiles";
} from "../api/config-profiles";
import { listProjects } from "../api/projects";
import type { ProjectWithRepos } from "../types";
import { listToolTypes, type ToolType } from "../api/tool-types";
+1 -1
View File
@@ -2,7 +2,7 @@ import { fireEvent, render, screen, waitFor } from "@testing-library/react";
import { MemoryRouter } from "react-router-dom";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { HomePage } from "./dashboard";
import { HomePage } from "./DashboardPage";
const mockDashboard = vi.fn();
const mockSessions = vi.fn();
+1 -1
View File
@@ -2,7 +2,7 @@ import { cleanup, fireEvent, render, screen, waitFor, within } from "@testing-li
import { MemoryRouter } from "react-router-dom";
import { afterEach, describe, expect, it, vi } from "vitest";
import { ProjectsPage } from "./projects";
import { ProjectsPage } from "./ProjectsPage";
import * as projectsApi from "../api/projects";
const mockProjects = [
+1 -1
View File
@@ -23,7 +23,7 @@ import {
listToolDefinitions,
updateToolDefinition,
type ToolDefinitionManifest,
} from "../api/tool_definitions";
} from "../api/tool-definitions";
import { ManifestEditor } from "../components/features/tool/manifest-editor";
type Status = "loading" | "ready" | "error";