storytold/cadcraft
72.0
Strong · 7 November 2026
184k
lines of production code
Rust
primary language
2
measurements over time
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.