Skip to content

Build initial SabTrace C++ log analyser - #1

Merged
Saboreq merged 17 commits into
mainfrom
agent/initial-sabtrace-release
Jul 20, 2026
Merged

Saboreq merged 17 commits into
mainfrom
agent/initial-sabtrace-release

Conversation

@Saboreq

@Saboreq Saboreq commented Jul 20, 2026

Copy link
Copy Markdown
Owner

What changed

  • adds a modern C++20 command-line log analyser with no runtime dependencies
  • supports files and standard input, literal search, ECMAScript regex, level filtering, case-insensitive matching, result limits, color control, statistics, and JSON reports
  • detects TRACE, DEBUG, INFO, WARN, ERROR, FATAL, and UNKNOWN lines
  • adds dependency-free unit tests and a sample log
  • adds CMake build/install configuration and development/release presets
  • adds CI for GCC on Linux, MSVC on Windows, and Clang on macOS
  • adds a tagged release workflow that packages platform binaries and publishes SHA-256 checksums
  • adds a professional README, changelog, contributing guide, MIT license, and formatting configuration

CLI behavior

Exit codes follow a script-friendly convention:

  • 0: completed with one or more matches
  • 1: completed successfully with no matches
  • 2: invalid arguments, invalid regex, or input/output failure

Validation

Local Linux validation completed successfully:

cmake --preset release
cmake --build --preset release --parallel
ctest --preset release

All tests passed with GCC 14.2 and the sample log/JSON export were smoke-tested. GitHub Actions will provide the cross-platform validation before merge.

Release usage

After merge, pushing a semantic version tag such as v0.1.0 will build archives for Windows, Linux, and macOS and publish a GitHub Release with checksums.

@Saboreq
Saboreq merged commit 87a2636 into main Jul 20, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant