Skip to content
CAI
Software that uses CAICheck a score

storytold/cadcraft

72.0

Strong · 7 November 2026

184k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Behavioural changes

1 commit (0 fixes) modifying crates/dxf

A change to existing behaviour in crates/dxf — 1 commit, 3 files: “DXF: save pre-2007 text in the file's code page instead of all \\U+ escapes”. Also in this area: 1 commit (1 fix) fixing crates/dxf; 1 commit adding/updating tests in crates/dxf; 3 commits (0 fixes) modifying crates/dxf; 2 commits (1 fix) modifying crates/dxf.

(repo-wide) · low confidence · unverified

1 commit (0 fixes) modifying crates/io/examples

A change to existing behaviour in crates/io/examples — 1 commit, 1 file: “Stroke runs of hairline polylines as one path in the rasteriser”.

crates/io/examples · medium confidence · unverified

1 commit (0 fixes) modifying crates/io/src/roundtrip, xtask

A change to existing behaviour in crates/io/src/roundtrip, xtask — 1 commit, 3 files: “Round-trip harness: typed tolerance error, report folders it couldn't read, --out=DIR”. Also in this area: 3 commits (0 fixes) modifying crates/io.

crates/io/src/roundtrip · low confidence · unverified

1 commit (0 fixes) modifying packaging/freebsd

A change to existing behaviour in packaging/freebsd — 1 commit, 1 file: “Honor CARGO\_BUILD\_TARGET in FreeBSD packaging for aarch64 release builds (\#2425)” (refs \#2425).

packaging/freebsd · medium confidence · unverified

3 commits (1 fix) modifying crates/fonts

A change to existing behaviour in crates/fonts — 3 commits (1 fix), 8 files: “Fonts: user font folders, Hebrew SHX fonts, redraw when fonts change (on \#1944's SHX)”; “SHX fonts: review fixes (search the current folder for a bare drawing name, one lock for the font cache generation, no split\_paths on wasm, MTEXT \\U+ upper case as the layout, a point budget for repeated linetype shapes, web picks report skipped files and cap bytes read at once)”; “SHX fonts: list the ones in the user's font folders, for font lists” (refs \#1944). Also in this area: 4 commits (2 fixes) modifying crates/fonts; 1 commit (1 fix) fixing crates/fonts; 1 commit (0 fixes) modifying (repo-wide).

(repo-wide) · medium confidence · unverified

4 commits (2 fixes) modifying crates/render

A change to existing behaviour in crates/render — 4 commits (2 fixs), 4 files: “SHX fonts: review fixes (search the current folder for a bare drawing name, one lock for the font cache generation, no split\_paths on wasm, MTEXT \\U+ upper case as the layout, a point budget for repeated linetype shapes, web picks report skipped files and cap bytes read at once)”; “View twist: build with raster images from main (an axis rectangle is turned on a twisted screen, so it cuts an image as an outline)”; “XCLIP: keep CADCraft's inverted flag beside group 290 for DWG, whose bridge drops 290; the flag is read only when 290 is absent”; and 1 more (refs \#2756). Also in this area: 1 commit (0 fixes) modifying crates/render; 6 commits (1 fix) modifying crates/render; 1 commit (1 fix) fixing crates/render; 24 commits (18 fixes) fixing crates/render.

(repo-wide) · low confidence · unverified

7 commits (0 fixes) modifying packaging/web

A change to existing behaviour in packaging/web — 7 commits, 4 files: “cadcraft-web: speak the host messages through craft-web-host”; “feat(web): page host mode, so a page can host CADCraft in its own document (\#2178)”; “Release pipeline: signed macOS universal, Windows x64/x86, Linux, FreeBSD and web builds; MTEXT editor”; and 4 more (refs \#2178, \#2258, \#1972).

packaging/web · medium confidence · unverified

90 commits (5 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 90 commits (5 fixs), 14 files: “Panic hunt covers every command, and a panic after a command restores the drawing (\#2517)”; “i18n(ka): apply the native speaker's terminology review”; “fonts: read user SHX text fonts and keep Latin accents single-stroke”; and 87 more (refs \#2517, \#2303, \#2, \#2178, \#1871, …).

(repo-wide) · low confidence · unverified

Fixes

7 commits (5 fixes) fixing crates/mcp

A fix in crates/mcp — 7 commits (5 fixs), 6 files: “MCP plate test: finish TEXT before undo and check the centre line survives (\#171)”; “MCP: reject tool arguments that don't fit the schema; query\_entities counts all matches and windows by geometry (fixes \#335) (\#336)”; “Control channel: cmdline.key replies like cmdline.input (fixes \#360) (\#361)”; and 4 more (refs \#171, \#335, \#336, \#360, \#361, …). Also in this area: 4 commits (1 fix) modifying crates/mcp; 1 commit (0 fixes) modifying crates/mcp; 1 commit (1 fix) fixing crates/mcp; 2 commits (0 fixes) modifying crates/mcp.

(repo-wide) · low confidence · unverified

Test coverage

1 commit adding/updating tests in crates/engine/tests/support, crates/ui-egui/tests/support; 6 commits adding/updating tests in crates/engine/tests.

Dependencies

7 commits updating dependencies (8 manifests)

A dependency / build maintenance change in (dependencies) — 7 commits (2 fixs), 8 files: “Xrefs: XATTACH, -XREF, XBIND, XOPEN; load at open, save only the reference (part of \#525) (\#530)”; “Linux: Theme \> System follows the desktop's light/dark setting (\#641)”; “DXF: read pre-2007 files in their $DWGCODEPAGE (CJK, Cyrillic, Central European…) (fixes \#505) (\#511)”; and 4 more (refs \#525, \#530, \#641, \#505, \#511, …). Also in this area: 1 commit updating dependencies (2 manifests).

(dependencies) · medium confidence · unverified

Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 72.

Lenses

  • Code Health 85
  • Architecture 94
  • Maturity 68
  • Readiness 71
  • Security 73

Changes since last survey

  • 300 commits — 245 feature/other, 55 fixes

By area

  • (repo) — 88 commits
  • crates/engine — 65 commits
  • crates/io — 39 commits
  • crates/ui-egui — 25 commits
  • crates/doc — 21 commits
  • crates/fonts — 10 commits
  • (root) — 9 commits
  • crates/render — 7 commits
  • apps/cadcraft-cli — 5 commits
  • crates/dwg — 4 commits
  • .github/workflows — 3 commits
  • contributors/people.toml — 3 commits
  • crates/constraints — 3 commits
  • crates/mcp — 3 commits
  • docs/parity-checklist.md — 3 commits
  • apps/cadcraft — 2 commits
  • apps/cadcraft-web — 2 commits
  • docs/file-format-parity.md — 2 commits
  • packaging/web — 2 commits
  • crates/dxf — 1 commit

Notable commits

  • fix: DXF: link dimension sources to their associations (fixes #2221) (#2589)
  • fix: Fonts: review fixes on #2316 (load budget, linked font folders, a test in its own binary)
  • fix: Fonts: review fixes on #2803 (Unix clippy, the degree sign in DOS Hebrew fonts, font-keyed caches)
  • fix: Merge branch 'main' into fix/803-mcp-render-background
  • fix: Merge main into fix/dwg-render-settings-class-version
  • fix: Merge main into fix/dwg-render-settings-class-version
  • fix: Merge main into fix/dwg-render-settings-class-version
  • fix: Merge main into fix/dwg-render-settings-class-version
  • fix: Merge main into fix/page-setup-media-orientation
  • fix: Merge main into fix/page-setup-media-orientation
  • fix: Merge pull request #2795 from storytold/fix/array-extents
  • fix: Merge pull request #2818 from ZIDAN44/fix/803-mcp-render-background
  • fix: Merge pull request #2835 from storytold/fix/unused-patches
  • fix: Merge upstream/main into fix/dxf-hostile-input-hardening
  • fix: Merge upstream/main into fix/dxf-viewport-id-unknown
  • fix: Merge upstream/main into fix/dxf-viewport-id-unknown
  • fix: Merge upstream/main into fix/dxf-viewport-id-unknown
  • fix: Merge upstream/main into fix/tilted-2d-read
  • fix: OLE2FRAME: corner match has a fixed ceiling at large coordinates (review on #2587)
  • fix: Review fix: CHPROP says what it left out; the working set is read once
  • …and 280 more

Written by cca.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

storytold/cadcraft was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 7 November 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a655cee0c1399ca1629675605074897e2cb6850e — the exact code this score is about.
  • Scored under rubric-2026.11.2 — the same rubric and the same method as every other entry in this index.
  • Measured by Canine Code Analyzer (cca.canine.dev) using cca measure-2026.11.3+preprod-5f8314471808.