feat: link against prebuilt llama.cpp binary releases#37
Merged
Conversation
…ding from source Adds hybrid prebuilt/source dispatch to build.rs that downloads official llama.cpp binary releases for supported target triples (macOS arm64/x64, Linux x64/arm64 with optional Vulkan), with automatic source-build fallback for CUDA, SYCL, and other unsupported backends. - Prebuilt archives are cached locally for fast rebuilds (~10s vs minutes) - CI/CD workflows updated: removed cmake/openblas/submodules:recursive for standard jobs, bundles .dylib/.so in release artifacts - Bridge updated for b9837 API changes with autocommit_init wrapper encapsulating model loading and param fitting
SnowCheetos
added a commit
that referenced
this pull request
Jun 29, 2026
* fix(llama-runtime): context initialization fallback Fix context initialization fallback across 1 file. ### Changes - [`crates/llama-runtime/src/context_handle.rs`] Fix context initialization fallback: Correct null handling and fallback logic ### Version Bumps - [`crates/llama-runtime/Cargo.toml`] Rust / Cargo: 0.10.1 -> 0.10.2 (patch); code changes detected; suggest a patch project version bump ### Risk - Level: low * modified: README.md modified: third_party/llama.cpp * feat: add SYCL GPU backend support for llama-sys Implement SYCL GPU backend support in `llama-sys` to enable GPU acceleration for inference. ### Changes - [`.github/workflows/ci.yml`] Add Clippy formatting checks: Implement Clippy formatting checks for various platforms, improving code style and catching potential issues - [`Cargo.toml`] Optimize release builds - [`README.md`] Add installation and usage examples: Provide users with clear instructions on how to install and use `autocommit` ### Version Bumps - [`crates/cli/Cargo.toml`] Rust / Cargo: 0.16.4 -> 0.17.0 (minor); manifest changed without an explicit project version bump; suggest minor bump - [`crates/core/Cargo.toml`] Rust / Cargo: 0.10.1 -> 0.11.0 (minor); manifest changed without an explicit project version bump; suggest minor bump - [`crates/llama-runtime/Cargo.toml`] Rust / Cargo: 0.10.2 -> 0.11.0 (minor); manifest changed without an explicit project version bump; suggest minor bump - [`crates/llama-sys/Cargo.toml`] Rust / Cargo: 0.9.3 -> 0.10.0 (minor); manifest changed without an explicit project version bump; suggest minor bump ### Risk - Level: low - No major security risks associated with SYCL GPU backend. - Testing will be required to ensure proper functionality and performance on GPU hardware. * fix(autocommit): doc comment and improve classify_path error handling Resolved doc comment and error handling in classify_path function ### Changes - [`crates/core/src/diff/importance.rs`] Fix doc comment and improve `classify_path` error handling ### Risk - Level: low - No critical issues identified * refactor(autocommit): cLI quantization logic and simplify path extraction in llama-runtime The changes simplify path extraction logic and update quantization handling for unknown repositories, improving code clarity and maintainability. ### Changes - [`crates/cli/src/cmd/config.rs`] Update quantization logic for unknown repos: Provide default quantization settings when repository not recognized - [`crates/core/src/pipeline/reduce.rs`] Simplify path extraction logic: Eliminate redundant variable assignments to improve readability - [`crates/llama-runtime/src/context_handle.rs`] Simplify function signatures and collect symbols: Fix formatting issues in two source files ### Version Bumps - [`crates/core/Cargo.toml`] Rust / Cargo: 0.11.0 -> 0.11.1 (patch); code changes detected; suggest a patch project version bump ### Risk - Level: low - No critical issues identified in the refactoring efforts - Changes are localized and focused on specific modules * test: update README with GitHub release badge ### Changes - [`README.md`] Update README with GitHub release badge: Include latest release information in README ### Risk - Level: low * feat: link against prebuilt llama.cpp binary releases (#37) * feat: link against prebuilt llama.cpp binary releases instead of building from source Adds hybrid prebuilt/source dispatch to build.rs that downloads official llama.cpp binary releases for supported target triples (macOS arm64/x64, Linux x64/arm64 with optional Vulkan), with automatic source-build fallback for CUDA, SYCL, and other unsupported backends. - Prebuilt archives are cached locally for fast rebuilds (~10s vs minutes) - CI/CD workflows updated: removed cmake/openblas/submodules:recursive for standard jobs, bundles .dylib/.so in release artifacts - Bridge updated for b9837 API changes with autocommit_init wrapper encapsulating model loading and param fitting * fix: remove mparams.embedding (removed from b9837 llama_model_params) * chore: add .vscode/ to gitignore * fix: address clippy needless_borrows_for_generic_args lint in build.rs * fix: skip ggml-metal on macOS < 15 and update test error message * feat: enrich commit body with LLM-generated bullet points (#38) * feat: enrich commit body with LLM-generated bullet points Add an optional `body` field to AnalysisReport that carries 1-3 concrete bullet points produced by the reduce model. When present, compose_commit_body prefers this body over the mechanical per-item changes section, yielding a more coherent and contextual commit message body. - Add body field to ReduceModelOutput (String, serde default) - Add body field to AnalysisReport (Option<String>, serde default) - Update REDUCE_GBNF grammar to require body in reduce output - Update build_reduce_prompt with body instructions + examples - salvage_reduce_output returns empty body fallback - All struct literal constructors pass body: None * test: add LLM body-aware test cases for compose_commit_body - compose_commit_message_uses_llm_body_when_present: verifies LLM body replaces changes section and summary - compose_commit_message_falls_back_when_llm_body_is_empty: verifies empty body falls through to summary + changes section * fix: add missing body fields and fix formatting - Add body: String::new() to 4 test ReduceModelOutput constructors that were missing the field (caught by CI with --features llama-native) - Run cargo fmt --all to fix formatting issue in model.rs - Add 2 new tests for LLM body path in compose_commit_body * feat(pr): interactive GitHub issue linking and PR metadata flags (#39) * feat(pr): add interactive GitHub issue linking and PR metadata flags - Extracted GhHelper subprocess wrapper for reusable gh invocations - Added issue reference types (IssueRef, ClosingKeyword) - Extended PrArgs with --issue, --closes/--fixes/--resolves, --no-verify-issue, --reviewer, --assignee, --label, --milestone, --web - Added parse_issue_identifier for #N, N, and URL-form issue references - Added verify_issue via gh issue view --json number,title,url - Added render_linked_issues_block to produce ### Linked issues section - Added append_or_replace_issue_block to manage in-body issue references - Added resolve_issue_ids for flag-based verification with dedup - Added prompt_issue_linking for interactive issue search/select/keyword - Updated create_pr and update_pr to forward metadata flags to gh - Updated render_dry_run to show issues and metadata - 15 new tests covering parsing, rendering, dedup, dry-run * fix(ci): address clippy warnings and macOS 14 Metal dylib test failure - Add #[allow(clippy::too_many_arguments)] to render_dry_run and create_pr - Fix collapsible_if in parse_issue_identifier (use nested Option destructuring) - Fix let_and_return x2 in prompt_issue_linking (inline expression) - Switch Test and Clippy CI runners from macos-14 to macos-latest (prebuilt libllama.dylib transitively depends on ggml-metal.dylib, which requires macOS 15+; macos-14 runners crash at runtime) --------- Signed-off-by: Cass Sheng <86272122+SnowCheetos@users.noreply.github.com>
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.
Summary
Replaces the source-build requirement for llama.cpp with a hybrid approach that downloads official prebuilt binary releases for supported target triples, falling back to source build when no prebuilt archive exists.
Changes
.dylib/.soin release artifactsautocommit_initwrapper encapsulating model loading + param fitting;autocommit_llama_params_fitstub for prebuilt modePerformance
Full workspace compiles in ~10s (vs minutes) with prebuilt path on
aarch64-apple-darwin. All 129 tests pass.Supported targets
aarch64-apple-darwinx86_64-apple-darwinx86_64-unknown-linux-gnuaarch64-unknown-linux-gnuCloses #36