Repository navigation
[Re-land] #118 jemm native worker: 9 deduped commits onto main, conflict map and fidelity check #154
Description
Re-land #118: cherry-pick 9 commits onto a branch from main
Why
#118 ("jemm: add native decision worker and pinned weight export") was merged at 2026-10-21T14:09:41Z with base=codex/qwen-vision-27b, one minute after #117 merged that branch into main. The result: compare/0410e84...codex/qwen-vision-27b = ahead_by 19 / behind_by 42, and the JEMM native worker (plus follow-ups) is not in main. #122, #123 and #143 still have that branch as base and modify files that do not exist in main, so they cannot land until this content does.
Decision (2026-10-21): re-land by deduplicating the commits by patch-id and cherry-picking the remainder, in order, onto a new branch from main. Do not merge the whole branch (#117 is already in main; the branch is 42 commits behind) and do not drop (#118 is real merged work).
Dedupe result (patch-id)
git cherry -v origin/main origin/codex/qwen-vision-27b -> 9 non-merge commits, all +: no patch-equivalent exists in main. git rev-list --no-merges origin/main..origin/codex/qwen-vision-27b = 9, so the 10 merge commits carry no additional commits. However, they carry conflict-resolution content ("evil merges"); see the fidelity check below - that content is not reproduced by a flat cherry-pick alone.
Branch tip at snapshot: 8945af81cbb747033836c90d85ca31907c0ec1c5.
Commit list (cherry-pick order, oldest first)
| # | commit | subject | diff |
|---|---|---|---|
| 1 | ef1fd63 |
jemm: add native decision worker and pinned weight export | 16 files, +4168 -1 |
| 2 | a3a861c |
fix(jemm): warm vision before readiness and document parity limits | 17 files, +793 -25 |
| 3 | 9d4436e |
Apply separate FP32 language LoRA before native projection consumers | 5 files, +1115 -1 |
| 4 | 96659ef |
Preserve original Jemm language weights and FP32 LoRA in v2 exports | 9 files, +430 -54 |
| 5 | a3c7a78 |
Match original base projection shapes for unmerged LoRA models | 4 files, +370 -10 |
| 6 | db400fb |
Preserve all-image projection shapes in native 27B vision | 4 files, +616 -32 |
| 7 | 3a2ff03 |
Run Jemm vision projections over all request images together | 1 file, +1 -3 |
| 8 | 06ea197 |
jemm: align unmerged multi-image execution with reference numerics | 26 files, +2724 -76 |
| 9 | 91cc5c2 |
docs(jemm): align registration with v2 multi-image validation | 2 files, +2 -2 |
Conflict map (measured in a scratch worktree from 0410e84)
Cherry-picking the sequence above conflicts 6 times (recorded, then resolved mechanically by taking the re-land side to finish the simulation):
| commit | conflicting files |
|---|---|
1 ef1fd63 |
Cargo.toml (workspace members; union of both lists resolves it, verified) |
2 a3a861c |
README.md, docs/supported-models.md, mkdocs.yml, recipe/README.md |
3 9d4436e |
src/models/qwen3_5/native/src/model.rs |
6 db400fb |
src/models/qwen3_5/native/src/vision/model.rs |
8 06ea197 |
src/backends/cuda/qwen3_5/README.md |
9 91cc5c2 |
docs/supported-models.md |
Fidelity check (do not skip)
Reference tree = the conflict-free branch->main merge result at 0410e84:
git merge-tree --write-tree origin/main origin/codex/qwen-vision-27b
# -> 7054a0f02b50b37c12e073ebe4cd7d25f56d7c69 (no CONFLICT, 60 files, +10129 -76)After the cherry-pick branch is finished, git diff 7054a0f0 <re-land-branch> must be empty (or every difference explained). A simulation that resolved all 6 conflicts by taking the re-land side still differs from the reference tree in 14 files (+62 -331), which is what the merge commits' resolution content buys; the executor must hand-merge these, not just take one side:
Cargo.lock
README.md
docs/supported-models.md
mkdocs.yml
recipe/README.md
src/backends/cuda/qwen3_5/README.md
src/backends/cuda/qwen3_5/qwen3_5.backend.json
src/models/qwen3_5/native/src/model.rs
src/models/qwen3_5/native/src/vision/model.rs
tests/jemm/contract.rs
tests/qwen3_5/lora.rs
tests/qwen3_5/lora_fake.c
tests/qwen3_5/vision_batch.rs
tests/qwen3_5/vision_batch_fake.c
Acceptance
- New branch
re-land/118from0410e84(or newermain; regenerate the reference tree ifmainmoved) with the 9 commits in the order above;git diff <reference-tree> <branch>empty or explained. - CI
rust+benchmarksgreen on the PR head: record run id + tip SHA in the PR. - Local on the branch tip:
cargo fmt --all --checkandcargo test --workspace --locked(macOS Apple M4, no GPU) - green; CUDA / accuracy / latency / e2e are not run (no NVIDIA GPU, no model weights locally). - New PR
base=main, review approval; repo owner merges (bots do not merge/push). After merge,#127->#122->#123->#143can retarget per [Triage] 30 open PRs: merge / rebase / author buckets, merge order and acceptance criteria (2026-10-21) #153.
Notes
- Do not cherry-pick merge commits; they are maintenance merges (content covered by the 9 commits, resolutions covered by the fidelity check above).
- The full-branch merge is conflict-free, but it was rejected in favour of the flat cherry-pick to keep main's 42 newer commits out of the PR history; the trade-off is exactly the 14-file residual above.
- Snapshot:
main=0410e84, 2026-10-21 ~23:10 +08. Re-verify before executing.
Executor: OpenCode/Codex (bots only produce the plan). Related: #153 (merge manifest), #118, #122, #123, #143.
Activity
hsliuustc0106 commentedon Oct 21, 2026
Decision update (2026-10-21 ~23:20 +08): re-land by whole-branch merge, not cherry-pick
Per coordinator review of the evidence above: withdraw the flat cherry-pick plan and re-land
codex/qwen-vision-27bas a single merge PR intomain.Rationale (from this issue's own measurements):
git merge-tree --write-tree origin/main origin/codex/qwen-vision-27b= exit 0, no conflicts (60 files, +10129 -76).ef1fd63->Cargo.toml) and needs 6 conflict resolutions plus a 14-file fidelity residual, i.e. it invents work that the merge does not need.Revised plan:
codex/qwen-vision-27b->main(basemain;#118itself cannot be reused because it was merged into the feature branch). Merge-commit PR, do not squash/rebase the source history.rust+benchmarks; record run id + tip SHA in the PR. Existing pre-merge CI runs do not transfer.maintip runcargo test --workspace --locked+cargo fmt --all --checklocally (macOS Apple M4, no GPU) and note the CI run formain.#127->#122->#123->#143can be retargeted per [Triage] 30 open PRs: merge / rebase / author buckets, merge order and acceptance criteria (2026-10-21) #153.#127still goes first (it conflicts with the re-landedsrc/models/qwen3_5/native/src/vision/model.rsif the re-land lands first).What is kept from the withdrawn plan: the 9-commit patch-id dedupe (no duplicate work in
main), the commit list, and the conflict map above remain as a description of the branch content. They are no longer an execution recipe.Status: this update supersedes the "cherry-pick" wording in the title/body above; the issue title cannot be edited retroactively in this comment, so read this comment as authoritative.