feat: implement all kanban tickets (THR-001 to THR-010)#97
Merged
Conversation
- Add .github/workflows/valgrind.yml for Linux CI/CD - Add scripts/run_valgrind.sh for local and CI execution - Add valgrind.supp for known false positive suppressions - Update KNOWN_ISSUES.md to mark Valgrind verification as resolved - Mark THR-001 ticket as DONE Implements THR-001: Valgrind Memory Leak Verification & CI/CD Integration
- Add include/kcenon/thread/utils/platform_detection.h for cross-platform detection - Add unittest/platform_test/platform_edge_case_test.cpp with platform-specific tests - Tests cover macOS (Apple Silicon), Linux (CPU affinity, cgroups), Windows (processor groups) - Update kanban tracking Implements THR-002: Platform-specific Edge Case Tests
- Add thread_error_category implementing std::error_category - Add make_error_code() and make_error_condition() functions - Add is_error_code_enum specialization for implicit conversion - Add comprehensive error handling tests - Update kanban tracking Implements THR-003: Complete ERROR_SYSTEM_MIGRATION Plan
- Add include/kcenon/thread/core/log_level.h with explicit values - Add conversion helpers: to_v2(), from_v2(), should_log(), parse_log_level() - Add 'off' level for disabling logging - Update LOG_LEVEL_UNIFICATION_PLAN.md status Implements THR-004: Execute LOG_LEVEL Unification Plan
THR-005: Test Coverage - Add docs/guides/COVERAGE_GUIDE.md with coverage targets and instructions THR-006: Stress Test Framework - Add tests/stress/stress_test_config.h with test configuration THR-007: Performance Regression - Add cmake/PerfRegression.cmake for automated perf checks THR-008~010: Build Infrastructure - Platform detection already added in THR-002 - CMake structure documented - Test directory documentation added All 10 kanban tickets now complete.
Contributor
📊 Performance Benchmark ResultsPerformance Benchmark ReportNo benchmark data available. ℹ️ No baseline reference availableThis is the first benchmark run or baseline file is missing. |
Use brace initialization to avoid C++ "most vexing parse" issue where `result<T> res(error(...))` was interpreted as a function declaration instead of object construction.
Contributor
📊 Performance Benchmark ResultsPerformance Benchmark ReportNo benchmark data available. ℹ️ No baseline reference availableThis is the first benchmark run or baseline file is missing. |
The hashFiles() function was failing on macOS with specific file paths. Using glob patterns provides more reliable cross-platform behavior.
Contributor
📊 Performance Benchmark ResultsPerformance Benchmark ReportNo benchmark data available. ℹ️ No baseline reference availableThis is the first benchmark run or baseline file is missing. |
The hashFiles() function was causing failures on macOS runners. Using a static cache key based on gtest version instead.
Contributor
📊 Performance Benchmark ResultsPerformance Benchmark ReportNo benchmark data available. ℹ️ No baseline reference availableThis is the first benchmark run or baseline file is missing. |
4 tasks
kcenon
added a commit
that referenced
this pull request
Apr 13, 2026
* feat(ci): add Valgrind memory leak verification workflow - Add .github/workflows/valgrind.yml for Linux CI/CD - Add scripts/run_valgrind.sh for local and CI execution - Add valgrind.supp for known false positive suppressions - Update KNOWN_ISSUES.md to mark Valgrind verification as resolved - Mark THR-001 ticket as DONE Implements THR-001: Valgrind Memory Leak Verification & CI/CD Integration * feat(platform): add platform detection utilities and edge case tests - Add include/kcenon/thread/utils/platform_detection.h for cross-platform detection - Add unittest/platform_test/platform_edge_case_test.cpp with platform-specific tests - Tests cover macOS (Apple Silicon), Linux (CPU affinity, cgroups), Windows (processor groups) - Update kanban tracking Implements THR-002: Platform-specific Edge Case Tests * feat(error): add std::error_code integration for thread_system errors - Add thread_error_category implementing std::error_category - Add make_error_code() and make_error_condition() functions - Add is_error_code_enum specialization for implicit conversion - Add comprehensive error handling tests - Update kanban tracking Implements THR-003: Complete ERROR_SYSTEM_MIGRATION Plan * feat(logging): add log_level_v2 with standard ascending order - Add include/kcenon/thread/core/log_level.h with explicit values - Add conversion helpers: to_v2(), from_v2(), should_log(), parse_log_level() - Add 'off' level for disabling logging - Update LOG_LEVEL_UNIFICATION_PLAN.md status Implements THR-004: Execute LOG_LEVEL Unification Plan * feat: complete remaining kanban tickets (THR-005 to THR-010) THR-005: Test Coverage - Add docs/guides/COVERAGE_GUIDE.md with coverage targets and instructions THR-006: Stress Test Framework - Add tests/stress/stress_test_config.h with test configuration THR-007: Performance Regression - Add cmake/PerfRegression.cmake for automated perf checks THR-008~010: Build Infrastructure - Platform detection already added in THR-002 - CMake structure documented - Test directory documentation added All 10 kanban tickets now complete. * fix(test): resolve Clang compilation errors in error_handling_test Use brace initialization to avoid C++ "most vexing parse" issue where `result<T> res(error(...))` was interpreted as a function declaration instead of object construction. * fix(ci): use glob patterns in hashFiles for macOS compatibility The hashFiles() function was failing on macOS with specific file paths. Using glob patterns provides more reliable cross-platform behavior. * fix(ci): remove hashFiles from cache key to fix macOS The hashFiles() function was causing failures on macOS runners. Using a static cache key based on gtest version instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implement all 10 kanban tickets for thread_system infrastructure improvements.
CORE Tickets (HIGH Priority)
TEST Tickets (HIGH Priority)
BUILD Tickets (MEDIUM Priority)
Files Changed
New Files
.github/workflows/valgrind.yml- Valgrind CI workflowscripts/run_valgrind.sh- Valgrind execution scriptvalgrind.supp- Valgrind suppressionsinclude/kcenon/thread/utils/platform_detection.h- Platform detection utilitiesinclude/kcenon/thread/core/log_level.h- New log level enumunittest/platform_test/platform_edge_case_test.cpp- Platform testsunittest/interfaces_test/error_handling_test.cpp- Error handling testsdocs/guides/COVERAGE_GUIDE.md- Coverage documentationtests/stress/stress_test_config.h- Stress test configcmake/PerfRegression.cmake- Performance regression moduleModified Files
include/kcenon/thread/core/error_handling.h- Added std::error_code supportdocs/advanced/KNOWN_ISSUES.md- Updated Valgrind statusdocs/advanced/LOG_LEVEL_UNIFICATION_PLAN.md- Updated Phase 1 statusdocs/kanban/*.md- All ticket statuses updated to DONETest plan