Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ Mobile app tests live in `mobile/src/**/*.test.ts` and use Bun's built-in test r
## Styling

- Never use emoji characters as UI icons or status indicators; emoji rendering varies across platforms and fonts.
- Prefer SVG icons (usually from `lucide-react`) or shared icon components under `src/browser/components/icons/`.
- Prefer SVG icons (usually from `lucide-react`) or shared icon components under `src/browser/components/Icons/`.
- For tool call headers, use `ToolIcon` from `src/browser/components/tools/shared/ToolPrimitives.tsx`.
- If a tool/agent provides an emoji string (e.g., `status_set` or `displayStatus`), render via `EmojiIcon` (`src/browser/components/icons/EmojiIcon.tsx`) instead of rendering the emoji.
- If a tool/agent provides an emoji string (e.g., `status_set` or `displayStatus`), render via `EmojiIcon` (`src/browser/components/Icons/EmojiIcon.tsx`) instead of rendering the emoji.
- If a new emoji appears in tool output, extend `EmojiIcon` to map it to an SVG icon.
- Colors defined in `src/browser/styles/globals.css` (`:root @theme` block). Reference via CSS variables (e.g., `var(--color-plan-mode)`), never hardcode hex values.

Expand Down
8 changes: 4 additions & 4 deletions src/browser/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import "./styles/globals.css";
import { useWorkspaceContext, toWorkspaceSelection } from "./contexts/WorkspaceContext";
import { MUX_HELP_CHAT_WORKSPACE_ID } from "@/common/constants/muxChat";
import { useProjectContext } from "./contexts/ProjectContext";
import type { WorkspaceSelection } from "./components/ProjectSidebar/ProjectSidebar";
import type { WorkspaceSelection } from "./features/Project/ProjectSidebar/ProjectSidebar";
import { LeftSidebar } from "./components/LeftSidebar/LeftSidebar";
import { ProjectCreateModal } from "./components/ProjectCreateModal/ProjectCreateModal";
import { AIView } from "./components/AIView/AIView";
import { AIView } from "./features/Chat/AIView/AIView";
import { ErrorBoundary } from "./components/ErrorBoundary/ErrorBoundary";
import {
usePersistedState,
Expand All @@ -29,7 +29,7 @@ import { CommandRegistryProvider, useCommandRegistry } from "./contexts/CommandR
import { useOpenTerminal } from "./hooks/useOpenTerminal";
import type { CommandAction } from "./contexts/CommandRegistryContext";
import { useTheme, type ThemeMode } from "./contexts/ThemeContext";
import { CommandPalette } from "./components/CommandPalette/CommandPalette";
import { CommandPalette } from "./features/CommandPalette/CommandPalette/CommandPalette";
import { buildCoreSources, type BuildSourcesParams } from "./utils/commands/sources";

import { THINKING_LEVELS, type ThinkingLevel } from "@/common/types/thinking";
Expand Down Expand Up @@ -81,7 +81,7 @@ import { FeatureFlagsProvider } from "./contexts/FeatureFlagsContext";
import { ExperimentsProvider } from "./contexts/ExperimentsContext";
import { ProviderOptionsProvider } from "./contexts/ProviderOptionsContext";
import { getWorkspaceSidebarKey } from "./utils/workspace";
import { WindowsToolchainBanner } from "./components/WindowsToolchainBanner/WindowsToolchainBanner";
import { WindowsToolchainBanner } from "./features/AppShell/WindowsToolchainBanner/WindowsToolchainBanner";
import { RosettaBanner } from "./components/RosettaBanner/RosettaBanner";
import { isDesktopMode } from "./hooks/useDesktopTitlebar";
import { cn } from "@/common/lib/utils";
Expand Down
2 changes: 1 addition & 1 deletion src/browser/assets/file-icons/seti-icon-theme.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"This file has been generated from data in https://github.com/jesseweed/seti-ui",
"- icon definitions: https://github.com/jesseweed/seti-ui/blob/master/styles/_fonts/seti.less",
"- icon colors: https://github.com/jesseweed/seti-ui/blob/master/styles/ui-variables.less",
"- file associations: https://github.com/jesseweed/seti-ui/blob/master/styles/components/icons/mapping.less",
"- file associations: https://github.com/jesseweed/seti-ui/tree/master/styles/components/icons",
"If you want to provide a fix or improvement, please create a pull request against the jesseweed/seti-ui repository.",
"Once accepted there, we are happy to receive an update request."
],
Expand Down
123 changes: 0 additions & 123 deletions src/browser/components/AppLoader/AppLoader.auth.test.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion src/browser/components/CopyButton/CopyButton.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useState } from "react";
import { CopyIcon } from "@/browser/components/icons/CopyIcon/CopyIcon";
import { CopyIcon } from "@/browser/components/Icons/CopyIcon/CopyIcon";
import { copyToClipboard } from "@/browser/utils/clipboard";

interface CopyButtonProps {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { cn } from "@/common/lib/utils";
import { GatewayIcon } from "../icons/GatewayIcon/GatewayIcon";
import { GatewayIcon } from "../Icons/GatewayIcon/GatewayIcon";
import { Tooltip, TooltipContent, TooltipTrigger } from "../Tooltip/Tooltip";

interface GatewayToggleButtonProps {
Expand Down
2 changes: 1 addition & 1 deletion src/browser/components/LeftSidebar/LeftSidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react";
import { cn } from "@/common/lib/utils";
import type { FrontendWorkspaceMetadata } from "@/common/types/workspace";
import ProjectSidebar from "../ProjectSidebar/ProjectSidebar";
import ProjectSidebar from "@/browser/features/Project/ProjectSidebar/ProjectSidebar";
import { TitleBar } from "../TitleBar/TitleBar";
import { isDesktopMode } from "@/browser/hooks/useDesktopTitlebar";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
DialogDescription,
DialogFooter,
} from "@/browser/components/Dialog/Dialog";
import { DirectoryPickerModal } from "../DirectoryPickerModal/DirectoryPickerModal";
import { DirectoryPickerModal } from "@/browser/features/Project/DirectoryPickerModal/DirectoryPickerModal";
import { Button } from "@/browser/components/Button/Button";
import {
ToggleGroup,
Expand Down
4 changes: 2 additions & 2 deletions src/browser/components/ProjectPage/ProjectPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import { ThinkingProvider } from "@/browser/contexts/ThinkingContext";
import { ChatInput } from "@/browser/features/ChatInput/index";
import type { ChatInputAPI, WorkspaceCreatedOptions } from "@/browser/features/ChatInput/types";
import { ProjectMCPOverview } from "../ProjectMCPOverview/ProjectMCPOverview";
import { ArchivedWorkspaces } from "../ArchivedWorkspaces/ArchivedWorkspaces";
import { ArchivedWorkspaces } from "@/browser/features/Workspace/ArchivedWorkspaces/ArchivedWorkspaces";
import { useAPI } from "@/browser/contexts/API";
import { isWorkspaceArchived } from "@/common/utils/archive";
import { GitInitBanner } from "../GitInitBanner/GitInitBanner";
import { GitInitBanner } from "@/browser/features/Project/GitInitBanner/GitInitBanner";
import { ConfiguredProvidersBar } from "../ConfiguredProvidersBar/ConfiguredProvidersBar";
import { ConfigureProvidersPrompt } from "../ConfigureProvidersPrompt/ConfigureProvidersPrompt";
import { useProvidersConfig } from "@/browser/hooks/useProvidersConfig";
Expand Down
2 changes: 1 addition & 1 deletion src/browser/components/ProviderIcon/ProviderIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import OllamaIcon from "@/browser/assets/icons/ollama.svg?react";
import DeepSeekIcon from "@/browser/assets/icons/deepseek.svg?react";
import AWSIcon from "@/browser/assets/icons/aws.svg?react";
import GitHubIcon from "@/browser/assets/icons/github.svg?react";
import { GatewayIcon } from "@/browser/components/icons/GatewayIcon/GatewayIcon";
import { GatewayIcon } from "@/browser/components/Icons/GatewayIcon/GatewayIcon";
import {
PROVIDER_DEFINITIONS,
PROVIDER_DISPLAY_NAMES,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
import { Tooltip, TooltipTrigger, TooltipContent } from "@/browser/components/Tooltip/Tooltip";
import { Button } from "@/browser/components/Button/Button";
import { Check, ExternalLink, Link2, Loader2, Trash2 } from "lucide-react";
import { CopyIcon } from "@/browser/components/icons/CopyIcon/CopyIcon";
import { CopyIcon } from "@/browser/components/Icons/CopyIcon/CopyIcon";
import { copyToClipboard } from "@/browser/utils/clipboard";

import {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useRef, useState } from "react";
import { Check, ExternalLink, Loader2, Trash2 } from "lucide-react";

import { CopyIcon } from "@/browser/components/icons/CopyIcon/CopyIcon";
import { CopyIcon } from "@/browser/components/Icons/CopyIcon/CopyIcon";
import { Button } from "@/browser/components/Button/Button";
import { Checkbox } from "@/browser/components/Checkbox/Checkbox";
import {
Expand Down
2 changes: 1 addition & 1 deletion src/browser/components/SkillIndicator/SkillIndicator.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from "react";
import { AlertTriangle, Check, EyeOff, XCircle } from "lucide-react";
import { cn } from "@/common/lib/utils";
import { SkillIcon } from "@/browser/components/icons/SkillIcon/SkillIcon";
import { SkillIcon } from "@/browser/components/Icons/SkillIcon/SkillIcon";
import { HoverClickPopover } from "@/browser/components/HoverClickPopover/HoverClickPopover";
import type {
LoadedSkill,
Expand Down
2 changes: 1 addition & 1 deletion src/browser/components/TitleBar/TitleBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { useEffect, useState } from "react";
import { cn } from "@/common/lib/utils";
import { VERSION } from "@/version";
import { SettingsButton } from "../SettingsButton/SettingsButton";
import { GatewayIcon } from "../icons/GatewayIcon/GatewayIcon";
import { GatewayIcon } from "../Icons/GatewayIcon/GatewayIcon";
import { Button } from "../Button/Button";
import { Tooltip, TooltipTrigger, TooltipContent } from "../Tooltip/Tooltip";
import type { UpdateStatus } from "@/common/orpc/types";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { formatKeybind, KEYBINDS } from "@/browser/utils/ui/keybinds";
import { ArchiveIcon } from "../icons/ArchiveIcon/ArchiveIcon";
import { ArchiveIcon } from "../Icons/ArchiveIcon/ArchiveIcon";
import { GitBranch, Link2, Maximize2, Pencil, Server } from "lucide-react";
import React from "react";

Expand Down
2 changes: 1 addition & 1 deletion src/browser/contexts/PowerModeContext.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { GlobalWindow } from "happy-dom";
import { POWER_MODE_ENABLED_KEY } from "@/common/constants/storage";
import { PowerModeEngine } from "@/browser/utils/powerMode/PowerModeEngine";

void mock.module("@/browser/features/PowerMode/PowerModeOverlay", () => ({
void mock.module("@/browser/components/PowerModeOverlay/PowerModeOverlay", () => ({
// Overlay rendering is unrelated to caret alignment; keep tests focused on context behavior.
PowerModeOverlay: () => null,
}));
Expand Down
2 changes: 1 addition & 1 deletion src/browser/contexts/PowerModeContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {
PowerModeEngine,
type PowerModeBurstKind,
} from "@/browser/utils/powerMode/PowerModeEngine";
import { PowerModeOverlay } from "@/browser/features/PowerMode/PowerModeOverlay";
import { PowerModeOverlay } from "@/browser/components/PowerModeOverlay/PowerModeOverlay";

interface PowerModeContextValue {
enabled: boolean;
Expand Down
2 changes: 1 addition & 1 deletion src/browser/contexts/RouterContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { readPersistedState } from "@/browser/hooks/usePersistedState";
import { MUX_HELP_CHAT_WORKSPACE_ID } from "@/common/constants/muxChat";
import { SELECTED_WORKSPACE_KEY } from "@/common/constants/storage";
import { getProjectRouteId } from "@/common/utils/projectRouteId";
import type { WorkspaceSelection } from "@/browser/components/ProjectSidebar/ProjectSidebar";
import type { WorkspaceSelection } from "@/browser/features/Project/ProjectSidebar/ProjectSidebar";

export interface RouterContext {
navigateToWorkspace: (workspaceId: string) => void;
Expand Down
2 changes: 1 addition & 1 deletion src/browser/contexts/WorkspaceContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
} from "react";
import type { FrontendWorkspaceMetadata } from "@/common/types/workspace";
import type { ThinkingLevel } from "@/common/types/thinking";
import type { WorkspaceSelection } from "@/browser/components/ProjectSidebar/ProjectSidebar";
import type { WorkspaceSelection } from "@/browser/features/Project/ProjectSidebar/ProjectSidebar";
import type { RuntimeConfig } from "@/common/types/runtime";
import type { MuxDeepLinkPayload } from "@/common/types/deepLink";
import { MUX_HELP_CHAT_WORKSPACE_ID } from "@/common/constants/muxChat";
Expand Down
Loading