Skip to content

Align published callback ABI metadata with the actual stream proxy protocol #107

Closed

Description

@leehack

Confirmed metadata-contract defect

Source repair merged in PR #108 as 361b1af0, whose tree exactly matches the audited head. All19 PR checks passed, including eight platform builds and three desktop Qwen inference jobs; post-merge validation also passed. Published v0.19.0 artifacts are unchanged. Static verification of all eight published v0.19.0 runtime primaries and three Apple primary slices confirms callback ABI2, while the manifest declares1. A separate core historical-reader compatibility fix has passed local checks and independent review and is held for post-0.18 integration. This issue stays open through corrected-artifact and downstream acceptance; no new core0.18 release gate is added.

The published v0.19.0 manifest declares abi.streamProxyCallback=1, but its actual macOS arm64 library exports callback ABI2. This is a pre-existing packaging/validation metadata defect, not a newly demonstrated binary/runtime regression.

The published owner source is f173fe9, upstream 83ce6067f2e2a3fb697556928f93936693ded971. At filing, core 1f341905a844ce067758796019b41c0912e54a7d adopted v0.19.0 while public core 0.17.5 used v0.18.1-4. The consumer directly probes actual callback2/allocation1, so no Dart execution failure is established by this metadata defect.

Primary evidence

  • Manifest byte SHA256: bd6f67c047bbd853fd962d363e0507c043be0658c00502b4e486b02c27107871.
  • Generator hardcodes1; validator requires1.
  • Bridge getter returns2 with stream-chunk API; version policy and builder select that mode.
  • Official archive SHA256 b5d7855378500b68e9395bc17bef431ee852c68ddb8ac88e4d6686c5e09e505f matches GitHub/manifest; extracted library SHA256 ffd7e9904f4bcc25753f83298b72c6b3da9d4cf8c0b058e7369cf63e315b1225. Static disassembly of _stream_proxy_callback_abi_version at 0x40b0 is mov w0,Add StreamProxy runtime helper packaging #2; ret. Finish-reason and allocation-failure getters return1. No library execution or model/device job was needed.
  • Dart consumer requires callback2 and allocation1.

Impact, bounded fix and acceptance

Machine-readable provenance can currently pass validation while describing the wrong callback protocol. Priority P2 / bug: correct the owner contract without implying current protected consumers crash.

  • Centralize the version-derived callback ABI decision used by generator/build/validator; keep callback, finish-reason and allocation-failure ABIs distinct. Source delivered in Fix stream proxy callback ABI release metadata #108.
  • Preserve legitimate legacy ABI1 versus modern ABI2 policy and historical artifact compatibility explicitly; do not rewrite or replace the published v0.19.0 bytes/tag. Source/tests delivered in Fix stream proxy callback ABI release metadata #108.
  • Add generator/validator negative controls and actual packaged-getter agreement checks across representative platform artifacts. A validator that repeats the generator's wrong constant is not independent evidence.
  • Reconcile downstream sync fixtures/ABI inventories and direct runtime probes before consuming any corrected manifest. Preserve old/unknown-runtime refusal.
  • If a release correction is required, prepare a newly qualified owner artifact through normal manifest/checksum/Apple/provenance/publication controls and coordinate consumer adoption separately.

Existing #75 owns the broader migration; #97 owns copy-loss behavior. Neither adequately owns this metadata mismatch. Open/closed Issue/comment/PR duplicate searches for streamProxyCallback and callback+manifest were rechecked before creation. Tracking only; no publication, existing-release rewrite, pin or workflow changes are authorized here.

Activity

  1. added
    bugSomething isn't working
    priority:P2Planned next: useful unblocked work or validation after P1 items
    on Nov 5, 2026
  2. leehack commented on Nov 8, 2026

    @leehack
    OwnerAuthor

    2026-11-08: first corrected published metadata is v0.19.1, owner1fa4d43705fe07ba5e4d962e41cf32b8a2ac6116/upstream7a03724c; manifestSHA2566ee1528a37f7e473c23def3dacfcdad1d9631cf7ed54d9891264e346e1d17e2e declares callbackABI2. Historical19.0 bytes remain unchanged.

    The historical-reader compatibility core#1772 merged9273d49d at10:24Nov7, BEFORE core0.18 publication, not held afterward. Core#1785 now adopts the corrected19.1 artifact on main, with independent audit of published-byte fixtures/digests/Apple topology and getter-compatible C API1.0 routing. Public0.18 uses original19.0 metadata with the compatible reader/live callback2 probe; no present runtime failure is attributed to this metadata defect.

    Owner corrected publication and main adoption are complete; recommend scoped disposition/readback reconciliation rather than another metadata repair. New desktop runtime#111/#112/core#1795 is a separate defect and unpublished rebuild gate. No issue-state or release change by this scan.

  3. leehack commented on Nov 8, 2026

    @leehack
    OwnerAuthor

    Fixed by #108; first shipped in v0.19.1 (manifest declares callback ABI 2), adopted by llamadart#1785.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:P2Planned next: useful unblocked work or validation after P1 items

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions