extern/catch2 was covered by the extern/* gitignore pattern without an exception, causing CI to fail with a missing source file error. Added !extern/catch2 exception and committed the amalgamated files.