Repository navigation
[Integration]: Reconcile OmniJev eager PR #129 with current main before prefix reuse #171
Description
Existing implementation, not a second worker
Follow-up to #114. The contract/export/head slice #120 is merged. The native eager worker already exists in #129, and request-local prefix reuse in #134. Reuse these contributions; do not reimplement their CPU contract/export or create a competing readout API.
Fresh GitHub reads on 2026-10-25 report both PRs open and mergeable: CONFLICTING against main:
- omnijev: add the native eager worker #129 head
b270a56376b3d19e22d6df04dcc92ef3676bd0c1. - omnijev: reuse the prefix within a request #134 head
3d73cda023138c6e8d69162f7097e2689c4164a4. - Inspected main:
cd302b6e3d7723ebfc33bba9698da2c1e881f203.
#129's body still describes #99 as a pending merge dependency, but #99 is now merged. Historical passing checks and author-run numerical evidence do not validate a future conflict-resolution head.
First acceptance slice: integrate #129
- Coordinate with the existing author (twu3202) and update the existing eager-worker carrier against current main; preserve authorship and the established contract/export.
- Resolve shared Qwen/vision/input/ABI changes against the current canonical implementation. Keep model-specific processing and heads in OmniJev; avoid parallel shared readout APIs.
- Verify the pinned source/checkpoint/base and reference environment recorded in omnijev: add the request contract, preparation, heads and export #120/omnijev: add the native eager worker #129. Preserve the processor's 602112-pixel budget, restored option embeddings and tied vocabulary extent.
- Re-run exact preparation/position/readout fixtures and reference head/feature tests. Choice and region Noul require full-vocabulary log-probability denominators; Score uses the ordinal head. Last-token-only or selected-label logits cannot replace these features.
- Re-run the actual worker/reference corpus at the integrated head, recording merge drift, probabilities and decision agreement under declared tolerances. Retain the difficult LM-feature, abstention, Score and near-boundary Noul cases from the existing recipe.
- Check real warmup before readiness, first/repeated requests directly and through the frontend, and request resource retention through cancellation/errors. Report scope-specific GPU evidence separately from CPU/CI checks.
- Refresh relevant existing Cua-S1/shared-Qwen regressions if conflict resolution changes shared execution, vision or decoding behavior.
Prefix reuse comes after the eager baseline
Once #129 has current-head acceptance, update #134 independently. Compare its request-local reuse with both the accepted eager baseline and the pinned reference, preserving GDN recurrent/convolution state, multimodal positions, selected hidden rows, LM features and reference usage accounting. Keep its performance claim separate from the eager integration's correctness claim.
The contribution goal is to unblock existing OmniJev native work, not to count an open PR as merged support. This issue records current integration work and does not claim an inference run or change another contributor's branch.
Activity
twu3202 commentedon Oct 25, 2026
Thanks for laying this out. #129 is refreshed at
a4a9d2dand #134 at6c60fb8, onmain7b4c194. On these heads, on sm_89:/healthwaits for the warmup request (ready after 6 s), and the HTTP checks behave as before: 400/413/422, 16 of 24 concurrent requests admitted withRetry-Afteron the rest, and abandoned requests still release their slots.The only shared change in the resolution is
image_decode.rs:decode_data_urlkeeps its limits and now callsdecode_rgb8, and main's decode tests pass. Both descriptions are updated.