fathyb/carbonyl
50.1
Adequate · 27 September 2026
2.7k
lines of production code
Rust
with C++, C
4
measurements over time
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.