Skip to content

refactor(headers): expose public types via non-detail paths#681

Merged
kcenon merged 1 commit into
mainfrom
refactor/issue-577-internal-header-separation
Feb 4, 2026
Merged

refactor(headers): expose public types via non-detail paths#681
kcenon merged 1 commit into
mainfrom
refactor/issue-577-internal-header-separation

Conversation

@kcenon

@kcenon kcenon commented Feb 4, 2026

Copy link
Copy Markdown
Owner

Closes #577

Summary

  • Create types/result.h as public API for Result<T> types
  • Create config/feature_flags.h as public API for feature detection
  • Update all interface headers to use types/result.h instead of detail/utils/result_types.h
  • Update public headers to use config/feature_flags.h instead of detail/config/feature_flags.h
  • Update network_system.h to use umbrella headers

Why This Change

The EPIC #577 goal is to properly encapsulate internal implementation details. Previously, public API headers (interfaces) were directly including detail/ headers, which violates the separation between public API and internal implementation.

This PR ensures:

  • Public API headers don't directly include detail/ paths
  • Umbrella headers (utils.h, config/config.h, etc.) remain the proper entry points for exposing internal types
  • Backward compatibility is maintained (the types themselves haven't changed)

Test Plan

  • Build passes (cmake --build build --config Release)
  • 99%+ tests pass (1472/1473, flaky tests only)
  • Interface headers no longer include detail/ directly

- Create types/result.h as public API for Result<T> types
- Create config/feature_flags.h as public API for feature detection
- Update all interface headers to use types/result.h
- Update public headers to use config/feature_flags.h
- Update network_system.h to use umbrella headers

This ensures public API headers don't directly include detail/ paths,
improving encapsulation while maintaining backward compatibility.

Part of #577
@github-actions

github-actions Bot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

Performance Comparison

Base Branch Results

No base results

PR Branch Results

No PR results

@kcenon kcenon merged commit e411539 into main Feb 4, 2026
44 checks passed
@kcenon kcenon deleted the refactor/issue-577-internal-header-separation branch February 4, 2026 16:46
kcenon added a commit that referenced this pull request Apr 13, 2026
- Create types/result.h as public API for Result<T> types
- Create config/feature_flags.h as public API for feature detection
- Update all interface headers to use types/result.h
- Update public headers to use config/feature_flags.h
- Update network_system.h to use umbrella headers

This ensures public API headers don't directly include detail/ paths,
improving encapsulation while maintaining backward compatibility.

Part of #577
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.

[EPIC] refactor: Apply Facade pattern to reduce protocol header complexity

1 participant