Skip to content
CAI
Software that uses CAICheck a score

fathyb/carbonyl

50.1

Adequate · 27 September 2026

2.7k

lines of production code

Rust

with C++, C

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add CLI argument parsing and help text for Carbonyl

Users can now interact with Carbonyl via the command line, specifying options such as frame rate, zoom level, and debug mode. Running \--help\ displays a formatted usage message that includes a logo, description, and a list of supported flags, while \--version\ outputs the current version number.

src/cli · high confidence

Add navigation UI component

A new navigation UI component has been added to the application, introducing a dedicated module for handling the browser's address bar and navigation controls. This includes logic for URL editing, back/forward/refresh button interactions, and keyboard shortcut handling (using Cmd on macOS and Alt elsewhere).

src/ui · high confidence

Added CI configuration for building and packaging Chromium runtime and core libraries

A new CI configuration file (.refloat/config.js) has been introduced to automate the build, packaging, and distribution of the Chromium runtime and core libraries for macOS and Linux on arm64 and amd64 architectures. This configuration defines jobs to fetch and build Chromium, compile the core Rust library, and package the resulting binaries into zip archives for each platform and architecture, ensuring that pre-built runtimes are fetched when available and that the final artifacts are correctly exported as CI artifacts.

.refloat · medium confidence

Initial Chromium build configuration and tooling

The Chromium build environment is now configured with .gclient specifying the Chromium source at revision 111.0.5511.1, with Rust enabled and NaCl disabled. The depot\_tools submodule is also added to support the build process.

chromium · high confidence

Introduce Carbonyl rendering and headless browser integration

Adds the Carbonyl library to Chromium's build system and integrates it into the headless browser. This includes patching the C++ compositor to support terminal rendering, setting up a shared software rendering surface, and bridging the browser into the Carbonyl library to handle input and navigation. The changes also configure default browser settings (disabling incognito mode, blocking pop-ups), set display DPI, and conditionally enable text rendering.

chromium/patches · high confidence

Introduce Rust-based browser and rendering engine

The project has been refactored to use Rust for the core browser and rendering logic. This change introduces new modules for handling the browser state, command-line interface arguments, and a complete graphics subsystem (including color, point, rect, size, and vector types). The output rendering pipeline is now managed by a new \output\ module that coordinates the painter, renderer, and windowing logic, replacing the previous Electron-based implementation.

src · high confidence

Introduce quadrant-based terminal rendering with true color support

The output module now renders each terminal cell as a 2x4 pixel quadrant, using a new \Painter\ that writes ANSI escape codes for background and foreground colors. This enables true color rendering when the terminal supports it, falling back to 256-color codes otherwise. The \Renderer\ coordinates this by managing a \RenderThread\ for frame-synced rendering, while \Window\ handles terminal size detection and scaling. A \FrameSync\ utility ensures rendering respects the target FPS, and a \KDTree\-based quantizer reduces the image palette to 256 colors for efficient terminal output.

src/output · high confidence

Introduces the browser-side rendering and bridge infrastructure

Adds the core browser components for rendering and inter-process communication. This includes the C++/Rust bridge (bridge.cc, bridge.rs) to manage configuration and state, the renderer implementation (renderer.cc, renderer.h) to handle drawing text and bitmaps, and the Viz host display client (host\_display\_client.cc/h) to manage the layered window updater for compositing. The change also introduces the mojom interface (carbonyl.mojom) and build configuration (BUILD.gn) to wire these components together.

src/browser · high confidence

New input parsing infrastructure for keyboard, mouse, and terminal sequences

The application now includes a comprehensive input handling system that parses keyboard events (including modifier keys and ANSI arrow keys), mouse clicks and scrolls, and terminal control sequences (DCS) for detecting true-color support and terminal names. This replaces the previous, likely simpler, input mechanism with a state-machine-based parser that supports raw terminal mode and handles complex escape sequences.

src/input · high confidence

Behavioural changes

Build system and Docker configuration updated for cross-compilation and Linux support

The build process now supports cross-compilation for Linux, utilizing Rust toolchains and cross-compiler toolchains for ARM64 and x86\_64 targets. The Dockerfile has been refactored to streamline the build environment, and the build script (build.rs) now links against the Chromium sysroot libraries for Linux. Additionally, the project has added support for Linux, updated the README with new download links and documentation, and removed obsolete files like the Google SVG logo and Prettier configuration.

(repo-wide) · high confidence

Removal of Electron source code sync configuration

The .gclient file, which previously configured the sync of the Electron source code from the official repository, has been removed. This change indicates that the project no longer manages the Electron codebase as a synchronized dependency or submodule within the build environment.

electron · medium confidence

Fixes

Refactored build and release scripts for improved reliability and cross-platform support

The \scripts/\ directory was restructured to improve build reliability and cross-platform support. The new \build.sh\ script now handles cross-compilation for macOS arm64 and applies proper macOS deployment target settings. The \env.sh\ script was updated to manage \DEPOT\_TOOLS\ and \CHROMIUM\_SRC\ paths more robustly. The \platform-triple.sh\ script was added to correctly map CPU architectures (e.g., \arm64\ to \aarch64\) and platforms (e.g., \macos\ to \apple-darwin\). The \copy-binaries.sh\ script now correctly handles both \.so\ and \.dylib\ extensions and applies stripping for cross-compilation. The \docker-build.sh\ and \docker-push.sh\ scripts were added to build and push Docker images. The \npm-package.mjs\ script was added to generate npm packages for various platforms. The \release.sh\ script was added to automate versioning and changelog generation. The \ninja.sh\ and \patch.sh\ scripts were removed as they were replaced by the new \build.sh\ and \patches.sh\ scripts. The \gclient.sh\ and \gn.sh\ scripts were updated to use the new environment variables and paths.

scripts · high confidence

Dependencies

Project migrated from Node.js/TypeScript to Rust

The project has been restructured from a Node.js/TypeScript codebase to a Rust application named 'carbonyl'. The previous build system and dependencies (including Electron, TypeScript, and related tooling) have been removed, and a new Cargo.toml and Cargo.lock have been added to manage Rust dependencies such as chrono, libc, and cxx.

(dependencies) · high confidence

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

How this codebase got here

Score

  • CAI 43 → 50 (+7.1)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 97 (-3.1)
  • Architecture 100 (new)
  • Maturity 47 → 44 (-3.6)
  • Readiness 15 → 24 (+9.8)
  • Security 97 → 98 (+0.0)
  • Event Sourcing 100 (new)

Resolved (11)

  • Dimension evaluation failed
  • High IaC: DS-0029 (Dockerfile)
  • High IaC: DS-0029 (Dockerfile)
  • Low IaC: DS-0026 (Dockerfile)
  • Medium CVE: [GHSA redacted] (Cargo.lock)
  • Medium CVE: RUSTSEC-2020-0071 (Cargo.lock)
  • Medium CVE: RUSTSEC-2026-0202 (Cargo.lock)
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (23)

  • Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
  • Duplicated block (11 lines × 2) (src/output/painter.rs)
  • High IaC: DS-0029 (Dockerfile)
  • High IaC: DS-0029 (Dockerfile)
  • Hotspot: src/browser/bridge.rs (src/browser/bridge.rs)
  • Hotspot: src/input/keyboard.rs (src/input/keyboard.rs)
  • Hotspot: src/input/parser.rs (src/input/parser.rs)
  • KDNode::nearest (cognitive 31) (src/output/kd_tree.rs)
  • Leaked secret: signing-key (.refloat/config.js)
  • Medium CVE: [GHSA redacted] (Cargo.lock)
  • Medium IaC: WD-DOCKER-0003 (Dockerfile)
  • Medium IaC: WD-DOCKER-0003 (Dockerfile)
  • Medium advisory (unsound): RUSTSEC-2026-0202 (Cargo.lock)
  • Navigation::keypress (cognitive 19) (src/ui/navigation.rs)
  • Orphaned files with no living knowledge
  • Painter::paint (cognitive 19) (src/output/painter.rs)
  • Parser::parse (cyclomatic 19) (src/input/parser.rs)
  • Renderer::draw_text (cognitive 28) (src/output/renderer.rs)
  • StatusParser::parse_event (cognitive 16) (src/input/dcs/status.rs)
  • TodoComment (src/ui/navigation.rs)
  • …and 3 more

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

Survey your own repository

fathyb/carbonyl 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 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ab80a276b1bd1c2c8dcefc8f248415dfc61dc2bf — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-7c1cb6328e11.