email-ai-tools

104 releases measured. Default branch at 239dcbed, 2026-10-19, 9 files.

Source lines
1,295
-10.8% in a year
Maintainability index
48.5
+12.4 in a year
Mean CC per function
4.41
Functions with CC > 20
4
of 108
Size

Lines of code, comments and blank lines left out

Maintainability index

Mean over functions, weighted by their lines. Higher is better

Cyclomatic complexity per function

Lower is better

Hard to maintain

Share of functions, and of function code, past the usual limits. Lower is better

Least maintainable functions now

Function Location MI CC Lines
generateSummary lib/generate-summary.js:472 21.9 40 130
apiRequest lib/api-request.js:115 30.5 27 74
collectSignals lib/signals.js:213 34.0 25 55
buildInput lib/generate-summary.js:207 38.9 19 42
isHiddenStyle lib/visible-text.js:37 39.5 21 43
normalizeResult lib/generate-summary.js:338 40.5 12 41
splitResinfo lib/authentication.js:13 41.5 13 41
parseAuthenticationResults lib/authentication.js:66 44.0 10 32
requestChat lib/generate-summary.js:390 44.8 9 30
listModels lib/list-models.js:116 47.7 7 26
fitPrompt lib/token-estimate.js:115 47.9 6 24
applySignals lib/signals.js:305 48.8 8 21
<anonymous> lib/visible-text.js:103 49.4 7 24
readBody lib/api-request.js:58 51.4 6 19
getRetryAfter lib/api-request.js:37 51.9 7 18
Every measured release 104
Release Date Files Source lines Functions MI Mean CC P90 CC Max CC CC > 10 CC > 20
v2.2.8 2026-10-19 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.7 2026-10-18 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.6 2026-10-18 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.5 2026-10-16 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.4 2026-10-16 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.3 2026-10-16 9 1,295 108 48.5 4.41 8 40 7 4
v2.2.2 2026-10-14 9 1,241 105 48.6 4.40 7 39 7 4
v2.2.1 2026-10-04 9 1,241 105 48.6 4.40 7 39 7 4
v2.2.0 2026-10-01 9 1,241 105 48.6 4.40 7 39 7 4
v2.1.0 2026-10-01 6 700 53 47.4 4.83 9 34 4 2
v2.0.0 2026-10-01 6 683 53 47.4 4.83 9 34 4 2
v1.14.14 2026-09-30 9 1,410 76 41.2 5.42 10 35 7 6
v1.14.13 2026-09-28 9 1,410 76 41.2 5.42 10 35 7 6
v1.14.12 2026-09-28 9 1,410 76 41.2 5.42 10 35 7 6
v1.14.11 2026-09-28 9 1,410 76 41.2 5.42 10 35 7 6
v1.14.10 2026-09-27 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.9 2026-09-15 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.8 2026-09-15 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.7 2026-09-15 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.6 2026-09-12 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.5 2026-09-11 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.4 2026-09-10 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.3 2026-09-07 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.2 2026-09-06 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.1 2026-09-06 7 1,498 68 35.3 6.19 10 46 6 5
v1.14.0 2026-09-05 7 1,498 68 35.3 6.19 10 46 6 5
v1.13.24 2026-09-01 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.23 2026-08-31 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.22 2026-08-31 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.21 2026-08-31 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.20 2026-08-27 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.19 2026-08-24 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.18 2026-08-17 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.17 2026-08-11 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.16 2026-08-07 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.15 2026-07-28 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.14 2026-07-23 7 1,495 68 35.5 6.10 10 46 6 5
v1.13.13 2026-07-20 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.12 2026-07-05 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.11 2026-07-05 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.10 2026-07-05 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.9 2026-06-26 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.8 2026-06-19 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.7 2026-06-19 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.6 2026-06-15 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.5 2026-05-29 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.4 2026-04-17 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.3 2026-04-16 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.2 2026-04-08 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.1 2026-04-08 6 1,502 72 35.9 5.89 10 46 6 5
v1.13.0 2026-03-25 6 1,502 72 35.9 5.89 10 46 6 5
v1.12.1 2026-03-23 6 1,502 72 35.9 5.89 10 46 6 5
v1.12.0 2026-03-15 6 1,502 72 35.9 5.89 10 46 6 5
v1.11.4 2026-03-05 6 1,502 72 35.9 5.89 10 46 6 5
v1.11.3 2026-01-28 6 1,502 72 35.9 5.89 10 46 6 5
v1.11.2 2026-01-15 6 1,502 72 35.9 5.89 10 46 6 5
v1.11.1 2025-12-11 6 1,502 72 35.9 5.89 10 46 6 5
v1.11.0 2025-11-18 6 1,502 72 35.9 5.89 10 46 6 5
v1.8.19 2025-10-09 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.18 2025-09-29 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.17 2025-09-29 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.16 2025-06-29 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.15 2025-05-20 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.14 2025-02-22 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.13 2025-01-26 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.12 2025-01-26 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.11 2024-09-08 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.10 2024-08-22 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.9 2024-08-20 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.8 2024-07-03 6 1,452 72 36.1 5.89 10 46 6 5
v1.8.7 2024-04-12 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.6 2024-02-29 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.5 2024-02-18 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.4 2024-02-18 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.3 2024-02-18 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.2 2024-02-18 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.1 2024-02-02 6 1,451 71 36.1 5.96 10 46 6 5
v1.8.0 2023-11-27 6 1,451 71 36.1 5.96 10 46 6 5
v1.7.2 2023-10-31 5 1,351 60 34.7 6.40 10 46 5 5
v1.7.1 2023-10-26 5 1,351 60 34.7 6.40 10 46 5 5
v1.7.0 2023-10-24 5 1,348 60 34.7 6.40 10 46 5 5
v1.6.3 2023-10-20 5 1,322 56 34.3 6.55 10 45 5 5
v1.6.2 2023-10-03 5 1,315 56 34.3 6.55 10 45 5 5
v1.6.1 2023-10-02 5 1,315 56 34.3 6.55 10 45 5 5
v1.6.0 2023-10-02 5 1,309 56 34.4 6.48 10 45 5 5
v1.5.1 2023-09-27 5 1,039 44 34.6 6.48 10 43 4 4
v1.5.0 2023-09-27 5 1,039 44 34.6 6.48 10 43 4 4
v1.4.1 2023-09-23 4 762 36 35.8 5.83 9 43 3 3
v1.4.0 2023-09-20 4 757 36 35.8 5.83 9 43 3 3
v1.3.4 2023-09-19 4 740 36 36.7 5.67 9 40 3 3
v1.3.3 2023-09-19 4 740 36 36.7 5.67 9 40 3 3
v1.3.2 2023-09-18 4 740 36 36.7 5.67 9 40 3 3
v1.3.1 2023-09-18 4 734 34 36.6 5.82 9 40 3 3
v1.3.0 2023-09-18 4 732 34 36.6 5.82 9 40 3 3
v1.2.1 2023-09-13 3 535 22 31.4 6.18 9 40 2 2
v1.2.0 2023-08-29 3 537 22 31.5 6.18 9 40 2 2
v1.1.3 2023-07-11 3 504 21 35.0 6.00 9 34 2 2
v1.1.2 2023-05-22 3 468 20 34.2 5.60 9 31 2 2
v1.1.1 2023-05-22 3 468 20 34.2 5.60 9 31 2 2
v1.1.0 2023-05-19 3 458 20 34.2 5.60 9 31 2 2
v1.0.3 2023-05-18 3 416 19 33.6 5.74 26 31 2 2
v1.0.2 2023-05-11 3 393 17 33.2 5.94 26 28 2 2
v1.0.1 2023-05-11 3 392 17 33.2 5.94 26 28 2 2
v1.0.0 2023-05-11 3 392 17 33.2 5.94 26 28 2 2
How the numbers are made

Library source only: lib/, src/, workers/, bin/ and top-level source files. Tests, examples, tooling, type declarations and generated or minified files are left out.

Source lines are lines carrying code, with blank lines and comments dropped.

Cyclomatic complexity (CC) counts the independent paths through a function: 1 plus every if, loop, case, catch, ternary, && / || / ??, optional chain and default parameter. Above 10 a function is commonly considered hard to test, above 20 hard to understand.

Maintainability index (MI) is computed per function as max(0, (171 - 5.2 ln(Halstead volume) - 0.23 CC - 16.2 ln(lines)) * 100 / 171), the 0 to 100 scale Visual Studio uses, where below 20 is poor. The repository figure weights each function by its lines. Code outside any function (lookup tables, schemas, declarations) counts toward size only. MI is driven mostly by size, so read it as a trend, not a grade.

A move from JavaScript to TypeScript adds type annotations to every function, which raises the Halstead volume and lowers MI without the logic changing. Expect a step at that release.

Measured Mon, 19 Oct 2026 19:28:19 GMT.