• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agentic-dev-library / thumbcode / 21961208242

12 Feb 2026 07:29PM UTC coverage: 51.569% (-13.4%) from 64.947%
21961208242

push

github

web-flow
feat: complete Expo → Capacitor/Vite migration (#130)

## Summary

Full framework migration from Expo/React Native to Vite + Capacitor + React Router:

- **Framework**: Expo SDK 52 → Vite 6 + Capacitor 7
- **Routing**: expo-router → react-router-dom v7
- **Styling**: NativeWind → Tailwind CSS v4
- **Testing**: Jest → Vitest + @testing-library/react
- **Components**: React Native primitives → HTML/JSX (View→div, Text→span, etc.)
- **Build**: Metro bundler → Vite with HMR

### Key changes
- Removed all React Native and Expo dependencies
- Migrated 50+ components from RN to web HTML/JSX
- Rewrote 70 test files (844 tests passing)
- Replaced deploy-gh-pages.yml: Astro docs → Vite static site deployment
- Added android-release.yml: per-architecture debug APKs on GitHub releases
- Added ABI splits to build.gradle (armeabi-v7a, arm64-v8a, x86_64, universal)
- Fixed all biome lint, TypeScript, and E2E test issues
- Deleted dead `app/` directory (old Expo Router screens)

### CI Status
All critical checks passing: Lint & Type Check, Run Tests (844 passing), Build Web, Build Web + Capacitor Sync, E2E Tests (Web), Security Scan, CodeQL, Validate PR.

1329 of 2944 branches covered (45.14%)

Branch coverage included in aggregate %.

138 of 866 new or added lines in 82 files covered. (15.94%)

120 existing lines in 23 files now uncovered.

2188 of 3876 relevant lines covered (56.45%)

9.8 hits per line

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

0.0
/src/components/project/ProjectHeader.tsx
1
/**
2
 * ProjectHeader
3
 *
4
 * Displays project repo URL, branch badge, active agents, and pending tasks.
5
 */
6

7
import { Badge } from '@/components/display';
8
import { Container, HStack, VStack } from '@/components/layout';
9
import { Text } from '@/components/ui';
10

11
interface ProjectHeaderProps {
12
  repoUrl: string;
13
  currentBranch: string;
14
  defaultBranch: string;
15
  activeAgents: number;
16
  pendingTasks: number;
17
  errorMessage: string | null;
18
}
19

20
export function ProjectHeader({
21
  repoUrl,
22
  currentBranch,
23
  defaultBranch,
24
  activeAgents,
25
  pendingTasks,
26
  errorMessage,
27
}: Readonly<ProjectHeaderProps>) {
UNCOV
28
  return (
×
29
    <Container padding="md" className="border-b border-neutral-800">
30
      <VStack spacing="sm">
31
        <Text size="sm" className="text-neutral-400" numberOfLines={1}>
32
          {repoUrl}
33
        </Text>
34

35
        <HStack spacing="sm" align="center">
36
          <Badge variant="secondary">{currentBranch || defaultBranch}</Badge>
×
37
          <Badge variant="success">{`${activeAgents} agents`}</Badge>
38
          <Badge variant="warning">{`${pendingTasks} tasks`}</Badge>
39
        </HStack>
40

41
        {errorMessage && (
×
42
          <Text size="sm" className="text-coral-400">
43
            {errorMessage}
44
          </Text>
45
        )}
46
      </VStack>
47
    </Container>
48
  );
49
}
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