Skip to content

Add independent event novelty directionality for v0.2.0 - #2

Merged
PullsarDev merged 6 commits into
mainfrom
feature/event-directionality
Oct 24, 2026
Merged

PullsarDev merged 6 commits into
mainfrom
feature/event-directionality

Conversation

@PullsarDev

@PullsarDev PullsarDev commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Add CandidateSnapshot::eventDirectionality{1.f} so hosts can attenuate novelty's angular gate independently of raw preference scoring. Directionality 1 reuses the existing rounded CandidateTrace::gate exactly; other values use distanceGate * (1 - d * (1 - angleGate)) * perceptionStrength. Distance, perception, raw scoring and temporal policy remain unchanged. Invalid directionality is rejected as candidate-level InvalidEvent at the existing precedence point, even for absent events or beta zero.

CandidateTrace::noveltyGate records the exact rounded gate used. It occupies x64 padding after eventStrength, preserving the 96-byte trace size, 8-byte alignment and all 17 v0.1.0 field offsets. Positional trace aggregate initializers must account for the inserted field; consumers should rebuild with matching headers and library. The host still controls perception strength, event generation and candidate range. The proposed next release is v0.2.0; the current version remains 0.1.0.

Validation on final head 7910003:

  • All 10 CI jobs pass: MSVC/GCC/Clang Debug (default and constrained), Release plus consumers, and Clang ASan/UBSan.
  • Local full CTest: 15/15 for the freshly built v0.1.0 Release and candidate Release; 15/15 for candidate Debug and constrained Debug; Release consumer 1/1.
  • The x64 size and all legacy offsets are checked by the smoke regression and pass with local MSVC 19.38, CI MSVC 19.51, GCC 13.3 and Clang 18.1.
  • Independent 4,000-frame × 40-candidate default replay against v0.1.0 has identical binary serialization of all decisions, memory and pre-existing trace fields.
  • Prepared allocation regression reports zero allocations across 404 calls, including nondefault directionality and rejection paths.

Direct Release comparison of v0.1.0 and the final candidate kernel uses identical MSVC 19.38 optimization flags and a byte-identical harness, three independent processes per revision, five runs × 128 cycles, alternating process order, normal priority and fixed logical-CPU affinity. All six processes pass status/pairing/replay/tracing checks with zero allocations across 3,604,480 measured single-observer calls and 200,000 reference calls per process.

Nonempty batch medians are 0.8–3.8% slower than v0.1.0; reference medians are 1.0–2.0% slower. Reference core is 21.176 → 21.394 ms per simulated second and novelty is 21.649 → 22.085 ms. A candidate reference-core process spike to 29.844 ms and synchronous-tick p99 of 18.493 ms are retained. No performance improvement or fixed overhead budget is claimed. Both kernels have 96-byte traces.

Full 44-configuration matrix, four reference variants, process ranges, tails, environment and reproduction steps. The report presents the direct release/candidate comparison without intermediate implementation history. The measured candidate kernel is identical to final-head production, test, harness and build content; the evidence commit updates only this report.

Remaining limits: one desktop, scheduling/frequency variation, synthetic workloads, unverified other architectures and no cross-platform bit-exact guarantee. Nondefault directionality is covered for correctness/allocation behavior rather than benchmarked for timing.

Draft for final review. No merge, tag or release is requested.

@PullsarDev
PullsarDev force-pushed the feature/event-directionality branch from e7599fd to 7b35d48 Compare October 24, 2026 06:33
@PullsarDev
PullsarDev marked this pull request as ready for review October 24, 2026 06:57
@PullsarDev
PullsarDev merged commit eef3f61 into main Oct 24, 2026
10 checks passed
@PullsarDev
PullsarDev deleted the feature/event-directionality branch October 24, 2026 06:59
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