# Changelog All notable changes to cargoxx will be documented in this file. ## [Unreleased] ### Added - M0 repo skeleton: hand-written `CMakeLists.txt`, bootstrap `flake.nix`, empty C++23 module units for every component listed in `TECH_SPEC.md` §1 (`util`, `exec`, `manifest`, `lockfile`, `layout`, `linkdb`, `resolver`, `codegen`, `cli`), root module `cargoxx`, and a stub `main.cpp` that builds an empty `cargoxx` binary. - `.clang-format` (LLVM, 100-column) and `.gitignore`. - `SPEC.md`, `TECH_SPEC.md`. - M1 foundation in `cargoxx.util`: `ErrorCode` (numbers per `TECH_SPEC.md` §4), `Error`, `Result = std::expected`, and `format(Error)` rendering `error[Ennnn]: ...` with optional `--> path:line:col` and `hint:` lines. `format` lives in `src/util/error.cpp` as a module implementation unit. - `Catch2 v3` wired through `flake.nix` (libc++-built override) and registered in CMake; `tests/util_error.cpp` covers six format cases via `catch_discover_tests`.