Skip to content
CAI
Software that uses CAICheck a score

storytold/craft-ai-integrations

72.4

Strong · 7 November 2026

47.2k

lines of production code

Rust

with Python

1

measurement over time

CAI band scale
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, 202 files: “chore: prepare the repository for transfer to storytold/craft-ai-integrations”. Also in this area: 2 commits (2 fixes) fixing crates/ai-bfl, crates/ai-seedance, crates/ai-vertex; 1 commit (1 fix) fixing (repo-wide).

(repo-wide) · low confidence · unverified

1 commit (0 fixes) modifying crates/ai-artcraft, crates/ai-egui, crates/ai-native

A change to existing behaviour in crates/ai-artcraft, crates/ai-egui, crates/ai-native — 1 commit, 13 files: “Add request history, tools-first features, hosted adapters and OpenRouter cost”. Also in this area: 6 commits (5 fixes) fixing crates/ai-client; 1 commit (1 fix) fixing (repo-wide).

crates/ai-artcraft · low confidence · unverified

2 commits (0 fixes) modifying consumer-smoke, crates/ai-egui, crates/ai-engine

A change to existing behaviour in consumer-smoke, crates/ai-egui, crates/ai-engine — 2 commits, 25 files: “Migrate shared AI widgets to egui 0.37 (\#105)”; “test(ai-engine): cover queued cancellation and clarify widget qualification (\#106)” (refs \#105, \#106).

consumer-smoke, crates/ai-engine · medium confidence · unverified

3 commits (1 fix) modifying crates/ai-egui

A change to existing behaviour in crates/ai-egui — 3 commits (1 fix), 5 files: “feat(ai-features,ai-client): a tool can offer several local models (\#63)”; “feat(ai-egui): a consent prompt that asks for how long (\#66)”; “fix(ai-core,ai-egui): required inputs and test-result addresses, matching the upstream contract fixes (\#59)” (refs \#63, \#66, \#59). Also in this area: 3 commits (0 fixes) modifying crates/ai-egui; 1 commit (0 fixes) modifying crates/ai-egui, crates/ai-engine-candle, crates/ai-features.

crates/ai-egui/tests · low confidence · unverified

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

A change to existing behaviour in (repo-wide) — 39 commits (5 fixs), 10 files: “fix(deps): move candle to 0.11.1 for zip 9 and unyank async-executor (\#135)”; “Use chrono instead of hand-rolled UTC conversion (\#74)”; “Revert "ci: use SonarCloud automatic analysis only (\#159)" (\#162)”; and 36 more (refs \#135, \#74, \#159, \#162, \#105, …).

(repo-wide) · low confidence · unverified

7 commits (2 fixes) modifying crates/ai-client

A change to existing behaviour in crates/ai-client — 7 commits (2 fixs), 34 files: “fix(ai-openai): tell an account with no credit from a rate limit, and add a live smoke example (\#37)”; “fix(ai-client): refuse a choice the app cannot run at plan, and test the third-party path (\#38)”; “docs: remove internal task codes and add community files (\#29)”; and 4 more (refs \#37, \#38, \#29, \#39, \#34, …). Also in this area: 2 commits (2 fixes) fixing crates/ai-openai; 1 commit (1 fix) fixing crates/ai-openai; 1 commit (0 fixes) modifying (repo-wide).

crates/ai-native/src, crates/ai-openai/src, crates/ai-openai/tests · low confidence · unverified

7 commits (2 fixes) modifying crates/ai-client

A change to existing behaviour in crates/ai-client — 7 commits (2 fixs), 34 files: “fix(ai-openai): tell an account with no credit from a rate limit, and add a live smoke example (\#37)”; “fix(ai-client): refuse a choice the app cannot run at plan, and test the third-party path (\#38)”; “docs: remove internal task codes and add community files (\#29)”; and 4 more (refs \#37, \#38, \#29, \#39, \#34, …). Also in this area: 7 commits adding/updating tests in crates/ai-client/tests; 5 commits (3 fixes) fixing crates/ai-client; 1 commit (0 fixes) modifying crates/ai-client, crates/ai-features; 1 commit (1 fix) fixing crates/ai-client, crates/ai-core, tools; 3 commits (1 fix) modifying crates/ai-client.

(repo-wide) · low confidence · unverified

Fixes

1 commit (1 fix) fixing tools/burn

A fix in tools/burn — 1 commit (1 fix), 2 files: “fix(tools/burn): convert a bounded, verified private copy of the pinned ONNX (\#137)” (refs \#137). Also in this area: 1 commit (0 fixes) modifying (repo-wide); 3 commits (0 fixes) modifying tools.

tools/burn, tools/intake · medium confidence · unverified

2 commits (2 fixes) fixing crates/ai-bfl, crates/ai-seedance, crates/ai-vertex

A fix in crates/ai-bfl, crates/ai-seedance, crates/ai-vertex — 2 commits (2 fixs), 3 files: “fix(ai-client): check counts, addresses and start against the route”; “fix(ai-client): report what this build can run apart from what is saved”. Also in this area: 1 commit (1 fix) fixing (repo-wide); 1 commit (0 fixes) modifying (repo-wide).

crates/ai-vertex · low confidence · unverified

5 commits (5 fixes) fixing crates/ai-comfy-env

A fix in crates/ai-comfy-env — 5 commits (5 fixs), 11 files: “fix(ai-comfy-env): require pickle consent from the file name, not the described format (\#128)”; “fix(ai-comfy-env): allow GitHub release metadata API host (\#56)”; “fix(ai-comfy-env): give a folder scan one budget for header bytes (\#146)”; and 2 more (refs \#128, \#56, \#146, \#129, \#144). Also in this area: 1 commit (1 fix) fixing (repo-wide); 1 commit (0 fixes) modifying (repo-wide); 2 commits (1 fix) modifying crates/ai-comfy-env; 2 commits (0 fixes) modifying (repo-wide).

(repo-wide) · low confidence · unverified

Test coverage

3 commits adding/updating tests in crates/ai-egui/src/panel

Test coverage in crates/ai-egui/src/panel — 3 commits (2 fixs), 1 file: “fix(ai-egui): a custom connection tested at a new address keeps its models”; “fix(ai-client): keep declarations and refused routes consistent in assignments”; “chore: clear SonarCloud code smells on \#157” (refs \#157).

crates/ai-egui/src/panel · high confidence · unverified

Dependencies

5 commits updating dependencies (8 manifests)

A dependency / build maintenance change in (dependencies) — 5 commits, 8 files: “Use chrono instead of hand-rolled UTC conversion (\#74)”; “feat(ai-engine-rten): run SAM 2.1 through the shared selection contract (\#79)”; “chore(deps): png 0.18, base64 0.23, jpeg-encoder 0.7 and patch bumps (replaces the buildable part of \#68) (\#73)”; and 2 more (refs \#74, \#79, \#68, \#73, \#78, …). 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 93
  • Architecture 98
  • Maturity 79
  • Readiness 56
  • Security 92
  • Event Sourcing 100

Changes since last survey

  • 153 commits — 94 feature/other, 59 fixes

By area

  • crates/ai-client — 36 commits
  • (root) — 20 commits
  • crates/ai-comfyui — 14 commits
  • crates/ai-comfy-env — 13 commits
  • docs/research — 13 commits
  • crates/ai-egui — 9 commits
  • crates/ai-features — 7 commits
  • crates/ai-engine-rten — 5 commits
  • crates/ai-core — 4 commits
  • tools/mutation — 4 commits
  • .github/workflows — 3 commits
  • crates/ai-engine-candle — 3 commits
  • crates/ai-native — 3 commits
  • crates/ai-engine-burn — 2 commits
  • crates/ai-http — 2 commits
  • crates/ai-media — 2 commits
  • crates/ai-model — 2 commits
  • crates/ai-openai — 2 commits
  • (repo) — 1 commit
  • .github/dependabot.yml — 1 commit

Notable commits

  • fix: Revert "ci: use SonarCloud automatic analysis only (#159)" (#162)
  • fix: ci: test on macOS, and a manual job for the deliberate-bug checks (#30)
  • fix: fix(ai): use BytePlus ModelArk for Seedance
  • fix: fix(ai-client): a stale form save no longer restores a withdrawn declaration
  • fix: fix(ai-client): bind sample approval to reviewed disclosure (#117)
  • fix: fix(ai-client): change a model and its tool choice in one shared operation
  • fix: fix(ai-client): check counts, addresses and start against the route
  • fix: fix(ai-client): keep declarations and refused routes consistent in assignments
  • fix: fix(ai-client): keep declared inputs and later-listed models across saves
  • fix: fix(ai-client): keep every recipe's setup link, and refuse a clashing connection id (#67)
  • fix: fix(ai-client): keep linked model folders out of downloads (#109)
  • fix: fix(ai-client): refuse a choice the app cannot run at plan, and test the third-party path (#38)
  • fix: fix(ai-client): refuse options and adapterless choices before consent
  • fix: fix(ai-client): reject plans belonging to another app (#118)
  • fix: fix(ai-client): reject stale saved model probe results (#119)
  • fix: fix(ai-client): report what this build can run apart from what is saved
  • fix: fix(ai-client): save writes the key under the file lock so concurrent saves cannot swap or delete each other's key
  • fix: fix(ai-client): show a local file's measured size in the consent prompt (#121)
  • fix: fix(ai-client): write a new key outside the file lock, into a slot of its own
  • fix: fix(ai-comfy-env): allow GitHub release metadata API host (#56)
  • …and 133 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/craft-ai-integrations 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 9baaaa79b3c09368b7104b8a935c5e16e1c70317 — 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.