macOS CI fix — ovtchord Clang compile error (2026-08-15)¶
Problem: the macOS Release build (build-ci-mac) failed in libs/ovtchord with AppleClang: "default member initializer for 'X' needed within definition of enclosing class 'Y' outside of member functions". The nested struct Config types carry default member initializers (int minNotes = 3;), and using Config() as an in-class default argument (explicit Y (const Config& cfg = Config());) is ill-formed per the C++ standard. MSVC accepts it as an extension, which is why the Windows build/tests passed.
Fix: split each affected constructor into a no-arg constructor plus a Config-taking constructor, both declared in the header and defined out-of-line in the .cpp. The no-arg constructor delegates (Y() : Y (Config()) {}), so all existing call sites are unchanged:
ChordEngine e; (tests, benchmark, C API)
AudioProcessor ap (cfg); and AudioProcessor audio; (C API)
member default construction of AudioPreprocessor / ChromaExtractor
ovtchord builds clean; unit tests: 65 checks / 0 failures.
Full plugin unit-test suite: 102 OK / 0 KO.
OpenVoxTuner_VST3 (Release) builds clean.
The real validation is the macOS CI run itself (AppleClang) once this fix is pushed.
CI/release trigger fix — libs/** now in workflow path filters (2026-08-15)¶
Problem: the previous fix push only touched libs/ovtchord/** and docs/**, but neither the ci.yml nor the version-bump.yml push-path filters listed libs/**. Result: the fix was never re-validated by CI on macOS, no version bump ran, no tag was created, and no Release workflow was dispatched (only the docs deploy ran).
Fix: added 'libs/**' to the paths filters of .github/workflows/ci.yml and .github/workflows/version-bump.yml. Both workflows list themselves in their own filters, so pushing these edits triggers CI (Windows + macOS + tests, which now re-validates the ovtchord Clang fix) and the version bump (tag → Release dispatch).