• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
Build has been canceled!

agentic-dev-library / thumbcode / 21935232238

12 Feb 2026 05:49AM UTC coverage: 64.742% (+10.4%) from 54.37%
21935232238

push

github

web-flow
refactor: decompose 8 large files into focused components (#127)

* refactor(project): decompose project detail screen into extracted components

Extract ProjectHeader, ProjectFileExplorer, ProjectCommits, ProjectTasks,
and ProjectAgents from app/project/[id].tsx into src/components/project/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(onboarding): decompose create-project screen into RepoSelector and ProjectForm

Extract RepoSelector and ProjectForm (Header + Actions) from
app/(onboarding)/create-project.tsx into src/components/onboarding/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(settings): extract CredentialItem and ApiKeyInput from credentials screen

Move CredentialItem and ApiKeyInput components into
src/components/settings/CredentialSection.tsx for reuse.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(agents): decompose agent detail screen into AgentMetrics, AgentHistory, AgentActions

Extract reusable agent components from app/agent/[id].tsx into
src/components/agents/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(settings): extract SettingsItem and SettingsSection from settings screen

Move SettingsItem and SettingsSection into src/components/settings/
for reuse across settings-related screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(onboarding): extract DeviceCodeDisplay and PollingStatus from github-auth screen

Move auth UI components into src/components/onboarding/ for reuse.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(ai): extract StreamParser from openai-client into openai-stream-parser

Move stream chunk processing and result assembly logic into a
dedicated openai-stream-parser module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(code): extract TreeNode from FileTree, extract openai-helpers

Move TreeNode rendering logic into src/components/code/TreeNode.tsx.
Ex... (continued)

1379 of 2375 branches covered (58.06%)

Branch coverage included in aggregate %.

55 of 103 new or added lines in 19 files covered. (53.4%)

5 existing lines in 2 files now uncovered.

2253 of 3235 relevant lines covered (69.64%)

22.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/src/components/project/ProjectFileExplorer.tsx
1
/**
2
 * ProjectFileExplorer
3
 *
4
 * Displays a file tree for the project's local working directory.
5
 */
6

7
import { View } from 'react-native';
8
import { FileTree, type FileNode as FileTreeNode } from '@/components/code';
9
import { Badge } from '@/components/display';
10
import { HStack, VStack } from '@/components/layout';
11
import { Text } from '@/components/ui';
12
import { organicBorderRadius } from '@/lib/organic-styles';
13

14
interface ProjectFileExplorerProps {
15
  fileNodes: FileTreeNode[];
16
  isLoading: boolean;
17
  selectedFile: string | null;
18
  onSelectFile: (path: string) => void;
19
}
20

21
export function ProjectFileExplorer({
22
  fileNodes,
23
  isLoading,
24
  selectedFile,
25
  onSelectFile,
26
}: Readonly<ProjectFileExplorerProps>) {
27
  return (
4✔
28
    <VStack spacing="md">
29
      <View className="bg-surface p-4" style={organicBorderRadius.card}>
30
        <HStack justify="between" align="center" className="mb-3">
31
          <Text weight="semibold" className="text-white">
32
            Files
33
          </Text>
34
          {selectedFile && <Badge variant="secondary">Selected</Badge>}
4!
35
        </HStack>
36

37
        {isLoading ? (
4✔
38
          <Text className="text-neutral-500">Loading files…</Text>
39
        ) : (
40
          <FileTree
41
            data={fileNodes}
42
            selectedPath={selectedFile || undefined}
4✔
NEW
43
            onSelectFile={(path) => onSelectFile(path)}
×
44
            showStatus={false}
45
          />
46
        )}
47
      </View>
48
    </VStack>
49
  );
50
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc