Files
maka/docs/astryx-surface-file-inventory.md
agent-radar 7be535059e
Dependency audit / audit (push) Canceled after 0s
CI / plan (push) Canceled after 0s
Gitoxide helper admission / macos-latest (push) Canceled after 0s
Gitoxide helper admission / ubuntu-latest (push) Canceled after 0s
Gitoxide helper admission / windows-latest (push) Canceled after 0s
Runtime Host peer admission / quality (push) Canceled after 0s
Windows recovery / windows_recovery (push) Canceled after 0s
CI / heavy (push) Canceled after 0s
CI / test (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 19:05:14 +08:00

46 KiB

Astryx surface file inventory (file-level)

Generated by scripts/generate-astryx-surface-inventory.mjs. Each row is one on-disk product surface file. Regenerated inventory must stay in sync with disk (coverage gate). Generated against @astryxdesign/core@0.5.2 (194 component exports).

Wiki bar: Design Conventions · API Use-the-System · Theming · Container Padding.

Totals: 235 files — blocker 0, reimplementation 0, polish 1, aligned 234.

Exclusions (explicit)

Universe rules

  • Trees: apps/desktop/src/renderer/**, packages/ui/src/**.
  • Included extensions: .tsx (components/pages) and product .css under those trees.
  • Directories skipped: __tests__, stories, locales, astryx-theme, computer-use-overlay (engine).
  • Basename rules below; pure .ts hooks/helpers are outside the universe (UI is inventoried at consumer .tsx).

Excluded paths

Path Why
apps/desktop/src/renderer/main.tsx bundle entry, not a surface

Files

Path Role Astryx used Gap / note Severity
apps/desktop/src/renderer/agent-graph-panel.tsx shell-chrome-or-panel Banner, Button, EmptyState, IconButton, Selector, Spinner aligned — uses Astryx (Banner, Button, EmptyState, IconButton, Selector, Spinner) aligned
apps/desktop/src/renderer/app-shell-chrome-actions.tsx shell-chrome-or-panel Icon, IconButton, Tooltip aligned — uses Astryx (Icon, IconButton, Tooltip) aligned
apps/desktop/src/renderer/app-shell-detail-panel.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/app-shell-overlays.tsx shell-chrome-or-panel Spinner aligned — uses Astryx (Spinner) aligned
apps/desktop/src/renderer/app-shell.tsx shell-chrome-or-panel AppShell, Button aligned — uses Astryx (AppShell, Button) aligned
apps/desktop/src/renderer/app.tsx other Theme aligned — uses Astryx (Theme) aligned
apps/desktop/src/renderer/cascade-layers.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/chat-composer-region.tsx shell-chrome-or-panel Banner, Button aligned — uses Astryx (Banner, Button) aligned
apps/desktop/src/renderer/chat-message-surface.tsx shell-chrome-or-panel Skeleton aligned — uses Astryx (Skeleton) aligned
apps/desktop/src/renderer/chat-recovery-notice.tsx shell-chrome-or-panel Banner, Button aligned — uses Astryx (Banner, Button) aligned
apps/desktop/src/renderer/command-palette.tsx dialog-overlay CommandPalette, CommandPaletteFooter, CommandPaletteInput, EmptyState, Kbd aligned — uses Astryx (CommandPalette, CommandPaletteFooter, CommandPaletteInput, EmptyState, Kbd) aligned
apps/desktop/src/renderer/composer-mentions.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/composition/desktop-feature-services.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/custom-pet-companion.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/error-boundary.tsx other Button, Card aligned — uses Astryx (Button, Card) aligned
apps/desktop/src/renderer/features/goals/services-context.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/goals/ui/goal-dialog.tsx dialog-overlay Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text, TextArea, TextInput, VStack aligned — uses Astryx (Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text) aligned
apps/desktop/src/renderer/features/goals/ui/goal-host.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/goals/ui/goal-provider.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/module-hub/services-context.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/module-hub/ui/module-hub-host.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/runtime-host-management/services-context.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/runtime-host-management/ui/peer-mesh-peer-id-button.tsx other Button aligned — uses Astryx (Button) aligned
apps/desktop/src/renderer/features/runtime-host-management/ui/runtime-host-peer-mesh-dialog.tsx dialog-overlay Badge, Banner, Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, MoreMenu, SegmentedControl, SegmentedControlItem, Selector, Switch, Text, TextArea, TextInput, Tooltip aligned — uses Astryx (Badge, Banner, Button, Dialog, DialogHeader, HStack, Layout, LayoutContent) aligned
apps/desktop/src/renderer/features/runtime-host-management/ui/runtime-host-profile-pairing-actions.tsx other Button, MoreMenu aligned — uses Astryx (Button, MoreMenu) aligned
apps/desktop/src/renderer/features/session-collaboration/services-context.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/session-collaboration/ui/session-collaboration-join-dialog.tsx dialog-overlay Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, List, ListItem, TextArea aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter) aligned
apps/desktop/src/renderer/features/session-navigation/services-context.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/session-navigation/ui/session-navigation-provider.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/task-entry/services-context.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/task-entry/ui/task-entry-host.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/workbar/services-context.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-pane.tsx shell-chrome-or-panel Badge, Banner, Button, EmptyState, MoreMenu aligned — uses Astryx (Badge, Banner, Button, EmptyState, MoreMenu) aligned
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-preview-registry-shell.tsx shell-chrome-or-panel Banner, Button, Spinner aligned — uses Astryx (Banner, Button, Spinner) aligned
apps/desktop/src/renderer/features/workbar/tools/artifacts/artifact-preview.tsx shell-chrome-or-panel Banner, Button, CodeBlock, Spinner aligned — uses Astryx (Banner, Button, CodeBlock, Spinner) aligned
apps/desktop/src/renderer/features/workbar/tools/browser/browser-panel.tsx shell-chrome-or-panel EmptyState, IconButton, TextInput, Toolbar, Tooltip aligned — uses Astryx (EmptyState, IconButton, TextInput, Toolbar, Tooltip) aligned
apps/desktop/src/renderer/features/workbar/tools/inspector/session-inspector-panel.tsx shell-chrome-or-panel Banner, Button, EmptyState, Heading, Section, Text, VStack aligned — uses Astryx (Banner, Button, EmptyState, Heading, Section, Text, VStack) aligned
apps/desktop/src/renderer/features/workbar/tools/review/session-review-panel.tsx shell-chrome-or-panel Banner, Button, Collapsible, CollapsibleGroup, EmptyState, HStack, Section, Skeleton, Text, VStack aligned — uses Astryx (Banner, Button, Collapsible, CollapsibleGroup, EmptyState, HStack, Section, Skeleton) aligned
apps/desktop/src/renderer/features/workbar/tools/side-chat/quote-companion-panel.tsx shell-chrome-or-panel Banner, Spinner aligned — uses Astryx (Banner, Spinner) aligned
apps/desktop/src/renderer/features/workbar/tools/terminal/session-terminal-panel.tsx shell-chrome-or-panel Banner, EmptyState aligned — uses Astryx (Banner, EmptyState) aligned
apps/desktop/src/renderer/features/workbar/ui/side-chat-close-confirmation.tsx shell-chrome-or-panel Button, CheckboxInput, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, Text, VStack aligned — uses Astryx (Button, CheckboxInput, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter) aligned
apps/desktop/src/renderer/features/workbar/ui/workbar-host.tsx shell-chrome-or-panel Card, ResizeHandle, Spinner aligned — uses Astryx (Card, ResizeHandle, Spinner) aligned
apps/desktop/src/renderer/features/workbar/ui/workbar-surface.tsx shell-chrome-or-panel Badge, Button, Card, ContextMenu, Heading, Icon, IconButton, Kbd, List, ListItem, Section, Spinner, Tooltip aligned — uses Astryx (Badge, Button, Card, ContextMenu, Heading, Icon, IconButton, Kbd) aligned
apps/desktop/src/renderer/features/workbar/ui/workbar-toggle.tsx shell-chrome-or-panel Icon, IconButton, Tooltip aligned — uses Astryx (Icon, IconButton, Tooltip) aligned
apps/desktop/src/renderer/keyboard-help.tsx dialog-overlay Dialog, DialogHeader, Heading, Kbd, Layout, LayoutContent aligned — uses Astryx (Dialog, DialogHeader, Heading, Kbd, Layout, LayoutContent) aligned
apps/desktop/src/renderer/live-turn-reconciler.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/maka-tokens.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/mcp-brand-marks.tsx other none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/mcp-page.tsx module-hub Banner, Button, Collapsible, Dialog, DialogHeader, Divider, EmptyState, HStack, Heading, IconButton, Layout, LayoutContent, List, ListItem, MetadataList, MetadataListItem, RadioList, RadioListItem, SegmentedControl, SegmentedControlItem, Selector, Skeleton, StackItem, StatusDot, Switch, Text, TextArea, TextInput, Toolbar, VStack aligned — uses Astryx (Banner, Button, Collapsible, Dialog, DialogHeader, Divider, EmptyState, HStack) aligned
apps/desktop/src/renderer/onboarding-hero.tsx dialog-overlay Banner, Button, Card, Center, Code, HStack, Heading, List, ListItem, Text, VStack aligned — uses Astryx (Banner, Button, Card, Center, Code, HStack, Heading, List) aligned
apps/desktop/src/renderer/plan-mode-panel.tsx shell-chrome-or-panel Badge, Banner, Button, Collapsible aligned — uses Astryx (Badge, Banner, Button, Collapsible) aligned
apps/desktop/src/renderer/reference-shell.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/remote-project-directory-dialog.tsx dialog-overlay Button, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, HStack, Layout, LayoutContent, LayoutFooter, Text aligned — uses Astryx (Button, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, HStack, Layout, LayoutContent) aligned
apps/desktop/src/renderer/session-collaboration-dialog.tsx dialog-overlay Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl, SegmentedControlItem, Text, TextArea aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl) aligned
apps/desktop/src/renderer/session-turn-request-composer.tsx shell-chrome-or-panel Button, Text, TextArea aligned — uses Astryx (Button, Text, TextArea) aligned
apps/desktop/src/renderer/settings/about-settings-page.tsx settings-page Badge, Banner, Button, Kbd, Link, List, ListItem aligned — uses Astryx (Badge, Banner, Button, Kbd, Link, List, ListItem) aligned
apps/desktop/src/renderer/settings/appearance-settings-page.tsx settings-page Button, Grid, HStack, NumberInput, SelectableCard, Switch, Text, VStack aligned — uses Astryx (Button, Grid, HStack, NumberInput, SelectableCard, Switch, Text, VStack) aligned
apps/desktop/src/renderer/settings/bot-chat-detail.tsx settings-module Banner, Button, Card, FormLayout, MetadataList, MetadataListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Switch, Text, TextArea, TextInput, VStack aligned — uses Astryx (Banner, Button, Card, FormLayout, MetadataList, MetadataListItem, SegmentedControl, SegmentedControlItem) aligned
apps/desktop/src/renderer/settings/bot-chat-overview.tsx settings-module Banner, Button, EmptyState, Item, StatusDot aligned — uses Astryx (Banner, Button, EmptyState, Item, StatusDot) aligned
apps/desktop/src/renderer/settings/bot-chat-settings-page.tsx settings-page none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/bot-chat-shared.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/bot-onboarding-modal.tsx settings-page Button, Dialog, DialogHeader, Layout, LayoutContent, Spinner aligned — uses Astryx (Button, Dialog, DialogHeader, Layout, LayoutContent, Spinner) aligned
apps/desktop/src/renderer/settings/bot-wechat-login.tsx settings-module Banner, Button, Collapsible, Dialog, DialogHeader, EmptyState, FormLayout, Layout, LayoutContent, Spinner, TextInput aligned — uses Astryx (Banner, Button, Collapsible, Dialog, DialogHeader, EmptyState, FormLayout, Layout) aligned
apps/desktop/src/renderer/settings/custom-pet-settings-section.tsx settings-module Badge, Button, EmptyState aligned — uses Astryx (Badge, Button, EmptyState) aligned
apps/desktop/src/renderer/settings/daily-review-settings-page.tsx settings-page Banner, Selector, Switch, TextInput aligned — uses Astryx (Banner, Selector, Switch, TextInput) aligned
apps/desktop/src/renderer/settings/data-settings-page.tsx settings-page Banner, Button, Selector, Switch aligned — uses Astryx (Banner, Button, Selector, Switch) aligned
apps/desktop/src/renderer/settings/general-settings-page.tsx settings-page Banner, Button, FormLayout, NumberInput, Selector, Switch, TextInput aligned — uses Astryx (Banner, Button, FormLayout, NumberInput, Selector, Switch, TextInput) aligned
apps/desktop/src/renderer/settings/health-center-page.tsx settings-page Banner, Button, StatusDot, Text, VStack aligned — uses Astryx (Banner, Button, StatusDot, Text, VStack) aligned
apps/desktop/src/renderer/settings/import-tasks-settings-page.tsx settings-page Banner, Button, CheckboxInput, EmptyState, HStack, List, ListItem, SegmentedControl, SegmentedControlItem, Spinner, TextInput, VStack aligned — uses Astryx (Banner, Button, CheckboxInput, EmptyState, HStack, List, ListItem, SegmentedControl) aligned
apps/desktop/src/renderer/settings/memory-entry-list.tsx settings-module Button, EmptyState, MoreMenu aligned — uses Astryx (Button, EmptyState, MoreMenu) aligned
apps/desktop/src/renderer/settings/memory-settings-page.tsx settings-page Banner, Button, EmptyState, FormLayout, MoreMenu, StatusDot, Switch, TextArea, TextInput aligned — uses Astryx (Banner, Button, EmptyState, FormLayout, MoreMenu, StatusDot, Switch, TextArea) aligned
apps/desktop/src/renderer/settings/memory-settings-sections.tsx settings-module Button aligned — uses Astryx (Button) aligned
apps/desktop/src/renderer/settings/password-input.tsx settings-module IconButton, InputGroup, InputGroupText, TextInput aligned — uses Astryx (IconButton, InputGroup, InputGroupText, TextInput) aligned
apps/desktop/src/renderer/settings/permission-center-page.tsx settings-page Banner, Button, Collapsible, CollapsibleGroup, HStack, List, ListItem, MetadataList, MetadataListItem, StatusDot, Text, VStack aligned — uses Astryx (Banner, Button, Collapsible, CollapsibleGroup, HStack, List, ListItem, MetadataList) aligned
apps/desktop/src/renderer/settings/personalization-settings-section.tsx settings-module SegmentedControl, SegmentedControlItem, TextArea, TextInput aligned — uses Astryx (SegmentedControl, SegmentedControlItem, TextArea, TextInput) aligned
apps/desktop/src/renderer/settings/projects-settings-page.tsx settings-page Badge, Banner, Button, EmptyState, HStack, List, ListItem, MoreMenu, TextInput aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, List, ListItem, MoreMenu) aligned
apps/desktop/src/renderer/settings/provider-add-form.tsx settings-module Banner, Button, Collapsible, FormLayout, HStack, TextInput, VStack aligned — uses Astryx (Banner, Button, Collapsible, FormLayout, HStack, TextInput, VStack) aligned
apps/desktop/src/renderer/settings/provider-add-model-dialog.tsx settings-module Button, Dialog, DialogHeader, FormLayout, HStack, Layout, LayoutContent, LayoutFooter, NumberInput, TextInput aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, HStack, Layout, LayoutContent, LayoutFooter) aligned
apps/desktop/src/renderer/settings/provider-brand-marks.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/provider-catalog-page.tsx settings-page Banner, Button, EmptyState, HStack, List, ListItem, Section, Selector, TextInput, VStack aligned — uses Astryx (Banner, Button, EmptyState, HStack, List, ListItem, Section, Selector) aligned
apps/desktop/src/renderer/settings/provider-connection-detail.tsx settings-module Banner, Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, Grid, HStack, Heading, Link, NumberInput, Selector, Text, TextInput, VStack aligned — uses Astryx (Banner, Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, Grid, HStack, Heading) aligned
apps/desktop/src/renderer/settings/provider-display.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/provider-enabled-model-manager.tsx settings-module MultiSelector aligned — uses Astryx (MultiSelector) aligned
apps/desktop/src/renderer/settings/provider-oauth-section.tsx settings-module Banner, Button, HStack, Text, VStack aligned — uses Astryx (Banner, Button, HStack, Text, VStack) aligned
apps/desktop/src/renderer/settings/providers-panel.tsx settings-module Badge, Banner, Button, EmptyState, HStack, Heading, List, ListItem, Skeleton, StatusDot, Text, VStack aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, Heading, List, ListItem) aligned
apps/desktop/src/renderer/settings/request-customization-editor.tsx settings-module Button, HStack, IconButton, Text, TextArea, TextInput, VStack aligned — uses Astryx (Button, HStack, IconButton, Text, TextArea, TextInput, VStack) aligned
apps/desktop/src/renderer/settings/runtime-host-connection-code-dialog.tsx settings-module Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, TextArea aligned — uses Astryx (Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, TextArea) aligned
apps/desktop/src/renderer/settings/runtime-host-interaction-boundary.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/runtime-host-management-dialog.tsx settings-module Badge, Banner, Button, Dialog, DialogHeader, IconButton, Layout, LayoutContent, LayoutFooter, MoreMenu, Selector, Spinner, Switch, Text, TextInput, Tooltip aligned — uses Astryx (Badge, Banner, Button, Dialog, DialogHeader, IconButton, Layout, LayoutContent) aligned
apps/desktop/src/renderer/settings/runtime-host-onboarding-dialog.tsx settings-module Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter, SegmentedControl, SegmentedControlItem, Selector, Spinner, Text, TextInput aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, FormLayout, Layout, LayoutContent, LayoutFooter) aligned
apps/desktop/src/renderer/settings/runtime-host-profiles-section.tsx settings-module Badge, Banner, Button, HStack, List, ListItem, MoreMenu, SegmentedControl, SegmentedControlItem, Selector, Switch, TextInput, Tooltip aligned — uses Astryx (Badge, Banner, Button, HStack, List, ListItem, MoreMenu, SegmentedControl) aligned
apps/desktop/src/renderer/settings/runtime-host-project-directory-editor.tsx settings-module Button, TextInput aligned — uses Astryx (Button, TextInput) aligned
apps/desktop/src/renderer/settings/runtime-host-settings-target.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/runtime-host-ssh-terminal-dialog.tsx settings-module Banner, Button, Dialog, DialogHeader, Layout, LayoutContent, LayoutFooter aligned — uses Astryx (Banner, Button, Dialog, DialogHeader, Layout, LayoutContent, LayoutFooter) aligned
apps/desktop/src/renderer/settings/settings-expandable-row.tsx settings-module Button, HStack, Text aligned — uses Astryx (Button, HStack, Text) aligned
apps/desktop/src/renderer/settings/settings-metric-card.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/settings-modal.tsx settings-page none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/settings-route-header.tsx settings-module HStack, Heading, IconButton, Text, Toolbar, VStack aligned — uses Astryx (HStack, Heading, IconButton, Text, Toolbar, VStack) aligned
apps/desktop/src/renderer/settings/settings-rows.tsx settings-module none aligned — no raw controls; no Astryx JSX usage aligned
apps/desktop/src/renderer/settings/settings-section.tsx settings-module Divider, HStack, Heading, Item, Text, VStack aligned — uses Astryx (Divider, HStack, Heading, Item, Text, VStack) aligned
apps/desktop/src/renderer/settings/settings-skeleton.tsx settings-module Skeleton aligned — uses Astryx (Skeleton) aligned
apps/desktop/src/renderer/settings/settings-status-summary-filter.tsx settings-module Button aligned — uses Astryx (Button) aligned
apps/desktop/src/renderer/settings/settings-surface.tsx settings-module Badge, Banner, Button, IconButton, Layout, LayoutContent, LayoutHeader, LayoutPanel, Selector, SideNav, SideNavItem, SideNavSection aligned — uses Astryx (Badge, Banner, Button, IconButton, Layout, LayoutContent, LayoutHeader, LayoutPanel) aligned
apps/desktop/src/renderer/settings/subagent-settings-page.tsx settings-page Badge, Banner, Button, EmptyState, HStack, IconButton, Selector, Switch, TextArea, TextInput, VStack aligned — uses Astryx (Badge, Banner, Button, EmptyState, HStack, IconButton, Selector, Switch) aligned
apps/desktop/src/renderer/settings/tasks-settings-page.tsx settings-page Button, EmptyState, HStack, List, ListItem, MoreMenu, StackItem, TextInput aligned — uses Astryx (Button, EmptyState, HStack, List, ListItem, MoreMenu, StackItem, TextInput) aligned
apps/desktop/src/renderer/settings/usage-settings-page.tsx settings-page Banner, Button, Card, EmptyState, SegmentedControl, SegmentedControlItem, Selector, Switch, Tab, TabList, Table, TextInput, Tooltip aligned — uses Astryx (Banner, Button, Card, EmptyState, SegmentedControl, SegmentedControlItem, Selector, Switch) aligned
apps/desktop/src/renderer/settings/web-search-settings-page.tsx settings-page Banner, Button, EmptyState, Link, Selector, StatusDot, Switch, TextInput aligned — uses Astryx (Banner, Button, EmptyState, Link, Selector, StatusDot, Switch, TextInput) aligned
apps/desktop/src/renderer/styles.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/agent-graph.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/astryx-mount.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/base.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/chat-detail.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/chat-header.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/chat-message.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/composer-mention.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/composer.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/custom-pet-companion.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/daily-review.css module-hub n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/deep-research.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/error.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/help.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/hero.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/interaction-prompts.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/model-switcher.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages/capability-audit.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages/mcp.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages/module-shell.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages/scheduled-tasks.css module-hub n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/module-pages/skills.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/native-cursor.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/onboarding.css dialog-overlay n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/palette.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/plan-mode.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/prompt-rail.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/prompt-suggestions.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/quote-side-panel.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/search-modal.css dialog-overlay n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/about.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/bot.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/connection.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/form.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/health.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/memory.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/models.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/nav-sidebar.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/permission.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/provider-editor.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/route.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/rows.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/runtime-host.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/select.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/theme-preview.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/usage.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/web-search.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/settings/wechat.css settings-module n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/shell-layout.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/sidebar.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/task-ledger.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/theme-glass.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/work-board.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/artifacts.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/browser.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/inspector.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/review.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/shell.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/side-chat.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workbar/terminal.css shell-chrome-or-panel n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/styles/workhub.css styles n/a (css) aligned — no off-rhythm control heights flagged aligned
apps/desktop/src/renderer/work-board-panel.tsx shell-chrome-or-panel Banner, Button, EmptyState, Spinner, TextInput aligned — uses Astryx (Banner, Button, EmptyState, Spinner, TextInput) aligned
apps/desktop/src/renderer/workhub-surface.tsx other Button, ChatMessage, ChatMessageBubble, ChatMessageList, Skeleton aligned — uses Astryx (Button, ChatMessage, ChatMessageBubble, ChatMessageList, Skeleton) aligned
packages/ui/src/astryx-chat-reasoning.tsx shell-chrome-or-panel Icon aligned — uses Astryx (Icon) aligned
packages/ui/src/astryx-i18n.tsx ui-composition InternationalizationProvider aligned — uses Astryx (InternationalizationProvider) aligned
packages/ui/src/attachment-image.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/attachment-kinds.tsx ui-composition Icon aligned — uses Astryx (Icon) aligned
packages/ui/src/bot-brand-logo.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/capability-audit-strip.tsx ui-composition Banner aligned — uses Astryx (Banner) aligned
packages/ui/src/chat-empty-hero.tsx shell-chrome-or-panel Item aligned — uses Astryx (Item) aligned
packages/ui/src/chat-model-switcher.tsx shell-chrome-or-panel Button, DropdownMenu, DropdownMenuItem aligned — uses Astryx (Button, DropdownMenu, DropdownMenuItem) aligned
packages/ui/src/chat-surface-layout.tsx shell-chrome-or-panel ChatLayout aligned — uses Astryx (ChatLayout) aligned
packages/ui/src/chat-turn.tsx shell-chrome-or-panel Badge, Banner, Button, ChatMessage, ChatMessageBubble, ChatMessageMetadata, ChatSystemMessage, ChatTokenizedText, HStack, IconButton, Spinner, Thumbnail, Timestamp, Token, Tooltip aligned — uses Astryx (Badge, Banner, Button, ChatMessage, ChatMessageBubble, ChatMessageMetadata, ChatSystemMessage, ChatTokenizedText) aligned
packages/ui/src/chat-view.tsx shell-chrome-or-panel Button, ButtonGroup, ChatMessageList, EmptyState, HStack, Spinner, Text aligned — uses Astryx (Button, ButtonGroup, ChatMessageList, EmptyState, HStack, Spinner, Text) aligned
packages/ui/src/client-capability-prompt.tsx ui-composition Button aligned — uses Astryx (Button) aligned
packages/ui/src/components.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/composer-message-queue.tsx shell-chrome-or-panel Button, IconButton, List, ListItem raw <textarea (API Use-the-System) polish
packages/ui/src/composer.tsx shell-chrome-or-panel Button, ChatComposer, ChatComposerDrawer, ChatComposerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuDivider, DropdownMenuItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, IconButton, Lightbox, Token, Tooltip aligned — uses Astryx (Button, ChatComposer, ChatComposerDrawer, ChatComposerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuDivider, DropdownMenuItem) aligned
packages/ui/src/daily-review-panel.tsx module-hub Banner, Button, Divider, EmptyState, HStack, Heading, List, ListItem, SegmentedControl, SegmentedControlItem, Skeleton, StackItem, Text, Toolbar, VStack aligned — uses Astryx (Banner, Button, Divider, EmptyState, HStack, Heading, List, ListItem) aligned
packages/ui/src/directory-reference-chip.tsx ui-composition Token, Tooltip aligned — uses Astryx (Token, Tooltip) aligned
packages/ui/src/icons.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/inline-reference.tsx ui-composition ChatTokenizedText aligned — uses Astryx (ChatTokenizedText) aligned
packages/ui/src/inline-rename-input.tsx ui-composition TextInput aligned — uses Astryx (TextInput) aligned
packages/ui/src/locale-context.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/maka-wordmark.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/markdown-body.tsx ui-composition CodeBlock, Link, Markdown aligned — uses Astryx (CodeBlock, Link, Markdown) aligned
packages/ui/src/markdown-math.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/markdown.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/mermaid-diagram.tsx ui-composition Button, CodeBlock, Collapsible, Dialog, IconButton, Toolbar aligned — uses Astryx (Button, CodeBlock, Collapsible, Dialog, IconButton, Toolbar) aligned
packages/ui/src/model-picker.tsx ui-composition Selector, SelectorOption aligned — uses Astryx (Selector, SelectorOption) aligned
packages/ui/src/module-hub-selector.tsx ui-composition Tab, TabList aligned — uses Astryx (Tab, TabList) aligned
packages/ui/src/module-pages.tsx ui-composition EmptyState, Spinner aligned — uses Astryx (EmptyState, Spinner) aligned
packages/ui/src/permission-mode-menu.tsx ui-composition DropdownMenu, DropdownMenuRadioGroup, DropdownMenuRadioItem, Selector, SelectorOption aligned — uses Astryx (DropdownMenu, DropdownMenuRadioGroup, DropdownMenuRadioItem, Selector, SelectorOption) aligned
packages/ui/src/primitives/chat.tsx primitive none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/primitives/module-page.tsx primitive Dialog, DialogHeader, HStack, Heading, Layout, LayoutContent, LayoutHeader, LayoutPanel, ResizeHandle, StackItem, Text, VStack aligned — uses Astryx (Dialog, DialogHeader, HStack, Heading, Layout, LayoutContent, LayoutHeader, LayoutPanel) aligned
packages/ui/src/primitives/page-header.tsx primitive none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/primitives/stat-tile.tsx primitive none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/prompt-anchor-rail.tsx ui-composition Button, HoverCard aligned — uses Astryx (Button, HoverCard) aligned
packages/ui/src/quote-ref-chip.tsx ui-composition Button, IconButton aligned — uses Astryx (Button, IconButton) aligned
packages/ui/src/relative-time.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/sandbox-boundary-prompt.tsx ui-composition Button aligned — uses Astryx (Button) aligned
packages/ui/src/scheduled-task-form-dialog.tsx module-hub Button, DateTimeInput, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, FormLayout, HStack, Layout, LayoutContent, LayoutFooter, Selector, Text, TextArea, TextInput aligned — uses Astryx (Button, DateTimeInput, Dialog, DialogHeader, DropdownMenu, DropdownMenuItem, FormLayout, HStack) aligned
packages/ui/src/scheduled-task-inspector.tsx module-hub Button, Divider, HStack, Heading, List, ListItem, MetadataList, MetadataListItem, StackItem, StatusDot, Switch, Text, VStack aligned — uses Astryx (Button, Divider, HStack, Heading, List, ListItem, MetadataList, MetadataListItem) aligned
packages/ui/src/scheduled-task-panel.tsx module-hub Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuItem, EmptyState, List, ListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Text, TextInput, Toolbar aligned — uses Astryx (Button, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuItem, EmptyState, List, ListItem) aligned
packages/ui/src/search-modal.tsx dialog-overlay CommandPalette, CommandPaletteFooter, CommandPaletteInput aligned — uses Astryx (CommandPalette, CommandPaletteFooter, CommandPaletteInput) aligned
packages/ui/src/session-context-layer.tsx shell-chrome-or-panel BreadcrumbItem, Breadcrumbs, ButtonGroup, Icon, IconButton, LayoutHeader, MoreMenu, OverflowList, StatusDot, Text, Token, Tooltip aligned — uses Astryx (BreadcrumbItem, Breadcrumbs, ButtonGroup, Icon, IconButton, LayoutHeader, MoreMenu, OverflowList) aligned
packages/ui/src/session-history-list.tsx shell-chrome-or-panel Badge, CheckboxInput, MoreMenu, SideNavItem, SideNavSection, StatusDot, VStack aligned — uses Astryx (Badge, CheckboxInput, MoreMenu, SideNavItem, SideNavSection, StatusDot, VStack) aligned
packages/ui/src/session-list-panel.tsx shell-chrome-or-panel SegmentedControl, SegmentedControlItem, SideNav aligned — uses Astryx (SegmentedControl, SegmentedControlItem, SideNav) aligned
packages/ui/src/session-rail-context.tsx shell-chrome-or-panel none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/session-rename-dialog.tsx dialog-overlay Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, TextInput aligned — uses Astryx (Button, Dialog, DialogHeader, HStack, Layout, LayoutContent, LayoutFooter, TextInput) aligned
packages/ui/src/session-selection-bar.tsx shell-chrome-or-panel Button, CheckboxInput aligned — uses Astryx (Button, CheckboxInput) aligned
packages/ui/src/session-sidebar-nav.tsx shell-chrome-or-panel Icon, IconButton, SideNavItem, SideNavSection, Tooltip aligned — uses Astryx (Icon, IconButton, SideNavItem, SideNavSection, Tooltip) aligned
packages/ui/src/session-todo-panel.tsx shell-chrome-or-panel Banner, EmptyState, IconButton, Spinner aligned — uses Astryx (Banner, EmptyState, IconButton, Spinner) aligned
packages/ui/src/skill-inspector.tsx shell-chrome-or-panel Button, Divider, HStack, Heading, MetadataList, MetadataListItem, StackItem, StatusDot, Switch, Text, VStack aligned — uses Astryx (Button, Divider, HStack, Heading, MetadataList, MetadataListItem, StackItem, StatusDot) aligned
packages/ui/src/skills-panel.tsx module-hub Button, DropdownMenu, DropdownMenuItem, EmptyState, IconButton, List, ListItem, SegmentedControl, SegmentedControlItem, Selector, StatusDot, Text, TextInput, Toolbar aligned — uses Astryx (Button, DropdownMenu, DropdownMenuItem, EmptyState, IconButton, List, ListItem, SegmentedControl) aligned
packages/ui/src/styles.css ui-composition n/a (css) aligned — no off-rhythm control heights flagged aligned
packages/ui/src/titlebar-session-identity.tsx shell-chrome-or-panel BreadcrumbItem, Breadcrumbs, Icon, IconButton, Tooltip aligned — uses Astryx (BreadcrumbItem, Breadcrumbs, Icon, IconButton, Tooltip) aligned
packages/ui/src/toast.tsx ui-composition AlertDialog, Button, HStack, LayerProvider, Text, VStack aligned — uses Astryx (AlertDialog, Button, HStack, LayerProvider, Text, VStack) aligned
packages/ui/src/tool-activity.tsx ui-composition Banner, Button, ChatToolCalls, List, ListItem, StatusDot, Text, VisuallyHidden aligned — uses Astryx (Banner, Button, ChatToolCalls, List, ListItem, StatusDot, Text, VisuallyHidden) aligned
packages/ui/src/tool-activity/diff-code-preview.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/tool-activity/tool-code-block.tsx ui-composition CodeBlock aligned — uses Astryx (CodeBlock) aligned
packages/ui/src/tool-activity/tool-result-preview.tsx ui-composition Button, Link aligned — uses Astryx (Button, Link) aligned
packages/ui/src/transcript-scroll-authority.tsx ui-composition ChatLayoutScrollButton aligned — uses Astryx (ChatLayoutScrollButton) aligned
packages/ui/src/ui.tsx ui-composition none aligned — no raw controls; no Astryx JSX usage aligned
packages/ui/src/user-question-prompt.tsx ui-composition Button, RadioList, RadioListItem, TextInput aligned — uses Astryx (Button, RadioList, RadioListItem, TextInput) aligned
packages/ui/src/workspace-picker.tsx ui-composition DropdownMenu, DropdownMenuItem aligned — uses Astryx (DropdownMenu, DropdownMenuItem) aligned

Severity legend

  • blocker — raw interactive control with an Astryx twin available (button/input/select).
  • reimplementation — a public @maka/ui export shadows a shipped Astryx component (same name, not a re-export). A neutral signal for review, not proof of a semantic re-implementation.
  • polish — off-rhythm control heights or softer smells; not wrong primitive choice.
  • aligned — no blocker smell found; Astryx usage noted when present.