Skip to content

fix(ci): check:proto-reads red for embeddings-native truncateVector — one undispositioned site landed with the native embeddings backend #1600

Closed

Description

@dezren39

fix(ci): check:proto-reads red for embeddings-native truncateVector — one undispositioned site landed with the native embeddings backend

Problem

bun script/check-proto-reads.ts exits 1 on clean origin/main 775b70088219c5aa21c86595d79ac6b89feea173 (verified this run in a laptop archive probe of that SHA, and the site re-verified by a raw gh api read at the same SHA). Of the four unlisted candidates the gate reports, three are already tracked by #1476 (generate.ts:171, systemone.ts:235, muse-attestation.ts:90) and the one stale allowlist entry (model-route-tuning.ts unit line) is already tracked by #1540. The remaining site is new and listed by neither issue:

Unlisted prototype-chain read candidate at packages/core/src/embeddings-native.ts:139:
  for (let index = 0; index < dimensions; index++) sliced[index] = full[index] ?? 0

Origin

packages/core/src/embeddings-native.ts was added 2026-11-03 by commit b56245df9b ("feat(core): native in-process embeddings backend behind the registry (#1554 step 2)") — after #1476 was filed (2026-11-02, against main d96751c983), so its sweep of packages/core/src could not have listed this file. #1476's acceptance criteria include "gate exits 0 on main", so this site must be dispositioned either there or here; it is filed separately, following the #1540 precedent of tracking merge-wave gate drift in its own issue rather than silently expanding an earlier issue's site list.

Site analysis (disposition-shaped, not a live prototype bug)

So the expected remedy is an accurate allowlist disposition in script/check-proto-reads.allowlist.txt stating the safe-by-construction reason above (or an equivalent guard if triage prefers code over disposition).

Why it matters

The proto-reads gate is the regression net for the prototype-chain read class. While it stays red for an undispositioned site, the next real instance can land unnoticed behind the noise — the same drift pattern as #1514 and #1540, one merge wave later.

Acceptance criteria

Related: #1476 (the gate's other three core sites), #1540 (the stale tuning entry), #1583 (output-width validation in the same file), #1369 (proto-reads coverage of the remaining trees).

Activity

  1. added
    kind/ciCI/CD pipelines, workflows, and build automation
    task/triageQueue packet kind: verify, reproduce, and route this item
    source/creatorFiled by the new-issue-creator job
    priority/lowNice to have; do when convenient
    queue/queuedHas a queued task in the Supabase agent queue
    area/ciCI, workflows, and build infrastructure
    app/corePackage: core (pkgs/ or apps/ in this repo)
    effort/xsTrivial: expected under 30 minutes of work
    on Nov 4, 2026
  2. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    🤖 Agent note · filed

  3. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    🤖 Agent note · filed (correction)

  4. added
    queue/claimedA queue worker has claimed the task for this item
    work/assignedAn agent holds this item via the queue (claimed task)
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  5. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    Handed off to the opencode execution lane (task 9240). The laptop claimant will launch the bound session to work this item.

  6. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    ALREADY FIXED — closing with evidence (task 9240 revalidation, lane opencode-a):

    • The site moved to packages/core/src/embeddings-native.ts:149: for (let index = 0; index < dimensions; index++) sliced[index] = full[index] ?? 0.
    • It is dispositioned in script/check-proto-reads.allowlist.txt (line 106) with the safe-by-construction reason (numeric index into a ReadonlyArray under a bounded loop counter, dimensions validated first), added by commit b12cf04 "fix(core): own-property alias read in muse-attestation; disposition proto-reads gate to green (fix(core): check:proto-reads red on main — muse-attestation ALIASES[name] reads through the prototype chain, two more façade reads unlisted #1476)" (git log -S embeddings-native on the allowlist).
    • Verified on fresh main 61caa59 (laptop detached worktree): bun script/check-proto-reads.ts exits 0 — "All 99 prototype-chain read candidates dispositioned", no unlisted embeddings-native candidate and no stale entries.

    No behavior change was needed; truncateVector is untouched.

    agent-note:v1 — repo-queue-worker-shift-opencode lane A, task 9240 done (already fixed)

  7. removed
    queue/claimedA queue worker has claimed the task for this item
    work/assignedAn agent holds this item via the queue (claimed task)
    on Nov 4, 2026
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

    app/corePackage: core (pkgs/ or apps/ in this repo)area/ciCI, workflows, and build infrastructureeffort/xsTrivial: expected under 30 minutes of workkind/ciCI/CD pipelines, workflows, and build automationpriority/lowNice to have; do when convenientsource/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this item

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions