QVAC-3127: Updated port qvac-lib-inference-addon-cpp to v0.6.1#13
Merged
Conversation
olyasir
approved these changes
Jul 9, 2025
hamlingreen
approved these changes
Jul 9, 2025
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 20, 2026
…18993) Re-pins the ggml-speech port from tetherto/qvac-ext-ggml @ 9562ed04 (2026-05-18, port-version 2 just landed in tetherto#156) to Zbig9000/qvac-ext-ggml @ 45dbdecd (2026-05-19, HEAD of QVAC-18992 PR tetherto#13). The new REF is a superset of 9562ed04: - 9562ed04 (GustavoA1604, PR tetherto#11) ggml-backend: android per-arch CPU variant dlopen fallback --- already on tetherto/speech - 19eac6f0 (ggml-org) sync up to ggml-org v0.10.2 (137 commits, bundled-ggml pin matching whisper.cpp v1.8.4.3's sync-ggml.last) - 4 conflict-resolution union merges in src/ggml-metal/ (additive, speech-stack patches + upstream's new GGML_OP_ROLL) --- details in tetherto/qvac-ext-ggml PR tetherto#13 TEMPORARY: REPO stays pinned at Zbig9000 fork until PR tetherto#13 lands on tetherto/speech. After that, flip REPO -> tetherto/qvac-ext-ggml + recompute SHA512 (no other port changes needed). Switches Android build to full dynamic backends (QVAC-18993): - GGML_CPU_STATIC=ON --> GGML_CPU_ALL_VARIANTS=ON - All backends (per-arch CPU + Vulkan + OpenCL) ship as MODULE .so loaded at runtime via ggml's GGML_BACKEND_DL loader. - Picks up the .so files into vcpkg's bin/ via post-install file(GLOB). Adds an `-isystem` shim that injects spirv-headers on the include path when the vulkan feature is on: the QVAC-18992 ggml-org v0.10.2 merge introduces ggml-vulkan.cpp code that uses spv::* enums unconditionally for SPIR-V capability injection (rounding-mode RTE). Vulkan-Headers itself no longer bundles spirv.hpp, so the standalone SPIRV-Headers tree must be on the include path. ggml-vulkan's CMakeLists doesn't find_package(SpirvHeaders) so we inject via CMAKE_CXX_FLAGS. version-date 2026-04-09 --> 2026-05-19 port-version 2 --> 3 (continues after tetherto#156's bump to 2026-04-09#2) Co-authored-by: Cursor <cursoragent@cursor.com>
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 21, 2026
cl.exe does not understand the GCC/Clang `-isystem` flag --- it treats it
as a positional argument (a source file path), then tries to open the
following include directory path as a source file and dies with:
c1xx: fatal error C1083: Cannot open source file:
'C:/.../x64-windows/include': No such file or directory
Surfaced on tetherto/qvac/pull/2124 prebuild / win32-x64 against
whisper-cpp[vulkan].
The include shim now emits `/I<path>` on MSVC (and the legacy `/I` form,
no space, for maximal cl-flavour compatibility) and keeps `-isystem
<path>` on GCC/Clang.
Note: this PR previously also carried the ggml-speech port bump
(b4cf7b2) and the matching ggml-speech-side MSVC shim. Both have been
dropped because the consumer-side migration to ggml-speech
(QVAC-18992) is staying behind PR tetherto#13 / PR tetherto#28 for now; only the
whisper-cpp bits are required to land for the Android dynamic-backend
work on PR #2124.
Co-authored-by: Cursor <cursoragent@cursor.com>
GustavoA1604
pushed a commit
that referenced
this pull request
May 21, 2026
… MSVC fix (QVAC-18300, QVAC-18993) (#152) * whisper-cpp: bump to 1.8.4.3 with Android OpenCL + dynamic-backend + spirv-headers (QVAC-18300, QVAC-18992, QVAC-18993) Brings the whisper-cpp port up to the upstream-sync snapshot at v1.8.4.3 (QVAC-18991, merged into tetherto/qvac-ext-lib-whisper.cpp master via PR #25) plus the Android speech-stack flags landed for QVAC-18300 + QVAC-18992 + QVAC-18993: - opencl feature (QVAC-18300): Android-only enable-path, OpenCL/Vulkan side-by-side, COOPMAT[2] disabled to keep Adreno-class GPUs healthy. - Android dynamic-backend mode (QVAC-18993): GGML_BACKEND_DL=ON, GGML_CPU_ALL_VARIANTS=ON, GGML_CPU_REPACK=ON. Static dispatcher + per-microarch CPU .so + GPU .so files side by side, picked by ggml's HWCAP-aware loader at runtime. - spirv-headers dependency for the vulkan feature (QVAC-18992): the upstream ggml-org v0.10.2 sync pulled in ggml-vulkan.cpp code that uses spv::* enums unconditionally for SPIR-V capability injection (RTE rounding-mode); Vulkan-Headers no longer bundles spirv.hpp, so the standalone SPIRV-Headers tree must be on the include path. Inject via CMAKE_CXX_FLAGS=-isystem since ggml-vulkan's CMakeLists doesn't find_package(SpirvHeaders). REF currently pins Zbig9000/qvac-ext-lib-whisper.cpp @ 14620c88 which is the tree-equivalent of merged PR #25 (upstream sync) + merged PR #27 (tts-cpp <atomic>) + still-open PR #28 (bundled-ggml Android dynamic-backend fixes). After PR #28 lands on tetherto/master and a v1.8.4.x tag is published, flip REPO -> tetherto and the tag/SHA (no other port changes needed). The previous port-version 2's two patch files (0001-ggml-allow-backend-dl-with-static-core.patch, 0002-ggml-android-cpu-variant-dlopen-fallback.patch) are now upstream-equivalent commits on whisper.cpp PR #28 --- ports is patch-free. SHA512 = 733effd6... matches the github.com/Zbig9000/qvac-ext-lib-whisper.cpp/archive/14620c88....tar.gz tarball verified via independent download + sha512sum. version 1.8.4.2 --> 1.8.4.3 port-version 1 --> 3 (continues after the previous port-version 2 patch-based recipe) Co-authored-by: Cursor <cursoragent@cursor.com> * whisper-cpp: fix spirv-headers -isystem shim on MSVC (QVAC-18993) cl.exe does not understand the GCC/Clang `-isystem` flag --- it treats it as a positional argument (a source file path), then tries to open the following include directory path as a source file and dies with: c1xx: fatal error C1083: Cannot open source file: 'C:/.../x64-windows/include': No such file or directory Surfaced on tetherto/qvac/pull/2124 prebuild / win32-x64 against whisper-cpp[vulkan]. The include shim now emits `/I<path>` on MSVC (and the legacy `/I` form, no space, for maximal cl-flavour compatibility) and keeps `-isystem <path>` on GCC/Clang. Note: this PR previously also carried the ggml-speech port bump (b4cf7b2) and the matching ggml-speech-side MSVC shim. Both have been dropped because the consumer-side migration to ggml-speech (QVAC-18992) is staying behind PR #13 / PR #28 for now; only the whisper-cpp bits are required to land for the Android dynamic-backend work on PR #2124. Co-authored-by: Cursor <cursoragent@cursor.com> * whisper-cpp: bump to 1.8.4.3#5 — repoint to tetherto/master after PR #28 merge (QVAC-18993, QVAC-19071) `tetherto/qvac-ext-lib-whisper.cpp` PR #28 merged today (2026-05-21, merge commit `f3102199`), completing the Group-1/2 merge chain on `tetherto/master`: - PR #25 (QVAC-18991) merged 2026-05-20 — upstream whisper.cpp sync - PR #27 (QVAC-18966) merged 2026-05-20 — tts-cpp chatterbox <atomic> fix - PR #28 (QVAC-18993) merged 2026-05-21 — ggml-backend Android dynamic backend + per-arch CPU dlopen fallback So `tetherto/master` now carries every commit this port previously pinned from `Zbig9000/qvac-ext-lib-whisper.cpp@14620c8857fc2893`. Repoints the `vcpkg_from_github` call: REPO Zbig9000/qvac-ext-lib-whisper.cpp -> tetherto/qvac-ext-lib-whisper.cpp REF 14620c8857fc289313a3b0a82c9ce69a -> f3102199642e78bb2beee6b9e9537604 SHA512 733effd6f77de859bd9f1cf1b6dfe492… -> 64b102677abae7825985c946b1103cda… HEAD_REF QVAC-18993-bundled-ggml-android-… -> master `diff -rq` of the two source tarballs is empty outside `parakeet-cpp/` and `tts-cpp/` (separate vcpkg ports — not consumed by this port). The whisper-cpp source itself is byte-identical between `14620c88` and `f3102199`, so this is a REF-only port-version bump: same recipe, same features, same patches list (still empty), same build output. Also drops the "TEMPORARY pinning to Zbig9000 fork" block from the top of `portfile.cmake` --- no longer applicable now that the upstream PR chain has landed. Closes the registry-side half of [QVAC-19071](https://tetherapp.atlassian.net/browse/QVAC-19071) ("Update qvac-registry-vcpkg and addon with new port versions") for this release cycle. Consumer-side half (re-pinning `packages/transcription-whispercpp/vcpkg-configuration.json`) goes into qvac PR #2124 in a follow-up commit. [QVAC-18993][QVAC-19071] Co-authored-by: Cursor <cursoragent@cursor.com> * whisper-cpp: address Gustavo PR #152 review (1.8.4.3#0, drop history, drop comment block) Review comments from @GustavoA1604 on PR #152 (#152): 1. `ports/whisper-cpp/portfile.cmake`: "Dont add these comments" -> dropped the 19-line header that explained the REF history / tetherto vs Zbig9000 fork relation / future-bump notes. 2. `ports/whisper-cpp/vcpkg.json`: "Port version should start from 0, not 5" -> reset `port-version` 5 -> 0. 3. `versions/w-/whisper-cpp.json`: "Add only one entry here, version '1.8.4.3', port-version 0" -> collapsed the three historical `1.8.4.3` entries (port-versions 3, 4, 5 -- intermediate states that were never consumed off-fork) into a single entry at port-version 0 with the new git-tree `b4962d7acd7ce05fce118792a167e7aee36f1eba`. Older versions (1.8.4.2, 1.8.4.1, 1.7.x) untouched. Also synced `versions/baseline.json` whisper-cpp port-version to 0. REPO + REF + SHA512 (tetherto/qvac-ext-lib-whisper.cpp@f3102199, the PR #28 merge commit) unchanged from the previous HEAD `f287037`. [QVAC-18993][QVAC-19071] Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 27, 2026
Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR tetherto#13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request tetherto#13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR tetherto#13 also brings in PR tetherto#11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com>
4 tasks
Zbig9000
added a commit
to Zbig9000/qvac-registry-vcpkg
that referenced
this pull request
May 27, 2026
Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR tetherto#13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request tetherto#13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR tetherto#13 also brings in PR tetherto#11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com>
jpgaribotti
pushed a commit
that referenced
this pull request
May 27, 2026
…pp re-validation (QVAC-19236, QVAC-18992, QVAC-19071) (#169) * whisper-cpp 1.8.5: migrate to ggml-speech + expose metal feature Two ticket deliverables combined into one consistent port rewrite: QVAC-18992 — Migrate to use ggml speech branch ---------------------------------------------- whisper-cpp now consumes the system-installed ggml provided by the `ggml-speech` port (same shape as parakeet-cpp and tts-cpp), instead of building the bundled `qvac-ext-lib-whisper.cpp/ggml/` subdirectory. Driven by -DWHISPER_USE_SYSTEM_GGML=ON; whisper.cpp's top-level CMake then calls `find_package(ggml CONFIG REQUIRED)` and aliases the `ggml::ggml` target to its internal `ggml` target. The bundled ggml source tree still exists in the upstream tarball but is no longer walked at configure time. All backend wiring is delegated to ggml-speech: - GGML_METAL / GGML_VULKAN / GGML_OPENCL / GGML_CUDA - GGML_BACKEND_DL=ON on Android (dynamic-backend mode) - GGML_CPU_ALL_VARIANTS=ON / GGML_CPU_REPACK=ON on Android (per-arch CPU MODULE .so files) - GGML_VULKAN_DISABLE_COOPMAT[2]=ON on Android (Adreno NDK) - spirv-headers `-isystem` shim for Vulkan - Android NDK Vulkan-Headers download - libqvac-speech-ggml-* output filename prefix Side effects: - The Vulkan-Headers download block is gone from this portfile; ggml-speech handles it. android-vulkan-version.cmake deleted. - The MSVC `/I` vs GCC/Clang `-isystem` spirv-headers shim is gone from this portfile; ggml-speech handles it. - The DL_BACKENDS install-tree fiddling is gone; the libqvac-speech-ggml-*.so files are installed by ggml-speech into ${VCPKG_INSTALLED_DIR}/<triplet>/lib/, which the transcription-whispercpp addon already picks up via get_target_property(... LOCATION) on the ggml::<backend> imported targets. - whisper-cpp + parakeet-cpp + tts-cpp now share the same backend binary set on every triplet (was: whisper-cpp brought a separate libqvac-ggml-* set, parakeet/tts brought libqvac-speech-ggml-*). Single source of truth. QVAC-19236 — Expose backend selection as features ------------------------------------------------- Add the `metal` feature (was unconditionally ON for macOS / OFF for iOS in the portfile) so all 3 GPU backends are now declarative: whisper-cpp[metal] -> ggml-speech[metal] (osx | ios) whisper-cpp[vulkan] -> ggml-speech[vulkan] (linux | windows | android) whisper-cpp[opencl] -> ggml-speech[opencl] (android) Each whisper-cpp feature simply propagates into the matching ggml-speech feature (with the platform guard kept). Consumers can express the full GPU matrix declaratively in their own vcpkg.json (the transcription-whispercpp addon does exactly this in a companion PR — selecting [metal] for osx only, since iOS Metal still has a separate XPC/MTLCompiler runtime crash being investigated; the iOS binary stays on the CPU backend by simply not selecting [metal]). Whisper-cpp REF --------------- Bumped to v1.8.5 = 738d2e9e (tetherto/qvac-ext-lib-whisper.cpp@master), which is the merge of #33 ("update to v1.8.5 and sync vendored whisper.cpp + ggml to ggml-org upstream"). Pure upstream sync — no tetherto-specific behavior change at the consumer level beyond the ggml-source switch above. Result ------ portfile.cmake: 150 -> ~55 lines (much closer to parakeet-cpp / tts-cpp shape). Total diff: -174 / +56. Version bump: 1.8.4.3#1 -> 1.8.5#0 (treating the version-string change + the ggml-source switch as a fresh baseline rather than a port-revision bump). Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Cursor <cursoragent@cursor.com> * ggml-speech: bump to 2026-05-27#0 (PR #13 merged on speech) Picks up tetherto/qvac-ext-ggml@speech HEAD c9126afc (merge commit of qvac-ext-ggml PR #13: "QVAC-18992: merge ggml-org @ 19eac6f0 (v0.10.2) into speech"). The merge brings in: c9126afc Merge pull request #13 from Zbig9000/QVAC-18992-merge-ggml-from-whisper-cpp e31785e4 fix(metal): restore lost 'typedef struct {' before ggml_metal_kargs_supertonic_depthwise_1d (caught by qvac CI Apple prebuild matrix via an overlay on tetherto/qvac#2270) d39c0d29 metal: stride-aware src indexing in kernel_pad_f32 / kernel_pad_reflect_1d_f32 (fixes Mac M2 PAD test failure) 166c4e12 Merge ggml-org @ 19eac6f0 into speech (sync to v0.10.2) PR #13 also brings in PR #11 (GustavoA1604 Android per-arch CPU dlopen fallback), which was already wired through port-version 4 via the GGML_CPU_ALL_VARIANTS=ON + GGML_CPU_REPACK=ON shape introduced in port-version 3 -- no port-side change needed for that. Build changes vs port-version 4: * Add patches/0001-ggml-vulkan-find-spirv-headers.patch wiring SPIRV-Headers into ggml-vulkan. The v0.10.2 sync added an unconditional #include <spirv/unified1/spirv.hpp> in src/ggml-vulkan/ggml-vulkan.cpp, but the upstream ggml-vulkan CMakeLists.txt never finds spirv-headers nor wires its include dir into the ggml-vulkan target. Patch finds the package and links it when available, gated on the "vulkan" feature. * Add spirv-headers as a dependency of the "vulkan" feature so the patched find_package(SPIRV-Headers QUIET) actually resolves to a vcpkg-installed package. Validated end-to-end through tetherto/qvac#2270's full CI matrix: - 9/9 prebuild triplets (linux-x64/arm64, win32-x64, darwin-arm64/x64, android-arm64, ios-arm64 + 2 simulators) - 107/107 C++ addon tests on linux-x64 - 5/5 platform integration test suites - iOS + Android E2E on AWS Device Farm Co-authored-by: Cursor <cursoragent@cursor.com> * tts-cpp + parakeet-cpp: bump port-version against ggml-speech 2026-05-27 ggml-speech bumped to 2026-05-27#0 in this PR will auto-apply via baseline to every consumer port that has version>= on it. tts-cpp and parakeet-cpp must declare they have been validated against the new ggml-speech to keep the registry self-consistent. tts-cpp: 2026-05-20 -> 2026-05-20#1 - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#4) parakeet-cpp: 2026-05-20#2 -> 2026-05-20#3 - version>=ggml-speech bumped to 2026-05-27 (was 2026-04-09#3) Local validation (x64-linux, vulkan feature) against this registry tree: - tts-ggml addon: vcpkg resolves clean, build links clean, 35 C++ unit tests pass, 61 JS unit tests pass - transcription-parakeet addon: vcpkg resolves clean, build links clean, 32 C++ unit tests pass, 17 JS unit tests pass Co-authored-by: Cursor <cursoragent@cursor.com> * whisper-cpp: bump version>=ggml-speech to 2026-05-27 The version>= constraint on ggml-speech was still 2026-04-09#4 (carried over from before the system-ggml migration). whisper-cpp@1.8.5 only works against the new ggml-speech@2026-05-27 (v0.10.2 vendored sources, new symbol set, spirv-headers Vulkan wiring), so the constraint must reflect that minimum. In practice the resolver always picked 2026-05-27 because that is the baseline value, so this is metadata-only and not a behavior change for either the addon CI run or the local file:// validation. It is the correct declaration so a future consumer with a stale baseline cannot combine whisper-cpp@1.8.5 with the old ggml-speech. Co-authored-by: Cursor <cursoragent@cursor.com> * ggml-speech: pin spirv-headers vulkan dep to version>=1.4.341.0 Without a version>= constraint, the resolved spirv-headers version depends entirely on the consumer's microsoft/vcpkg baseline. Pin to 1.4.341.0 to match the convention already used by qvac-fabric (the other speech-stack port that depends on spirv-headers via vulkan), keep both ports resolvable from the same SPIRV-Headers version when they coexist in a consumer manifest, and ensure consumers with an older baseline still pick up a known-good SPIRV-Headers. Local validation on x64-linux: vcpkg upgrades spirv-headers from the addon's baseline 1.4.304.1 to the required 1.4.341.0 cleanly, the ggml-vulkan patch builds against the new headers, the full transcription-whispercpp addon builds + 107/107 cpp tests + 30/30 unit tests pass. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.