Skip to content

Keep ML feature values paired with their nearest timestamps - #87

Merged
Jacob-Met merged 4 commits into
mainfrom
support/ml-feature-order-20261008-713adaab
Oct 8, 2026
Merged

Jacob-Met merged 4 commits into
mainfrom
support/ml-feature-order-20261008-713adaab

Conversation

@Jacob-Met

@Jacob-Met Jacob-Met commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Correct nearest-feature values

An ML bundle currently passes retained feature row order to numpy.searchsorted. Real radar extraction can preserve embedded session timestamps in an order different from MCAP log order. In the retained MCAP → radar extractor → native feature writer → public Job API witness, the last window selects energy 4 instead of the nearest sample's energy 9.

The loader now checks for a timestamp inversion and stably applies one permutation to both integer timestamps and feature values. The runtime change is four added lines. Ordered data, duplicate relative order and the existing later-time equal-distance choice retain their behavior. Stored inputs, feature writers, label aggregation, validity, center generation, metadata, schema and the unrelated internal self-digest are unchanged.

Closes #86.

Source and current ownership

Received composition 33c6fb3409970941521bd37d236ddda4d3bed581, tree 0426265ad9d834f205bcece47eb6d69c94672905, is the genuine composition of qualified contribution a70e2683 and current main a2c89957. Native equivalent b733bcdb has the identical tree. All 1,157 unrelated main leaves remain exact, including the newly landed source picker and saved-job parameter comparison. The complete current progress document remains an unchanged suffix after the owned addition. All 96 Python library leaves were identical between the received parent and current main; no additional runtime replay was needed for these desktop/evidence changes.

Reviewed producer SHA-256 ed67d94ded834d63599797bbd8efb7b26f125bd216f52bcb7f01febb928922ce; paired receiver 7a5e226afb9c0f49eadf6d4c25b8bc22575f1fdd04afdac854cf8aa4adee58be.

Qualification

  • Same final 17 actual native Python 3.12.10 receivers: original 6 passed/11 failed; candidate 17 passed, zero errors/skips.
  • Separate 14 inherited metadata, pose, kinematics, ML, CLI and actual evaluator cases passed.
  • All 43 original input files match byte-for-byte. Six ordered output Parquets are byte-identical; eleven unordered outputs change to the correct pairing. Every non-energy column remains exact.
  • Independent source/receipt review by chatgpt:/root/mac_execution approved the exact four-line patch, full producer, all 17 receivers and documentation. It independently restored the original bytes and verified all 43 input pairs and 17 output identities, without replay.
  • Scoped Ruff, test formatting and the materialized SPDX gate pass.

The initial receiver's four 2 ns windows were below the schema minimum and are retained as a separate receiver defect. Corrected final tests use valid durations and include exact adjacent nanoseconds above 2^53. Original failures and both final source maps remain intact.

Evidence and limits include a verified 265,323-byte capsule with 296 regular members, exact source/test/runtime/dependency provenance, complete paired inputs/outputs, raw process/JUnit/logs, independent review and current-main preservation receipt. Earlier native results retain their original source bindings. The complete published composition must pass the existing supported Windows Python and C++/native workflow before integration; no hardware, installed-desktop or scientific-validity claim is made.

Exact diagnostic successor

Current head 050f41170a656b6a6177770b3d21749ef5263b36, tree a0d17ec8df857b295321fef89e04a831fe51e8d6, is a normal guarded successor of 33c6fb34. Native equivalent 66d657c2 has the same tree. It changes only the existing CI wrapper’s -q argument to -vv and adds --durations=20, plus three uniquely scoped evidence files. The complete test selection, 300-second deadline, JUnit/process/source checks and acceptance rules remain exact. Product and maintained receiver hashes above are unchanged. Root independently reviewed the complete 272-byte diagnostic patch before publication.

The original run 37829510696 is retained as an unaccepted Python gate: it reached the 300-second timeout with null process exit/counts/JUnit and no assertion failure shown. Its quiet progress is not a pass claim or proof of the active case. The separate C++ job passed 30 CTests and six native integration cases. The preceding current-main control passed 608 tests plus six existing missing-daemon skips in 227.34s on the same runner image/dependency versions; that control does not qualify this head.

The diagnostic packet retains the complete original job logs, API artifact metadata, receipts and exact original/candidate wrapper. Its 68,167-byte capsule contains 13 verified members, SHA-256 847566053aae5c9623fb3832b09fa18ad0ab3459e56eb319f2495db90f41b2ec. Artifact ZIPs were not retrieved; the prior CDN limitation remains respected. One fresh supported diagnostic gate is now required. No quiet rerun, deadline increase, deselection or relaxed acceptance was used.

@Jacob-Met
Jacob-Met merged commit e48825b into main Oct 8, 2026
3 checks passed
@Jacob-Met
Jacob-Met deleted the support/ml-feature-order-20261008-713adaab branch October 8, 2026 20:10

Jacob-Met commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner Author

Integrated as e48825b1b37544f4c31912e3c29a3918704f5456, preserving qualified tree a0d17ec8df857b295321fef89e04a831fe51e8d6 from head 050f41170a656b6a6177770b3d21749ef5263b36. Exact-head gates passed: Python625 passed/6 existing daemon-availability skips; CMake30 CTests+6 native cases; camera3 cases each across original/legacy/plugin fixtures plus its negative control.

The earlier quiet Python run remains an unaccepted timeout. Diagnostic pytest completed in296.94s under the unchanged300s deadline; PR71 retains suite-budget ownership. Source integration does not establish physical-camera or installed-estate adoption.

Actions-hold readback: Jacob's hold at HAMON143 comment6067592767 was posted at19:36:07 UTC, before our20:10:08 merge. This team discovered and read that hold only during the subsequent current-ownership recovery. The merge had already started two push runs,37837421592 and37837418703; fresh readback shows both completed successfully, with neither queued nor running. No cancellation occurred, and this does not undo completed execution or its potential charges. Future Actions-triggering writes are held; native work continues.

Native final custody is /srv/hamon-estate/chatgpt-capturesuite-nearest-features-713adaab/evidence/pr87-ci-final/qualification.json (SHA256 c0cfd8dd655fd2878543b9be63fe1b9d9bb2ccd11e2165ff5e9760b80b2f3fdb) and integration.json (b6c66ad42f77e23bfbe6c8cb3aa9733395973a751700da83c5bd90880d4fcf7f). Claim4659 closed as integrated at Conscience4981. Historical unknown attempts remain unchanged.

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.

Keep feature timestamp/value pairs aligned when building ML windows

1 participant