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

agentic-dev-library / thumbcode / 22048822560

16 Feb 2026 03:11AM UTC coverage: 55.51%. First build
22048822560

Pull #145

github

claude
fix: resolve all test failures, lint errors, and formatting issues

- Fix biometric auth: authenticateWithBiometrics now returns
  'Biometric authentication failed' instead of raw error codes
  (fixes 2 test failures in KeyStorage + auth-flow integration)
- Extract parseDiff to separate module for proper vi.spyOn interception
  (fixes DiffViewer memoization perf test)
- Fix 3 lint errors: replace role="status" spans with <output> elements
  in AgentDetail and chat.tsx; remove unused catch binding in api-keys
- Fix useExhaustiveDependencies warning in FileTree.tsx
- Apply biome formatting fixes across onboarding and home pages

893/893 tests pass. Typecheck clean. Lint 0 errors. Build clean.

https://claude.ai/code/session_01PQd4hGQQpmGTgpHc7kGjAE
Pull Request #145: fix: resolve all test failures, lint errors, and formatting issues

1543 of 3156 branches covered (48.89%)

Branch coverage included in aggregate %.

34 of 40 new or added lines in 2 files covered. (85.0%)

2497 of 4122 relevant lines covered (60.58%)

40.28 hits per line

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

89.66
/src/components/code/parse-diff.ts
1
export interface DiffLine {
2
  type: 'add' | 'remove' | 'context';
3
  content: string;
4
  oldLineNumber?: number;
5
  newLineNumber?: number;
6
}
7

8
export function parseDiff(oldContent: string, newContent: string): DiffLine[] {
9
  const oldLines = oldContent.split('\n');
4✔
10
  const newLines = newContent.split('\n');
4✔
11
  const result: DiffLine[] = [];
4✔
12
  let oldIndex = 0;
4✔
13
  let newIndex = 0;
4✔
14
  while (oldIndex < oldLines.length || newIndex < newLines.length) {
4✔
15
    if (oldIndex >= oldLines.length) {
5,108✔
16
      result.push({ type: 'add', content: newLines[newIndex], newLineNumber: newIndex + 1 });
2✔
17
      newIndex++;
2✔
18
    } else if (newIndex >= newLines.length) {
5,106!
NEW
19
      result.push({ type: 'remove', content: oldLines[oldIndex], oldLineNumber: oldIndex + 1 });
×
NEW
20
      oldIndex++;
×
21
    } else if (oldLines[oldIndex] === newLines[newIndex]) {
5,106✔
22
      result.push({
4✔
23
        type: 'context',
24
        content: oldLines[oldIndex],
25
        oldLineNumber: oldIndex + 1,
26
        newLineNumber: newIndex + 1,
27
      });
28
      oldIndex++;
4✔
29
      newIndex++;
4✔
30
    } else {
31
      result.push({ type: 'remove', content: oldLines[oldIndex], oldLineNumber: oldIndex + 1 });
5,102✔
32
      result.push({ type: 'add', content: newLines[newIndex], newLineNumber: newIndex + 1 });
5,102✔
33
      oldIndex++;
5,102✔
34
      newIndex++;
5,102✔
35
    }
36
  }
37
  return result;
4✔
38
}
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