Skip to content

fix: publish the b10545 Apple pin and drop the false Web parity claim - #447

Open
leehack wants to merge 19 commits into
mainfrom
fix/release-blockers-0-8-21
Open

fix: publish the b10545 Apple pin and drop the false Web parity claim#447
leehack wants to merge 19 commits into
mainfrom
fix/release-blockers-0-8-21

Conversation

@leehack

@leehack leehack commented Aug 24, 2026

Copy link
Copy Markdown
Owner

What changed

Two release blockers for 0.8.21, plus the two gates that should have caught them.

B1 — the b10545 Apple pin could not publish

packages/llamadart_llama_cpp_flutter/darwin/.../Package.swift and
hook/build.dart both moved to b10545 after v0.8.20, but the companion stayed
at 0.0.14already live on pub.dev (curl returns HTTP 200). Its
CHANGELOG recorded b10545 under ## Unreleased while ## 0.0.14 recorded
b10514.

.github/workflows/release_on_prep_merge.yml loops the companion paths and:

if curl -fsSL "https://pub.dev/api/packages/$package_name/versions/$package_version" >/dev/null; then
  echo "$package_name $package_version already exists on pub.dev."
  continue
fi

so the companion would have been skipped silently and Apple builds would have
kept resolving b10514.

Fix, per website/docs/maintainers/release-workflow.md §2 ("bump only companion
packages whose native pins … changed, move their accumulated Unreleased notes
into the new version section"): bump to 0.0.15, rename ## Unreleased to
## 0.0.15, and move the three current install snippets to ^0.0.15
(README.md, website/docs/getting-started/installation.md,
packages/llamadart_llama_cpp_flutter/README.md). example/chat_app/pubspec.lock
follows from prepare_workspace.

llamadart_litert_lm_flutter is not bumped: Package.swift pins
v0.16.0-native.2, its CHANGELOG head is ## 0.0.10 recording
leehack/litert-lm-native@v0.16.0-native.2, and its pubspec is 0.0.10
already self-consistent, and the new gate passes it unchanged.

B2 — a Web/native parity claim that stopped being true

website/docs/platforms/webgpu-bridge.md and doc/webgpu_bridge.md said the
v0.1.37 bridge assets embed b10514 "matching the default native runtime".
The manifest genuinely says b10514:

$ curl -fsSL https://cdn.jsdelivr.net/gh/leehack/llama-web-bridge-assets@v0.1.37/manifest.json
  "bridge_assets_tag": "v0.1.37",
  "llama_cpp_tag": "b10514",

but hook/build.dart pins b10545, so only the parity half was false. Both
sentences now say the bridge build trails the native pin. The bridge pin is
unchanged. docs_version_cut.yml snapshots website/docs on the release tag,
so the false sentence would have been frozen permanently.

Gates

(a) tool/testing/verify_release_docs_versions.dart compared only
hook/build.dart against Package.swift — both agreed at b10545, which is
why B1 passed. It now also checks each companion's Package.swift tag against
the tag recorded in the CHANGELOG section its pubspec.yaml version will
publish.

A pin still sitting in ## Unreleased is the documented native-sync state
(sync_native_release_pins.py --bump-companion-versions is opt-in, "Native sync
PRs should leave this unset"), so that case is reported as a pending bump in
the default run and fails only under the new --release-prep flag.
release_on_prep_merge.yml now passes --release-prep, so an unresolved bump
aborts the release before any tag is pushed. A pin recorded in neither section
is a hard error in both modes.

(b) tool/testing/check_webgpu_bridge_tag.dart now compares the bridge
manifest's llama_cpp_tag against hook/build.dart's _llamaCppTag.
bridgeLlamaCppDivergence records a deliberate divergence; a record left behind
after the tags converge fails too, so the escape hatch cannot become permanent.
--verify-manifest re-reads the published manifest so the recorded value stays
honest without making the default run network-dependent. The two doc sentences
are registered pins, so a reworded parity claim fails instead of outliving the
pin it describes.

Proof both gates bite

Each fix reverted in a scratch copy (rsync of the worktree, then restored):

(a) revert to the exact origin/main state — pubspec 0.0.14,
## Unreleased, snippets ^0.0.14:

$ dart tool/testing/verify_release_docs_versions.dart
Release docs versions verified: llamadart 0.8.20, llamadart_llama_cpp_flutter 0.0.14, ...
Pending companion bump: llamadart_llama_cpp_flutter 0.0.14 publishes b10514, but Package.swift pins b10545; bump the version and rename `## Unreleased` to the new version before releasing.
EXIT=0

$ dart tool/testing/verify_release_docs_versions.dart --release-prep
Release docs version verification failed:
- llamadart_llama_cpp_flutter 0.0.14 publishes b10514, but Package.swift pins b10545; bump the version and rename `## Unreleased` to the new version before releasing.
EXIT=1

and with the ## Unreleased note deleted (pin recorded nowhere), the default
run fails:

$ dart tool/testing/verify_release_docs_versions.dart
Release docs version verification failed:
- packages/llamadart_llama_cpp_flutter/darwin/llamadart_llama_cpp_flutter/Package.swift pins b10545, but packages/llamadart_llama_cpp_flutter/CHANGELOG.md section `## 0.0.14` records b10514 and no `## Unreleased` entry records b10545.
EXIT=1

(b) four directions (git ls-files noise from the non-repo scratch dir elided):

# 1. B2 docs prose reverted to the false parity claim
- doc/webgpu_bridge.md: ^That release embeds llama\.cpp `(b\d+)`, which now trails the `hook/build\.dart`$ matches 0 lines, expected 1 — the sentence describing the bridge llama.cpp build was reworded or removed, so this check no longer covers it
- website/docs/platforms/webgpu-bridge.md: ^- `v\d+\.\d+\.\d+\+` bridge assets embed llama\.cpp `(b\d+)`, which now trails the$ matches 0 lines, expected 1 — ...
EXIT=1

# 2. bridgeLlamaCppDivergence => null (the origin/main blind spot)
- bridge assets embed llama.cpp b10514 but hook/build.dart pins b10545 — move the bridge asset pin, or set bridgeLlamaCppDivergence and say so in the docs
EXIT=1

# 3. bridgeLlamaCppTag = 'b10545' with the divergence record left behind
- bridgeLlamaCppDivergence records a divergence, but the bridge assets and hook/build.dart both use b10545 — clear the record and restore the parity wording in the docs
- doc/webgpu_bridge.md: states b10514, expected b10545
- website/docs/platforms/webgpu-bridge.md: states b10514, expected b10545
EXIT=1

# 4. same, under --verify-manifest
- https://cdn.jsdelivr.net/gh/leehack/llama-web-bridge-assets@v0.1.37/manifest.json reports llama_cpp_tag b10514, but bridgeLlamaCppTag is b10545
EXIT=1

Both are also covered by unit tests: 7 new cases in
test/unit/tooling/check_webgpu_bridge_tag_test.dart and a new
test/unit/tooling/verify_release_docs_companion_pins_test.dart (6 cases), each
including a "the checked-in repo is clean" case so the gates cannot pass
vacuously.

Out of scope

Runtime behavior is unchanged. The bridge asset pin (v0.1.37) and the native
pin (b10545) are not moved; only the docs describing their relationship, the
companion version, and the two gates change.

Validation

Pinned SDK: Flutter 3.47.1 • Dart 3.13.1.

Command Result
dart run tool/prepare_workspace.dart then git status --porcelain pass — empty
dart analyze pass — No issues found!
dart format --output=none --set-exit-if-changed . pass — Formatted 573 files (0 changed)
dart test -p vm -j 1 --exclude-tags local-only pass — +1706 ~77: All tests passed!
dart run tool/testing/verify_release_docs_versions.dart pass, exit 0
dart run tool/testing/verify_release_docs_versions.dart --release-prep pass, exit 0
dart run tool/testing/check_webgpu_bridge_tag.dart pass, exit 0
dart run tool/testing/check_webgpu_bridge_tag.dart --verify-manifest pass, exit 0
./tool/docs/validate_links.sh pass — Docusaurus production build and broken-link validation completed

Verbatim:

$ dart run tool/prepare_workspace.dart && git status --porcelain
prepare exit=0
(no output)

$ dart analyze
Analyzing wt-release-blockers-0-8-21...
No issues found!

$ dart format --output=none --set-exit-if-changed .
Formatted 573 files (0 changed) in 1.38 seconds.

$ dart test -p vm -j 1 --exclude-tags local-only
01:19 +1666 ~77: All tests passed!

$ dart run tool/testing/verify_release_docs_versions.dart --release-prep
Release docs versions verified: llamadart 0.8.20, llamadart_llama_cpp_flutter 0.0.15, llamadart_litert_lm_flutter 0.0.10; llamadart-native b10545.

$ dart run tool/testing/check_webgpu_bridge_tag.dart --verify-manifest
[webgpu-bridge-tag] OK: 12 pins agree on v0.1.37.
[webgpu-bridge-tag] Recorded divergence: bridge assets embed b10514. Bridge assets v0.1.37 embed b10514; the native pin moved to b10545 after v0.8.20. Web trails native until the next bridge asset release.

The same verify_release_docs_versions.dart run on origin/main before any fix
exits 0 — that is the blind spot this PR closes.

Closes #449
Closes #450

High-risk regression review

  • Classification: high-risk — artifact consumer, release automation, and regression policy
  • Implementation task: codex://tasks/root/pr420_cleanup
  • Independent blocking QA task: codex://tasks/root/refresh_pr431 — PASS on the exact head below
  • Exact head / current base: 199ad2a / 9a34f9e
  • Production-branch deletion, bypass, or miswire proof: checked-in-source contracts reject deletion, fail-open or wrong-root rewiring of the companion-pin CLI and Web/native drift/manifest CLI paths; the release-workflow contract also rejects deleting, bypassing, or moving the strict release-prep verifier after the secret-bearing publish step. The adversarial bridge mutation is CRLF/LF portable and asserts that it changed the fixture.
  • Affected-family real-model/artifact evidence: the live immutable bridge-assets v0.1.37 manifest verifies llama.cpp b10514 while the native consumer remains b10545; no runtime implementation changed
  • Explicit unavailable-family or other N/A evidence: model/device smoke is N/A because this changes package release metadata, docs, and fail-closed release gates only; exact-head hosted native/Web runtime jobs passed
  • Exact-head validation: 12/12 populated checks PASS, including Windows, macOS, Chrome, Web Chat Contract, Linux coverage and aggregate; current-head Copilot completed with 0 new comments; independent Sol QA PASS
  • Known PR-caused P1 regressions: 0
  • Unresolved review threads: 0 of 7

Two things would have shipped wrong in 0.8.21.

The Apple SwiftPM pin moved to b10545 after v0.8.20, but
llamadart_llama_cpp_flutter stayed at 0.0.14, which is already on pub.dev.
release_on_prep_merge.yml `continue`s past a companion whose version already
exists, so the companion would have been skipped silently and Apple builds
would have kept resolving the b10514 runtime. Bumping to 0.0.15 and moving the
`## Unreleased` note into `## 0.0.15` makes the pin publishable.

The WebGPU bridge docs claimed the pinned v0.1.37 assets embed llama.cpp b10514
"matching the default native runtime". The manifest does say b10514, but
hook/build.dart moved to b10545, so the parity half became false a day after
v0.8.20. docs_version_cut.yml snapshots website/docs on the release tag, which
would have frozen the false sentence permanently.

Both gates that should have caught these are extended rather than left as
one-off fixes. verify_release_docs_versions.dart now checks each companion's
Package.swift tag against the tag recorded in the CHANGELOG section its pubspec
version will publish; it only compared hook/build.dart against Package.swift
before, which is exactly why this passed. A pin still sitting in `## Unreleased`
is the documented native-sync state, so it is reported as a pending bump by
default and fails only under the new --release-prep flag, which
release_on_prep_merge.yml now passes -- an unresolved bump aborts the release
before any tag is pushed. check_webgpu_bridge_tag.dart now compares the bridge
manifest's llama_cpp_tag against hook/build.dart's _llamaCppTag, with
bridgeLlamaCppDivergence to record a deliberate divergence; a record left behind
after the tags converge fails too, so the escape hatch cannot become permanent.
--verify-manifest re-reads the published manifest so the recorded value stays
honest, and the two doc sentences are registered pins so a reworded parity claim
fails instead of outliving the pin it describes.
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Chat app preview deployed for 199ad2a.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The new gate code has a few confirmed failure-mode issues (uncaught JSON decode failures and uncaught file read exceptions) that can crash release tooling instead of reporting actionable errors.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR addresses two release blockers for the upcoming 0.8.21 prep by ensuring the llamadart_llama_cpp_flutter companion actually publishes the updated Apple SwiftPM pin, and by correcting (and enforcing via tooling) the WebGPU bridge docs’ Web/native llama.cpp parity statement.

Changes:

  • Bump llamadart_llama_cpp_flutter to 0.0.15 and update install snippets + lockfile so Apple builds no longer silently remain on the previously published pin.
  • Update WebGPU bridge documentation to state the pinned bridge assets embed a llama.cpp build that currently trails the native pin.
  • Strengthen the release/documentation gates (verify_release_docs_versions.dart, check_webgpu_bridge_tag.dart) and add unit tests + workflow wiring to prevent regressions.
File summaries
File Description
website/docs/platforms/webgpu-bridge.md Updates docs to state bridge llama.cpp build trails native pin.
website/docs/maintainers/release-workflow.md Updates release checklist to run strict --release-prep gate.
website/docs/getting-started/installation.md Bumps companion dependency snippet to ^0.0.15.
website/docs/changelog/recent-releases.md Notes the companion bump + corrected WebGPU parity docs.
tool/testing/verify_release_docs_versions.dart Adds companion SwiftPM pin vs CHANGELOG verification + --release-prep.
tool/testing/test_matrix.dart Updates matrix descriptions/commands to reflect new gate behavior.
tool/testing/check_webgpu_bridge_tag.dart Adds Web/native llama.cpp drift checks + optional manifest verification.
test/unit/tooling/verify_release_docs_companion_pins_test.dart New unit coverage for companion pin verification behavior.
test/unit/tooling/check_webgpu_bridge_tag_test.dart Adds unit coverage for Web/native llama.cpp drift scenarios.
README.md Updates install snippet to ^0.0.15.
packages/llamadart_llama_cpp_flutter/README.md Updates companion install snippet to ^0.0.15.
packages/llamadart_llama_cpp_flutter/pubspec.yaml Bumps package version to 0.0.15.
packages/llamadart_llama_cpp_flutter/CHANGELOG.md Moves the documented pin into ## 0.0.15.
example/chat_app/pubspec.lock Updates path dependency version to 0.0.15.
doc/webgpu_bridge.md Updates docs to state bridge llama.cpp build trails native pin.
CHANGELOG.md Notes companion bump + corrected WebGPU parity docs in core changelog.
AGENTS.md Documents strict vs non-strict release docs verification behavior.
.github/workflows/release_on_prep_merge.yml Runs verify_release_docs_versions.dart --release-prep in release automation.
Review details

Suppressed comments (1)

tool/testing/verify_release_docs_versions.dart:288

  • _matchInFile() uses readAsStringSync() without handling FileSystemException; this can crash the tool rather than emitting a structured error (similar to _readLines).
  final match = pattern.firstMatch(file.readAsStringSync());
  if (match == null) {
    errors.add('$path does not contain its $what.');
    return null;
  • Files reviewed: 17/18 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tool/testing/check_webgpu_bridge_tag.dart Outdated
Comment thread tool/testing/check_webgpu_bridge_tag.dart
Comment thread tool/testing/verify_release_docs_versions.dart Outdated
Copilot AI review requested due to automatic review settings August 24, 2026 09:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

tool/testing/check_webgpu_bridge_tag.dart still has uncaught FileSystemException paths (sync reads) that can crash the gate instead of reporting actionable errors.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (1)

tool/testing/check_webgpu_bridge_tag.dart:271

  • findBridgeRuntimeDrift reads the pinned docs with readAsStringSync() without handling FileSystemException; an unreadable doc file will crash the gate instead of reporting a problem and continuing to check other pins.
    final matches = pin.pattern.allMatches(doc.readAsStringSync()).toList();
  • Files reviewed: 17/18 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread tool/testing/check_webgpu_bridge_tag.dart Outdated
Copilot AI review requested due to automatic review settings August 24, 2026 09:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are well-scoped to release gating/docs alignment, include targeted tool hardening and unit coverage, and only leave a minor naming-clarity nit.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

tool/testing/check_webgpu_bridge_tag.dart:238

  • The parameter name bridgeTag in findBridgeRuntimeDrift is ambiguous here because it actually represents the bridge assets’ embedded llama.cpp build tag (e.g. b10514), not the bridge asset release tag (e.g. v0.1.37). Clarifying this in the doc comment would make future updates less error-prone.
/// Returns one message per problem with the Web/native llama.cpp relationship.
///
/// `hook/build.dart` and the bridge manifest move in different repositories, so
/// nothing else notices when a native pin bump silently ends Web/native parity
/// and leaves the docs claiming it.
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 09:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are well-scoped to release gating/docs/version alignment, add targeted unit coverage for the new failure modes, and align CI/workflow checks with the stricter release-prep requirements.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

…0-8-21

# Conflicts:
#	CHANGELOG.md
#	website/docs/changelog/recent-releases.md
Copilot AI review requested due to automatic review settings August 24, 2026 09:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes align docs, companion versions, and release gates, and they’re backed by targeted unit tests and stricter CI enforcement without altering runtime behavior.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 09:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are consistent with the stated release-prep acceptance criteria and are backed by targeted unit tests plus updated CI/release workflow wiring.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 10:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

tool/testing/verify_release_docs_versions.dart’s _matchInFile() doesn’t catch FormatException from readAsStringSync(), so UTF-8 decode failures can still crash the gate instead of producing an actionable error.

Review details

Suppressed comments (1)

tool/testing/verify_release_docs_versions.dart:308

  • _matchInFile() only catches FileSystemException from readAsStringSync(), but File.readAsStringSync() can also throw FormatException on UTF-8 decode failures. This can crash the gate with a stack trace instead of surfacing an actionable error (and other readers in this file already handle FormatException).
  late final String contents;
  try {
    contents = file.readAsStringSync();
  } on FileSystemException catch (error) {
    errors.add('$path could not be read: $error');
    return null;
  }
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 11:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The new Web/native runtime gate does not currently enforce that the docs switch back to parity wording when pins converge, so a future convergence could leave incorrect “trails” prose while the gate remains green.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

tool/testing/check_webgpu_bridge_tag.dart:265

  • In findBridgeRuntimeDrift, when nativeTag == bridgeTag and divergence == null, the gate only validates that the pinned docs sentence still matches bridgeLlamaCppTagPins and quotes the tag, but it does not enforce that the docs describe parity (as opposed to still saying “now trails”). This means a future convergence could leave the docs incorrectly claiming Web trails native while the gate stays green.
  final nativeTag = match.group(1)!;
  if (nativeTag == bridgeTag) {
    if (divergence != null) {
      problems.add(
        'bridgeLlamaCppDivergence records a divergence, but the bridge assets '
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 11:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are cohesive and low-risk (docs + release-prep tooling), and the new enforcement logic is covered by targeted unit tests and wired into the release workflow to prevent regressions.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 13:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are internally consistent, add targeted gate hardening with unit coverage, and align docs/workflows with the stated release-prep requirements.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 13:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The changes are well-scoped, add enforcement + regression tests for the identified release blockers, and the updated gates correctly fail closed in the scenarios described.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 13:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

It modifies release automation gates and the release workflow itself, which warrants careful human review despite the added test coverage.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 13:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

It changes release automation and release-prep gates/workflow behavior, so it needs final human validation despite only a minor docs nit found.

Review details

Suppressed comments (1)

Previously missed (1) — in code that hasn't changed since the last review.

website/docs/platforms/webgpu-bridge.md:199

  • The pronoun “They” here is ambiguous and can read as referring to “Web and native” (the previous sentence) rather than the bridge assets. Reword to explicitly attribute the stack provisioning to the bridge assets to avoid misdocumenting native behavior.
  build. They provision an explicit 1 MiB stack for both wasm32 and memory64,
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings August 24, 2026 13:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

It changes release automation gates and enforced cross-repo pin contracts, which are high-impact even with strong regression coverage.

Review details
  • Files reviewed: 17/18 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

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.

Correct and enforce Web versus native llama.cpp pin divergence claims Release prep can skip the updated b10545 Apple companion pin

2 participants