Skip to content
CAI
Software that uses CAICheck a score

storytold/gridcraft

69.8

Adequate · 7 November 2026

179.8k

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 (repo-wide)

A change to existing behaviour in (repo-wide) — 1 commit, 8 files: “Equations: Insert › Equation with a LaTeX editor, Office Math in xlsx and equations in PDF (\#471)” (refs \#471). Also in this area: 18 commits (4 fixes) modifying crates/engine; 1 commit (1 fix) fixing apps/gridcraft-cli, crates/pdf; 2 commits (2 fixes) fixing crates/formula.

crates/chart/src/tests, crates/pdf · low confidence · unverified

1 commit (0 fixes) modifying apps/gridcraft-cli

A change to existing behaviour in apps/gridcraft-cli — 1 commit, 2 files: “check: find volatile defined names with a worklist instead of repeated passes (\#3187)” (refs \#3187). Also in this area: 3 commits (0 fixes) modifying apps/gridcraft-cli.

apps/gridcraft-cli/src/check, apps/gridcraft-cli/tests · medium confidence · unverified

1 commit (0 fixes) modifying crates/chart, crates/model, crates/xlsx

A change to existing behaviour in crates/chart, crates/model, crates/xlsx — 1 commit, 15 files: “Charts: draw every doughnut series as a ring (\#1827)” (refs \#1827). Also in this area: 2 commits (0 fixes) modifying crates/chart.

crates/chart/src/render · low confidence · unverified

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

A change to existing behaviour in crates/xlsx/examples — 1 commit, 1 file: “Add an XLSX write benchmark example”.

crates/xlsx/examples · medium confidence · unverified

11 commits (2 fixes) modifying apps/gridcraft

A change to existing behaviour in apps/gridcraft — 11 commits (2 fixs), 3 files: “Draw the outline band for grouped rows and columns”; “Desktop theme watcher starts only in the desktop app, not in every SheetApp (tests, embedders) (review fix-up for \#203)”; “Print PDF in the shared temp folder: create it exclusively (never follow or overwrite an existing file or symlink) and owner-only on Unix (review fix-up for \#394)”; and 8 more (refs \#203, \#394, \#339, \#354, \#194, …). Also in this area: 2 commits (2 fixes) fixing apps/gridcraft; 5 commits (1 fix) modifying apps/gridcraft; 1 commit (0 fixes) modifying apps/gridcraft, apps/gridcraft-cli, apps/gridcraft-web.

(repo-wide) · low confidence · unverified

186 commits (9 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 186 commits (9 fixs), 14 files: “View: Page Layout view with rulers and in-place headers and footers (\#329)”; “PDF: title and author are written as UTF-16BE when they are not ASCII (\#813)”; “M1.5: README with screenshots, display scale matching desktop density, validation dropdowns, note popups, trace arrows, header menus, hyperlink clicks”; and 180 more (refs \#329, \#813, \#197, \#378, \#1346, …).

(repo-wide) · low confidence · unverified

2 commits (0 fixes) modifying (repo-wide)

A change to existing behaviour in (repo-wide) — 2 commits, 71 files: “Rename SheetCraft to GridCraft everywhere (crates, apps, bundle ids, packaging, docs)”; “M1: Excel-style egui UI, desktop app, chart renderer, MCP server, CLI, release packaging”. Also in this area: 2 commits (1 fix) modifying packaging.

assets, packaging/freebsd · medium confidence · unverified

2 commits (0 fixes) modifying apps/gridcraft-web, packaging

A change to existing behaviour in apps/gridcraft-web, packaging — 2 commits, 4 files: “M6: misc hardening — unbounded picture cache, stats walk, signing tmpdir, web clipboard, dash budget, fs cycle, rezip loop (\#2422)”; “web: parse ?chrome= so an embedding host can leave out the title bar and File tab” (refs \#2422). Also in this area: 1 commit (0 fixes) modifying packaging; 2 commits (1 fix) modifying packaging.

packaging/macos · medium confidence · unverified

27 commits (6 fixes) modifying crates/engine

A change to existing behaviour in crates/engine — 27 commits (6 fixs), 50 files: “Form controls: control.format replies with the control as committed, so a new link's value shows”; “Form controls: a macro assignment removed in another application stays removed on reopen”; “Form controls: a linked cell's formula survives a write of the value it already shows”; and 24 more (refs \#501, \#2729, \#471, \#3152, \#495, …). Also in this area: 4 commits (1 fix) modifying crates/core; 1 commit (0 fixes) modifying crates/core.

(repo-wide) · low confidence · unverified

3 commits (0 fixes) modifying apps/sheetcraft, xtask

A change to existing behaviour in apps/sheetcraft, xtask — 3 commits, 11 files: “M4–M10: PivotTables, PDF export & printing, what-if analysis, spelling, more commands”; “Rename SheetCraft to GridCraft everywhere (crates, apps, bundle ids, packaging, docs)”; “M1: Excel-style egui UI, desktop app, chart renderer, MCP server, CLI, release packaging”. Also in this area: 1 commit (0 fixes) modifying (repo-wide); 4 commits (1 fix) modifying xtask.

xtask · low confidence · unverified

34 commits (0 fixes) modifying crates/ui-egui/src

A change to existing behaviour in crates/ui-egui/src — 34 commits, 51 files: “Format Chart Area: Chart Type offers the stacked and 100% stacked types and marks the current one”; “UI: a macro question is answered only in the workbook that asked it”; “UI: a dialog asked for over the macro step editor says why it did not open”; and 31 more (refs \#2540, \#2566, \#2412, \#2543, \#2414, …). Also in this area: 1 commit (0 fixes) modifying crates/ui-egui; 4 commits (1 fix) modifying crates/ui-egui.

crates/ui-egui · low confidence · unverified

7 commits (1 fix) modifying apps/gridcraft-web

A change to existing behaviour in apps/gridcraft-web — 7 commits (1 fix), 2 files: “Web & UI: resolve system theme preference and default web to system theme”; “Web: add favicon to web app index and disable dev incremental compilation”; “Web save: any picker refusal but a cancel, or a failed write, falls back to a download (review fix-up for \#391)”; and 2 more (refs \#391, \#121). Also in this area: 3 commits (0 fixes) modifying apps/gridcraft-web; 1 commit (0 fixes) modifying apps/gridcraft, apps/gridcraft-cli, apps/gridcraft-web; 2 commits (2 fixes) fixing apps/gridcraft-web; 1 commit (1 fix) fixing apps/gridcraft-web.

(repo-wide) · low confidence · unverified

7 commits (1 fix) modifying packaging/web

A change to existing behaviour in packaging/web — 7 commits (1 fix), 4 files: “packaging: shell, PowerShell and web page fixes (SonarCloud S7688, S7679, S7682, S8677, S7926) (\#2323)”; “web: parse ?chrome= so an embedding host can leave out the title bar and File tab”; “Rename SheetCraft to GridCraft everywhere (crates, apps, bundle ids, packaging, docs)”; and 4 more (refs \#2323, \#2592).

packaging/web · medium confidence · unverified

Fixes

5 commits (4 fixes) fixing packaging

A fix in packaging — 5 commits (4 fixs), 8 files: “fix(installer): resolve the wizard scope and folder correctly”; “fix(installer): address scope and ARM64 review feedback”; “fix(installer): check the exact architecture-specific machine folder”; and 2 more. Also in this area: 2 commits (0 fixes) modifying (repo-wide); 5 commits (1 fix) modifying packaging; 1 commit (0 fixes) modifying packaging.

packaging/windows · medium confidence · unverified

Test coverage

1 commit adding/updating tests in apps/gridcraft-cli, crates/engine/tests, crates/formula; 26 commits adding/updating tests in crates/xlsx/src/tests.

Dependencies

12 commits updating dependencies (8 manifests)

A dependency / build maintenance change in (dependencies) — 12 commits (1 fix), 8 files: “Web: add favicon to web app index and disable dev incremental compilation”; “xlsx: bump quick-xml to 0.41 for the namespace-declaration DoS (RUSTSEC-2026-0195)”; “Keep incremental dev builds; the favicon change stands on its own (review fix-up for \#392)”; and 8 more (refs \#392, \#307, \#226, \#11, \#120). Also in this area: 1 commit updating dependencies (6 manifests); 1 commit updating dependencies (1 manifest).

(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 70.

Lenses

  • Code Health 82
  • Architecture 67
  • Maturity 69
  • Readiness 72
  • Security 71
  • Performance 100

Changes since last survey

  • 300 commits — 280 feature/other, 20 fixes

By area

  • (repo) — 84 commits
  • crates/engine — 73 commits
  • crates/ui-egui — 64 commits
  • crates/xlsx — 35 commits
  • (root) — 6 commits
  • contributors/people.toml — 5 commits
  • crates/calc — 5 commits
  • crates/functions — 5 commits
  • crates/chart — 4 commits
  • apps/gridcraft-web — 3 commits
  • crates/model — 3 commits
  • .github/workflows — 2 commits
  • apps/gridcraft — 2 commits
  • apps/gridcraft-cli — 2 commits
  • docs/control-protocol.md — 2 commits
  • docs/architecture.md — 1 commit
  • docs/file-format-parity.md — 1 commit
  • docs/macros.md — 1 commit
  • docs/target-app-parity.md — 1 commit
  • packaging/linux — 1 commit

Notable commits

  • fix: Fix merged keytip sequence count for HBJ and MR
  • fix: Form controls: a fixed input range is refused for a macro that takes no inputs
  • fix: Merge PR #3252 (author's fix: an expanded formula bar leaves room for the worksheet)
  • fix: Merge current main into fix/gnome-window-decorations
  • fix: Merge pull request #1576 from danielmigueltejedor/fix/gnome-window-decorations
  • fix: Merge pull request #2203 from Higgs32584/fix/2181-link-open-confirmation
  • fix: Merge pull request #3425 from ZIDAN44/fix/2874-german-insert-cells
  • fix: Merge upstream main into fix/2181-link-open-confirmation
  • fix: Review fix for #2729: document the portable shortcut notation and the Mac-only override
  • fix: Review fix for #3135: clip only whole-column and whole-row chart sources; bounded areas keep their extent
  • fix: Review fixes for #3042: "" with parse: false keeps the cell's formatting; correct the write_range parse description
  • fix: Review fixes for #3223, #3253, #3254, #3252, #3239, #3244 and #3268
  • fix: Ribbon: Font Size value is centered in its box (fixes #3155)
  • fix: fix(calc): apply "Set precision as displayed" in calculation (#1366)
  • fix: fix(quit): bring GridCraft forward through AppKit for a Dock quit
  • fix: fix(quit): bring the asking window to the front on a Dock quit
  • fix: fix(ui): centralize platform-specific command shortcuts and test palette
  • fix: fix(ui): preserve alignment shortcuts for CLI consumers
  • fix: fix(ui): preserve portable shortcuts and macOS overrides
  • fix: macOS: Intel Macs skip wgpu's indirect-call validation shaders (fixes #2812) (#3039)
  • …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/gridcraft 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 6a8eb4ff42cfa88b5bdd3eec13c6db3874d95214 — 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.