Skip to content

QVAC-23075 feat[api]: accept image_no_upscale in the addon load config - #3725

Merged
iancris merged 13 commits into
mainfrom
feat/QVAC-23075-visionpsy
Aug 18, 2026
Merged

QVAC-23075 feat[api]: accept image_no_upscale in the addon load config#3725
iancris merged 13 commits into
mainfrom
feat/QVAC-23075-visionpsy

Conversation

@yingying0906

@yingying0906 yingying0906 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🎯 What problem does this PR solve?

  • The VisionPsy Flash checkpoint and the base one are indistinguishable to the addon. Their mmprojs declare identical vision hparams, so a Flash checkpoint loaded without this key silently runs base preprocessing.
  • That changes the image token count, so it moves both accuracy and encode time.

📝 How does it solve it?

  • image_no_upscale on the addon load config, forwarded to the vision context, so a caller can override the idefics3-style preprocessing rule the GGUF declares instead of being stuck with it.
  • LoadConfigHandlers.cpp parses 0/off/false or 1/on/true into common_params, and rejects anything else with InvalidArgument.
  • MtmdLlmContext::initVisionContext copies it into mtmd_context_params, next to image_tile_mode.
  • Leaving the key out keeps fabric's -1 model default, so existing callers are unaffected.
  • Needs QVAC-23075 feat: add VisionPsy Nano support and its Flash preprocessing rule qvac-fabric-llm.cpp#205, which adds the field to common_params and mtmd_context_params. That has now merged and been tagged as v10069.1.0 — see the rollout section below for the current build state.

🧪 How was it tested?

  • test_load_config_handlers.cpp covers the parse alongside the other load-config cases.

🔌 API Changes

// llm-llamacpp load config, new optional key
{
  'image-no-upscale': 'on' // or image_no_upscale; 0/off/false or 1/on/true
}

🚚 qvac-fabric 10069.1.0 rollout rides this PR

Phase B of the fabric rollout landed here rather than on a separate bump PR, so the consumer code and
the fabric version it needs meet on one PR.

Fabric PR tetherto/qvac-fabric-llm.cpp#205 — VisionPsy Nano support + Flash preprocessing rule
Tag v10069.1.0 at 50713f4dfc54b1fe09826a343527e83d90f5df62 (head of temp-10069)
Registry PR tetherto/qvac-registry-vcpkg#317must merge first

Three commits were added on top of the feature work:

  1. Overlay removed — the temporary Phase A qvac-fabric overlay port and its overlay-ports keys
    are reverted; the 7 consumers resolve fabric from the registry again.
  2. main merged in — the branch predated the @qvac/llm-llamacpp 0.43.0 release, so the version
    bumps had to be applied on top of current main. Clean merge, no conflicts.
  3. Fabric bump across all 7 consumersversion>= 10069.0.010069.1.0, plus package
    versions and changelog entries:
Package Version
@qvac/embed-llamacpp 0.32.0 → 0.33.0
@qvac/fabric 0.4.0 → 0.5.0
@qvac/llm-llamacpp 0.43.0 → 0.44.0
@qvac/model-fit 0.1.0 → 0.2.0
@qvac/ocr-ggml 0.16.0 → 0.17.0
@qvac/translation-nmtcpp 0.8.0 → 0.9.0
@qvac/vla-ggml 0.19.0 → 0.20.0

No default-registry.baseline changes anywhere.

⚠️ What reviewers should know

  • Registry PR (chore: bump qvac-fabric to 10069.1.0 qvac-registry-vcpkg#317) is now merged and qvac-fabric 10069.1.0 is published, so version>=: 10069.1.0
    resolves and CI has been retriggered. cpp and desktop are green. test-darwin-x64 fails on
    Qwen3 sliding context hard-fails stale reasoning compaction in reasoning.test.js, a known
    darwin-x64 issue on main that this PR does not touch and that also reproduces on
    tmp-ext-rebase-fabric-b10297.
  • Mobile integration tests: https://github.com/tetherto/qvac/actions/runs/32117504412
    Dispatched through the CI router at the branch ref, so the phones run this PR's own prebuilds
    rather than the published package. Android passed. On iOS every shard passed except lightB on
    iPhone 16, where the Device Farm host could not reach PyPI and failed to install its own tooling
    before any test ran. The same shard passed on iPhone 17, and the iOS leg has been rerun.
  • Merging this PR now also publishes 7 packages. It is a release PR as well as a feature PR.
    @qvac/llm-llamacpp 0.44.0 is what ships image_no_upscale, and its changelog entry documents both
    that option and the fabric bump.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

License compliance — clean

No new dependency license findings in this PR.

Warn-only (shadow) mode — this check does not block merges yet.

Updated automatically by the canonical license compliance workflow.

NOTICE presence (advisory)

Missing NOTICE (advisory, does not block):

  • ./.github/actions/release-merge-guard
  • ./docs/website
  • ./packages/ggml-coload-smoke
  • ./packages/fabric/test/integration
  • ./packages/inference-addon-cpp/mobile
  • ./packages/sdk/e2e
  • ./packages/llm-llamacpp/benchmarks/performance
  • ./packages/llm-llamacpp/benchmarks/server
  • ./packages/vla-ggml/sim/server
  • ./packages/embed-llamacpp/benchmarks/performance
  • ./packages/embed-llamacpp/benchmarks/server
  • ./packages/asr-ggml/benchmarks/server

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Workflow security (shadow mode)

zizmor found 1108 finding(s) in .github/ (highest severity: high). This check is warn-only and does not block the merge.

Findings are annotated inline on the changed files and listed in the job summary.

Reproduce locally:

pipx run zizmor==1.27.0 --offline .github/

@yingying0906

yingying0906 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Depends on tetherto/qvac-fabric-llm.cpp#205 and the registry publish that follows it. CI here stays red until then, by design. Build and device evidence is on bench/QVAC-23075-visionpsy-vlm, which carries the vcpkg overlay. It was PR #3726, now closed, and those run records are still readable there.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Status

Current Status: ✅ APPROVED
Approvals so far: Team Lead: 1, Member: 1

Comment thread packages/llm-llamacpp/benchmarks/vlm-benchmark/models.cjs Outdated
Comment thread packages/llm-llamacpp/benchmarks/vlm-benchmark/harness.cjs Outdated
@tobi-legan

Copy link
Copy Markdown
Contributor

Review follow-up: remaining benchmark hardening + QA gaps

I see the cliArgs allowlist bypass is already covered inline, so not duplicating it here. One remaining benchmark hardening item: the workflow prints cli-model.env, which includes LLM_URL and MMPROJ_URL. For arbitrary json: URL/S3 sources, those may be presigned or otherwise private direct links, so please redact URL variables from the log or print only model names/provenance before sourcing the env file.

QA gaps I would like covered before treating the benchmark plumbing as review-ready:

  • Add unit coverage across models.cjs, resolve-cli-model.cjs, and cli-fixture-runner.cjs for cliArgs token preservation, including whitespace-bearing values and --flag=value --forbidden bypass attempts.
  • Add a benchmark-script smoke test for several-sources with matrix_sources=fabric@... and non-default matrix_models, verifying the CLI-only path downloads the requested blobs and passes model-specific args only to fabric.
  • Add parser fixture tests for stdout-parser.js and aggregate.js using real llama-mtmd-cli log snippets, including batch timing, chunk counts, and mixed helper/batch lines to prevent double-counting regressions.
  • Add a contract generation check that asserts image_no_upscale appears consistently in the TypeScript schema, JSON contract, and generated Python models.

@tobi-legan tobi-legan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes based on the benchmark plumbing issues and QA gaps already posted.

Blocking item: the cliArgs validation can be bypassed through the join/split handoff, allowing benchmark-fixed CLI options to be overridden in the fabric CLI leg. Please preserve arg boundaries or revalidate after splitting.

Also please address the URL logging hardening and add focused coverage for models.cjs, resolve-cli-model.cjs, cli-fixture-runner.cjs, CLI-only several-sources, and the stdout/aggregate parser fixtures before this is merge-ready.

@yingying0906

yingying0906 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

@dev-nid @tobi-legan

The cliArgs bypass is fixed in ddc0e63, one element can no longer carry whitespace. The provenance issue is fixed in 3c607e6. Fabric side has the review commits on tetherto/qvac-fabric-llm.cpp#205, ending at 295226e2d. Ready for another look when you are. The SHAs here are post rebase onto main.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 C++ Test Coverage Report

Coverage:

📊 Detailed Coverage
Filename                         Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NmtLazyInitializeBackend.cpp          99                20    79.80%          11                 1    90.91%         157                36    77.07%          66                21    68.18%
NmtLazyInitializeBackend.hpp           2                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
TranslationModel.cpp                 296               168    43.24%          28                 8    71.43%         506               213    57.91%         181               122    32.60%
TranslationModel.hpp                   1                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
nmt.cpp                               72                22    69.44%           9                 1    88.89%         137                28    79.56%          44                16    63.64%
nmt.hpp                               51                 4    92.16%          11                 2    81.82%          53                 4    92.45%          28                 0   100.00%
nmt_beam_search.cpp                  116                25    78.45%          10                 3    70.00%         254                32    87.40%          76                19    75.00%
nmt_graph_decoder.cpp                164                78    52.44%          15                 7    53.33%         540               161    70.19%         112                69    38.39%
nmt_graph_encoder.cpp                 54                13    75.93%           3                 0   100.00%         268                33    87.69%          37                16    56.76%
nmt_loader.cpp                       270                67    75.19%          14                 0   100.00%         774                97    87.47%         161                67    58.39%
nmt_state_backend.cpp                253                94    62.85%          21                 0   100.00%         489               128    73.82%         165                87    47.27%
nmt_tokenization.cpp                  88                21    76.14%           8                 0   100.00%         135                36    73.33%          61                26    57.38%
nmt_utils.cpp                        120                89    25.83%           8                 3    62.50%         180               134    25.56%          78                63    19.23%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                               1586               601    62.11%         140                25    82.14%        3495               902    74.19%        1009               506    49.85%

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

🧪 C++ Test Coverage Report

Coverage:

📊 Detailed Coverage
Filename                         Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NmtLazyInitializeBackend.cpp          99                20    79.80%          11                 1    90.91%         157                36    77.07%          66                21    68.18%
NmtLazyInitializeBackend.hpp           2                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
TranslationModel.cpp                 296               168    43.24%          28                 8    71.43%         506               213    57.91%         181               122    32.60%
TranslationModel.hpp                   1                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
nmt.cpp                               72                22    69.44%           9                 1    88.89%         137                28    79.56%          44                16    63.64%
nmt.hpp                               51                 4    92.16%          11                 2    81.82%          53                 4    92.45%          28                 0   100.00%
nmt_beam_search.cpp                  116                25    78.45%          10                 3    70.00%         254                32    87.40%          76                19    75.00%
nmt_graph_decoder.cpp                164                78    52.44%          15                 7    53.33%         540               161    70.19%         112                69    38.39%
nmt_graph_encoder.cpp                 54                13    75.93%           3                 0   100.00%         268                33    87.69%          37                16    56.76%
nmt_loader.cpp                       270                67    75.19%          14                 0   100.00%         774                97    87.47%         161                67    58.39%
nmt_state_backend.cpp                253                94    62.85%          21                 0   100.00%         489               128    73.82%         165                87    47.27%
nmt_tokenization.cpp                  88                21    76.14%           8                 0   100.00%         135                36    73.33%          61                26    57.38%
nmt_utils.cpp                        120                89    25.83%           8                 3    62.50%         180               134    25.56%          78                63    19.23%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                               1586               601    62.11%         140                25    82.14%        3495               902    74.19%        1009               506    49.85%

VisionPsy answers count-fingers wrong. This does not fix that. It asks a wording
the model gets right instead of asserting on the wording it fails, which is a
workaround and worth calling one.

It is defensible here because the test is
"continuous batching MTMD: mixed image+text batch processes all slot types
correctly". It covers batch admission and slot scheduling. One text-only slot
returning a wrong answer says nothing about either, so gating this test on the
answer to a general-knowledge question was testing the wrong thing. It is not
evidence the model is fine, and the failure is real.

Why a separate vlmUser instead of editing user. CASES feeds two paths with
different system prompts: buildPrompt() to Llama-3.2-1B with the verbose 64-word
instruction, buildVlmBatchItem() to the VLM pair with the one-word instruction.
The two have no wording in common, so editing user just moves the failure.
Measured with llama-cli at the same greedy settings the tests use, holding the
frame at "How many fingers are on X? Answer with one word.":

  one typical human hand   metamorphs      a human hand          5
  one human hand           metamorphs      the human hand        5
  a typical human hand     metamorphs      an adult human hand   5
  one hand                 metamorphs      a normal human hand   5
                                           a single human hand   5
                                           your human hand       5

"one" and "typical" break VisionPsy and are exactly what Llama-3.2-1B needs,
which answers "Ten" with them and "Fifty" without. SmolVLM2 answers 10 either
way. The frame matters as much as the modifier: "are there on a single human
hand" returns "No fingers" where "are on a single human hand" returns 5, so
re-measure against both models before editing either wording.

Reproduced on the research team's own llama.cpp build, upstream 08023072e plus
visionpsy-nano.diff, identical on all 18 cells of a 6-wording by 3-model sweep,
so this is the model and not the port. Reported separately to research.

Verified locally against a fresh addon build, both pairs green:
continuous-batching.test.js 13/13 tests and 167/167 asserts for the default
visionpsy pair and for QVAC_VLM_MODEL=smolvlm2.
@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/model-fit (Android)

Result: passed

metric value
Devices passed 3
Devices failed 0
Test cases total 9
Test cases passed 9
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/translation-nmtcpp (Android)

Result: passed

metric value
Devices passed 2
Devices failed 0
Test cases total 6
Test cases passed 6
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/vla-ggml (Android)

Result: passed

metric value
Devices passed 9
Devices failed 0
Test cases total 27
Test cases passed 27
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/ocr-ggml (Android)

Result: passed

metric value
Devices passed 9
Devices failed 0
Test cases total 27
Test cases passed 27
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/model-fit (iOS)

Result: passed

metric value
Devices passed 2
Devices failed 0
Test cases total 6
Test cases passed 6
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/translation-nmtcpp (iOS)

Result: passed

metric value
Devices passed 3
Devices failed 0
Test cases total 9
Test cases passed 9
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/ocr-ggml (iOS)

Result: passed

metric value
Devices passed 6
Devices failed 0
Test cases total 18
Test cases passed 18
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/vla-ggml (iOS)

Result: passed

metric value
Devices passed 6
Devices failed 0
Test cases total 18
Test cases passed 18
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

🧪 C++ Test Coverage Report

Coverage:

📊 Detailed Coverage
Filename                         Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NmtLazyInitializeBackend.cpp          99                20    79.80%          11                 1    90.91%         157                36    77.07%          66                21    68.18%
NmtLazyInitializeBackend.hpp           2                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
TranslationModel.cpp                 296               168    43.24%          28                 8    71.43%         506               213    57.91%         181               122    32.60%
TranslationModel.hpp                   1                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
nmt.cpp                               72                22    69.44%           9                 1    88.89%         137                28    79.56%          44                16    63.64%
nmt.hpp                               51                 4    92.16%          11                 2    81.82%          53                 4    92.45%          28                 0   100.00%
nmt_beam_search.cpp                  116                25    78.45%          10                 3    70.00%         254                32    87.40%          76                19    75.00%
nmt_graph_decoder.cpp                164                78    52.44%          15                 7    53.33%         540               161    70.19%         112                69    38.39%
nmt_graph_encoder.cpp                 54                13    75.93%           3                 0   100.00%         268                33    87.69%          37                16    56.76%
nmt_loader.cpp                       270                67    75.19%          14                 0   100.00%         774                97    87.47%         161                67    58.39%
nmt_state_backend.cpp                253                94    62.85%          21                 0   100.00%         489               128    73.82%         165                87    47.27%
nmt_tokenization.cpp                  88                21    76.14%           8                 0   100.00%         135                36    73.33%          61                26    57.38%
nmt_utils.cpp                        120                89    25.83%           8                 3    62.50%         180               134    25.56%          78                63    19.23%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                               1586               601    62.11%         140                25    82.14%        3495               902    74.19%        1009               506    49.85%

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/embed-llamacpp (Android)

Result: passed

metric value
Devices passed 6
Devices failed 0
Test cases total 18
Test cases passed 18
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/embed-llamacpp (iOS)

Result: passed

metric value
Devices passed 4
Devices failed 0
Test cases total 12
Test cases passed 12
Test cases failed 0
Test cases skipped 0

View workflow run

@github-actions

Copy link
Copy Markdown
Contributor

Mobile integration tests — @qvac/llm-llamacpp (iOS)

Result: failed

metric value
Devices passed 25
Devices failed 1
Test cases total 78
Test cases passed 77
Test cases failed 1
Test cases skipped 0

View workflow run

….1.0 is published

Reverts the two overlay-validation commits (7210e53 and its re-pin 40a1576).
qvac-fabric v10069.1.0 is tagged and published to the registry, so the 7 fabric
consumers resolve it from the registry again instead of the local overlay
portfile.

Note: until the bundled consumer bump lands, the version>= floors here still
read 10069.0.0, so this branch builds against the previously published fabric.
@github-actions

Copy link
Copy Markdown
Contributor

Security baseline — findings detected

  • TruffleHog: success
  • CodeQL: failure
  • Severity threshold: high

See the job summary and the repository Security tab for details.

This comment is updated automatically by the canonical security workflow.

Brings the branch up to date with origin/main (41 commits) ahead of the
qvac-fabric 10069.1.0 dependency bump. Clean merge, no conflicts.

Needed because the branch predated the @qvac/llm-llamacpp 0.43.0 release: the
fabric bump has to be applied on top of the current versions, or the bumped
numbers collide with main and the 0.43.0 changelog entry goes missing.
Bumps the qvac-fabric vcpkg dependency floor from 10069.0.0 to 10069.1.0 for all
7 fabric consumers, with the matching package version bumps and changelog
entries.

qvac-fabric 10069.1.0 adds VisionPsy Nano support and its Flash preprocessing
rule (tetherto/qvac-fabric-llm.cpp#205) — the fabric side this PR's
image_no_upscale load option depends on.

- embed-llamacpp      0.32.0 -> 0.33.0
- fabric              0.4.0  -> 0.5.0
- llm-llamacpp        0.43.0 -> 0.44.0
- model-fit           0.1.0  -> 0.2.0
- ocr-ggml            0.16.0 -> 0.17.0
- translation-nmtcpp  0.8.0  -> 0.9.0
- vla-ggml            0.19.0 -> 0.20.0

llm-llamacpp's entry also documents image_no_upscale, since this bump is what
creates the 0.44.0 release that publishes it. The other 6 are fabric-only with
no API change.

Registry publish: tetherto/qvac-registry-vcpkg#317. CI cannot resolve
version>= 10069.1.0 until that merges.
@github-actions

Copy link
Copy Markdown
Contributor

🧪 C++ Test Coverage Report

Coverage:

📊 Detailed Coverage
Filename                         Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NmtLazyInitializeBackend.cpp          99                20    79.80%          11                 1    90.91%         157                36    77.07%          66                21    68.18%
NmtLazyInitializeBackend.hpp           2                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
TranslationModel.cpp                 296               168    43.24%          28                 8    71.43%         506               213    57.91%         181               122    32.60%
TranslationModel.hpp                   1                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
nmt.cpp                               72                22    69.44%           9                 1    88.89%         137                28    79.56%          44                16    63.64%
nmt.hpp                               51                 4    92.16%          11                 2    81.82%          53                 4    92.45%          28                 0   100.00%
nmt_beam_search.cpp                  116                25    78.45%          10                 3    70.00%         254                32    87.40%          76                19    75.00%
nmt_graph_decoder.cpp                164                78    52.44%          15                 7    53.33%         540               161    70.19%         112                69    38.39%
nmt_graph_encoder.cpp                 54                13    75.93%           3                 0   100.00%         268                33    87.69%          37                16    56.76%
nmt_loader.cpp                       270                67    75.19%          14                 0   100.00%         774                97    87.47%         161                67    58.39%
nmt_state_backend.cpp                253                94    62.85%          21                 0   100.00%         489               128    73.82%         165                87    47.27%
nmt_tokenization.cpp                  88                21    76.14%           8                 0   100.00%         135                36    73.33%          61                26    57.38%
nmt_utils.cpp                        120                89    25.83%           8                 3    62.50%         180               134    25.56%          78                63    19.23%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                               1586               601    62.11%         140                25    82.14%        3495               902    74.19%        1009               506    49.85%

@github-actions

Copy link
Copy Markdown
Contributor

🧪 C++ Test Coverage Report

Coverage:

📊 Detailed Coverage
Filename                         Regions    Missed Regions     Cover   Functions  Missed Functions  Executed       Lines      Missed Lines     Cover    Branches   Missed Branches     Cover
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NmtLazyInitializeBackend.cpp          99                20    79.80%          11                 1    90.91%         157                36    77.07%          66                21    68.18%
NmtLazyInitializeBackend.hpp           2                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
TranslationModel.cpp                 296               168    43.24%          28                 8    71.43%         506               213    57.91%         181               122    32.60%
TranslationModel.hpp                   1                 0   100.00%           1                 0   100.00%           1                 0   100.00%           0                 0         -
nmt.cpp                               72                22    69.44%           9                 1    88.89%         137                28    79.56%          44                16    63.64%
nmt.hpp                               51                 4    92.16%          11                 2    81.82%          53                 4    92.45%          28                 0   100.00%
nmt_beam_search.cpp                  116                25    78.45%          10                 3    70.00%         254                32    87.40%          76                19    75.00%
nmt_graph_decoder.cpp                164                78    52.44%          15                 7    53.33%         540               161    70.19%         112                69    38.39%
nmt_graph_encoder.cpp                 54                13    75.93%           3                 0   100.00%         268                33    87.69%          37                16    56.76%
nmt_loader.cpp                       270                67    75.19%          14                 0   100.00%         774                97    87.47%         161                67    58.39%
nmt_state_backend.cpp                253                94    62.85%          21                 0   100.00%         489               128    73.82%         165                87    47.27%
nmt_tokenization.cpp                  88                21    76.14%           8                 0   100.00%         135                36    73.33%          61                26    57.38%
nmt_utils.cpp                        120                89    25.83%           8                 3    62.50%         180               134    25.56%          78                63    19.23%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TOTAL                               1586               601    62.11%         140                25    82.14%        3495               902    74.19%        1009               506    49.85%

@iancris

iancris commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

/review

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.

6 participants