email-content

22 releases measured. Default branch at 2f6a07af, 2026-10-19, 64 files.

Source lines
9,916
Maintainability index
41.6
Mean CC per function
4.45
Functions with CC > 20
17
of 628
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
classifyBlocks src/classify/rules.ts:163 0.0 205 463
segmentHtmlBlocks src/segment/html-blocks.ts:647 9.7 65 261
analyze src/analyze.ts:419 15.0 55 185
evaluateCommand src/cli/evaluate.ts:95 21.9 44 120
annotateCommand src/cli/annotate.ts:84 21.9 29 136
segmentTextBlocks src/segment/text-blocks.ts:109 22.1 37 128
scanCorpus src/corpus/scanner.ts:142 22.8 37 125
computeStats src/corpus/stats.ts:130 24.0 41 104
disagreementsCommand src/cli/disagreements.ts:67 24.3 31 107
auditCommand src/cli/audit.ts:44 26.1 30 99
stripTagsToText src/canonical/html.ts:195 26.9 24 104
analyzeMessage src/corpus/analyze.ts:184 27.1 36 83
<anonymous> src/mime/parse.ts:209 27.8 26 93
benchmarkCommand src/cli/benchmark.ts:247 27.9 11 96
renderReport src/corpus/stats.ts:275 28.4 2 100
Every measured release 22
Release Date Files Source lines Functions MI Mean CC P90 CC Max CC CC > 10 CC > 20
v0.1.17 2026-10-19 64 9,916 628 41.6 4.45 10 205 56 17
v0.1.16 2026-10-18 64 9,911 628 41.6 4.45 10 205 56 17
v0.1.15 2026-10-18 64 9,911 628 41.6 4.45 10 205 56 17
v0.1.14 2026-10-16 64 9,911 628 41.6 4.45 10 205 56 17
v0.1.13 2026-10-16 64 9,911 628 41.6 4.45 10 205 56 17
v0.1.12 2026-10-14 64 9,784 623 41.7 4.42 10 205 55 16
v0.1.11 2026-10-04 64 9,784 623 41.7 4.42 10 205 55 16
v0.1.10 2026-09-30 64 9,784 623 41.7 4.42 10 205 55 16
v0.1.9 2026-09-29 64 9,667 612 42.1 4.40 10 191 55 16
v0.1.8 2026-09-28 52 8,589 527 40.9 4.58 10 193 51 16
v0.1.7 2026-09-15 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.6 2026-09-15 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.5 2026-09-07 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.4 2026-08-31 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.3 2026-08-07 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.2 2026-07-29 52 8,544 523 40.9 4.60 10 193 51 16
v0.1.1 2026-07-27 52 8,377 516 41.7 4.55 10 196 50 16
v0.1.0 2026-07-27 52 8,324 513 41.9 4.54 10 179 50 16
v0.0.5 2026-07-26 50 7,190 423 41.2 4.52 11 179 43 14
v0.0.4 2026-07-26 50 7,179 422 41.2 4.52 11 179 43 14
v0.0.3 2026-07-26 50 7,179 422 41.2 4.52 11 179 43 14
v0.0.2 2026-07-26 50 7,179 422 41.2 4.52 11 179 43 14
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.