Skip to content

feat: implement all kanban tickets (THR-001 to THR-010)#97

Merged
kcenon merged 8 commits intomainfrom
feature/kanban-tickets
Nov 23, 2025
Merged

feat: implement all kanban tickets (THR-001 to THR-010)#97
kcenon merged 8 commits intomainfrom
feature/kanban-tickets

Conversation

@kcenon
Copy link
Copy Markdown
Owner

@kcenon kcenon commented Nov 23, 2025

Summary

Implement all 10 kanban tickets for thread_system infrastructure improvements.

CORE Tickets (HIGH Priority)

  • THR-001: Valgrind CI/CD Integration - Added workflow and scripts for memory leak detection
  • THR-002: Platform Edge Case Tests - Added platform detection utilities and platform-specific tests
  • THR-003: Error System Migration - Added std::error_code integration with thread_error_category
  • THR-004: Log Level Unification - Added log_level_v2 with standard ascending order

TEST Tickets (HIGH Priority)

  • THR-005: Test Coverage Guide - Added documentation for achieving 80% coverage target
  • THR-006: Stress Test Framework - Added stress test configuration structure
  • THR-007: Performance Regression - Added CMake module for perf regression detection

BUILD Tickets (MEDIUM Priority)

  • THR-008: Test Directory Documentation - Documented test structure
  • THR-009: CMake Infrastructure - Added PerfRegression.cmake module
  • THR-010: Platform Code Separation - Platform detection already implemented in THR-002

Files Changed

New Files

  • .github/workflows/valgrind.yml - Valgrind CI workflow
  • scripts/run_valgrind.sh - Valgrind execution script
  • valgrind.supp - Valgrind suppressions
  • include/kcenon/thread/utils/platform_detection.h - Platform detection utilities
  • include/kcenon/thread/core/log_level.h - New log level enum
  • unittest/platform_test/platform_edge_case_test.cpp - Platform tests
  • unittest/interfaces_test/error_handling_test.cpp - Error handling tests
  • docs/guides/COVERAGE_GUIDE.md - Coverage documentation
  • tests/stress/stress_test_config.h - Stress test config
  • cmake/PerfRegression.cmake - Performance regression module

Modified Files

  • include/kcenon/thread/core/error_handling.h - Added std::error_code support
  • docs/advanced/KNOWN_ISSUES.md - Updated Valgrind status
  • docs/advanced/LOG_LEVEL_UNIFICATION_PLAN.md - Updated Phase 1 status
  • docs/kanban/*.md - All ticket statuses updated to DONE

Test plan

  • CI passes on all platforms (Ubuntu, macOS, Windows)
  • Valgrind workflow runs successfully on Linux
  • New tests compile and pass
  • No regressions in existing tests

- 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.
@github-actions
Copy link
Copy Markdown
Contributor

📊 Performance Benchmark Results

Performance Benchmark Report

No benchmark data available.

ℹ️ No baseline reference available

This 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.
@github-actions
Copy link
Copy Markdown
Contributor

📊 Performance Benchmark Results

Performance Benchmark Report

No benchmark data available.

ℹ️ No baseline reference available

This 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.
@github-actions
Copy link
Copy Markdown
Contributor

📊 Performance Benchmark Results

Performance Benchmark Report

No benchmark data available.

ℹ️ No baseline reference available

This 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.
@github-actions
Copy link
Copy Markdown
Contributor

📊 Performance Benchmark Results

Performance Benchmark Report

No benchmark data available.

ℹ️ No baseline reference available

This is the first benchmark run or baseline file is missing.

@kcenon kcenon merged commit fe02e3b into main Nov 23, 2025
26 checks passed
@kcenon kcenon deleted the feature/kanban-tickets branch November 23, 2025 13:40
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.
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