Story: Unblock the unity build by hoisting the small-kappa threshold
Table of Contents
This page documents a story in Sprint 28. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
The analytics quant component compiles with unity builds enabled, and the value has one definition.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 28 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-14 |
3. Acceptance
- One definition of small_kappa_threshold exists, in a public header.
- The component builds with CMAKE_UNITY_BUILD both on and off.
- All six call sites keep the value they had.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Scaffold story: Unblock the unity build by hoisting the small-kappa threshold | DONE | 2026-10-14 | 2026-10-14 | Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR. |
| Hoist small_kappa_threshold into one public constant | DONE | 2026-10-14 | 2026-10-14 | Initial task for: Unblock the unity build by hoisting the small-kappa threshold |
5. Decisions
- The six copies became one public constant instead of six uniquely named ones. The copies were the same tolerance, and renaming them would have hidden that.
- The constant is
inline constrather than the house-styleinline constexpr, becausestd::sqrtis notconstexprin this toolchain. - The header lives in the component's public include tree, beside the process layer it serves, so any consumer can use the same value.
6. Out of scope
- Any further unity-build blockers. This clears the first collision only. A whole-tree unity build has to run again to find the next one.