Dashboard › opencode-lore › Session 0VohlSjRK0TA
0VohlSjRK0TAIkdINPerform a read-only adversarial correctness/security audit of the CURRENT working copy in /home/byk/Code/opencode-lore-embedding-runtime, limited to the native ORT resolver/load/fallback slice: packages/core/src/ort-native.ts, packages/core/src/embedding-worker-types.ts, packages/core/src/embedding-worker.ts native selection/load fallback, packages/core/test/ort-native.test.ts, packages/core/test/embedding-worker-types.test.ts, packages/core/test/embedding-wasm-fallback.test.ts, packages/gateway/script/bundle.ts worker build defines, packages/gateway/script/ort-platform-package.ts, packages/gateway/test/bundle-exports.test.ts, packages/gateway/test/ort-platform-package.test.ts. Do not edit, format, network, access production DB, signal service, or mutate VCS. Inspect exact current bytes. Challenge package-manager layouts (npm/pnpm/Yarn PnP), canonical containment/symlink escape, native format validation, platform/libc/ABI identity, emitted CJS/Bun artifacts, native dlopen failure classification, one-shot WASM fallback, privacy/diagnostic leakage, resource cleanup, unsupported targets, and whether tests can pass for the wrong reason. Run focused read-only tests if useful. Return findings ordered by severity with exact file:line evidence and PASS/CONCERN/MUST-FIX labels, then final MERGE or DO-NOT-MERGE for this slice. Record exact revision/change ID and verify hashes unchanged.
<path>/home/byk/Code/opencode-lore-embedding-runtime</path> <type>directory</type> <entries> .craft.yml .git .github/ .gitignore .jj/ .lore.md .oxfmtrc.json .oxlintrc.json AGENTS.md CHANGELOG.md codecov.yml LICENSE node_modules/ package.json packages/ patches/ pnpm-lock.yaml pnpm-workspace.yaml quality/ README.md scripts/ stryker.config.mjs supabase/ tsconfig.base.json tsconfig.json vitest.config.ts vitest.evals.config.ts vitest.mutation.config.ts (28 entries) </entries>
<skill_content name="jj-guide"> # Skill: jj-guide # jj Guide for AI Agents Jujutsu (jj) is a Git-compatible VCS with mutable commits, automatic snapshotting, no staging area, and first-class conflicts. This skill teaches you how to use it safely from a non-interactive agent environment. If `.jj/` exists in the repo root, this is a jj repo. **Use `jj` commands, not `git`.** In a colocated repo (`.jj/` *and* `.git/`), git tools can read the state, but mutations should go through `jj` so the operation log stays consistent. ## Critical Rules - **NEVER** use interactive flags (`-i`, `--interactive`). TUI prompts hang in agent environments. This applies to `jj split -i`, `jj squash -i`, `jj commit -i`, `jj resolve`, `jj diffedit`, etc. - **ALWAYS** pass `-m "msg"` when describing/committing. Without `-m`, an editor opens and hangs. - **VERIFY** mutations with `jj st` and `jj log` after `squash`, `abandon`, `rebase`, `restore`, `commit`. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/AGENTS.md</path> <type>file</type> <content> 1: <!-- This section is maintained by the coding agent via lore (https://github.com/BYK/loreai) --> 2: ## Long-term Knowledge 3: 4: For long-term knowledge entries managed by [lore](https://github.com/BYK/loreai) (gotchas, patterns, decisions, architecture), see [`.lore.md`](.lore.md) in the project root. 5: <!-- End lore-managed section --> 6: 7: ## Review 8: 9: See [`quality/REVIEW.md`](quality/REVIEW.md) for the review heuristics and workflow — regression-test discipline, adversarial-order state setup, fan-out registry coverage, recurring bug-class batteries, and the two-reviewer rule. Every non-trivial PR requires an adversarial correctness review before merge. 10: 11: # Project Overview 12: 13: Lore is a **three-tier memory architecture** for AI coding agents. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "lore-monorepo",
3: "private": true,
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Monorepo root for Lore — three-tier memory architecture",
7: "main": "./packages/opencode/src/index.ts",
8: "exports": {
9: ".": "./packages/opencode/src/index.ts"
10: },
11: "packageManager": "pnpm@10.28.0",
12: "volta": {
13: "node": "24.16.0",
14: "pnpm": "10.28.0"
15: },
16: "pnpm": {
17: "onlyBuiltDependencies": [
18: "esbuild",
19: "onnxruntime-node",
20: "sharp"
21: ],
22: "overrides": {
23: "basic-ftp": "5.3.1",
24: "ip-address": "10.2.0",
25: "fast-xml-parser": "5.7.3",
26: "@huggingface/hub": "2.11.0",
27: "onnxruntime-node": "1.27.0",
28: "yaml": ">=2.8.3",
29: "esbuild": ">=0.28.1",
30: "@opentelemetry/core": ">=2.8.0",
31: ...
/home/byk/Code/opencode-lore-embedding-runtime/quality/REVIEW.md
<path>/home/byk/Code/opencode-lore-embedding-runtime/quality/REVIEW.md</path> <type>file</type> <content> 1: # Review Heuristics — Lore 2: 3: This document codifies the review bar for pull requests. It exists because 4: adversarial review has repeatedly caught correctness bugs that a green test 5: suite missed — skip/early-return branches, lifecycle sequences, and fan-out 6: registry gaps. Institutionalizing these patterns so they compound. 7: 8: The review workflow (§6) is referenced from AGENTS.md. 9: 10: --- 11: 12: ## 1. Regression-test discipline 13: 14: Every adversarial-review finding that surfaces a defect **must** land a 15: deterministic regression test in the same PR. The test: 16: - fails on the base branch (proving it reproduces the bug), 17: - passes on the fix (proving the fix works), 18: - drives the *real* precondition, not an artificially-constructed state (e.g. ...
Found 64 matches /home/byk/Code/opencode-lore-embedding-runtime/.lore.md: Line 1: <!-- Managed by lore (https://github.com/BYK/loreai) — manual edits are imported on next session. --> Line 29: * **Embedding token batching and temporal chunk cap**: Use embedInTokenBatches for all embedding paths, including temporal messages, to prevent ONNX padding all inputs to the longest sequence and causing OOM. Batch by token area (MAX\_BATCH\_TOKEN\_AREA 4096), but always admit the first item so the loop progresses. Preserve input order and call storeTemporalChunks once. Cap temporal chunks at 64: retain the first 63 and join the remainder into one tail; an oversized tail may occupy its own batch and is truncated downstream. Line 32: * **Embedding worker CJS/ESM resolution**: Chose \`\_\_filename\` for CJS and \`import.meta.url\` for ESM over one universal worker-relative path because Bun/tsx ESM workers must resolve from the module URL while bundled CJS always defines its filename. ...
jj 0.45.1-2133040a8b99df306b3b6a199608b5ae669ae8a6 Working copy changes: A packages/core/src/cgroup-memory.ts M packages/core/src/embedding/local.ts M packages/core/src/embedding/pool.ts M packages/core/src/embedding-cap.ts M packages/core/src/embedding-worker-types.ts M packages/core/src/embedding-worker.ts M packages/core/src/embedding.ts M packages/core/src/ort-native.ts A packages/core/test/cgroup-memory.test.ts M packages/core/test/embedding-cap.test.ts M packages/core/test/embedding-pool.test.ts M packages/core/test/embedding-worker-types.test.ts M packages/core/test/ort-native.test.ts M packages/gateway/script/bundle.ts M packages/gateway/script/ort-platform-package.ts M packages/gateway/test/bundle-exports.test.ts M packages/gateway/test/ort-platform-package.test.ts Working copy (@) : tmzmtlss aee4651c fix/embedding-runtime-admission | fix(core): correct embedding runtime selection and admission Parent commit (@-): pxrvwsvv 2cbf4006 main | feat(cch): add seeds for Claude Code ...
784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 4a7102ba0678b21b9608f6f0560b93429238e3fd70b534f829c5e771bd5a5254 packages/core/src/embedding-worker-types.ts 0d74b4c3251f56d7599060c19ef22bdb9b0da5bdc2968c89305769684bc00353 packages/core/src/embedding-worker.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 5021fcbeb250f7fe5d2064f240fa01f1c56c328f0700d51740fb678742e335da packages/core/test/embedding-wasm-fallback.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f packages/gateway/script/bundle.ts d5b67bf3fe2f5b7f1cb7e8c610fbe54031b1cca6602f3d5a2f76228eda121888 packages/gateway/script/ort-platform-package.ts f1f9863e0b60ce22bb4476241d3f9b28f0f9a59ac69d639d44f626042f18e56f ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/ort-native.ts</path> <type>file</type> <content> 1: /** 2: * Runtime resolution of the native ONNX Runtime addon shipped as a per-platform 3: * npm package (`@loreai/onnxruntime-<os>-<arch>`), the esbuild distribution 4: * model. See `packages/gateway/script/ort-platform-package.ts` for the build / 5: * publish side — the package name computed here MUST match the names published 6: * there (both are pinned to the literal `@loreai/onnxruntime-<os>-<arch>` shape 7: * by tests on each side). 8: * 9: * The npm gateway worker bundle uses this to prefer native ONNX Runtime over the 10: * bundled WASM fallback. Published packages resolve the platform package that 11: * npm installed through `optionalDependencies`; source workspaces resolve the 12: * gateway's direct `onnxruntime-node` dependency. Both routes are npm-12-safe 13: * and require no postinstall download. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker-types.ts</path>
<type>file</type>
<content>
1: /**
2: * Shared message types for the embedding worker thread.
3: *
4: * The embedding worker (`embedding-worker.ts`) runs ONNX inference via
5: * `@huggingface/transformers` in a separate `node:worker_threads` Worker
6: * so the main thread's event loop stays free during inference. This file
7: * defines the message protocol between the main thread (`LocalProvider`
8: * in `embedding.ts`) and the worker.
9: *
10: * Imported by both sides — keep this file free of runtime dependencies.
11: */
12:
13: // ---------------------------------------------------------------------------
14: // Main thread → Worker
15: // ---------------------------------------------------------------------------
16:
17: /** Request an embedding batch. */
18: export interface EmbedRequest {
19: type: "embed";
20: /** Monotonic request ID for correlating responses. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker.ts</path> <type>file</type> <content> 1: /** 2: * Embedding worker thread — runs ONNX inference via @huggingface/transformers 3: * off the main thread. 4: * 5: * This file is the entry point for a `node:worker_threads` Worker spawned by 6: * `LocalProvider` in `embedding.ts`. It owns the transformers.js pipeline 7: * and processes embed requests sequentially from a priority queue. Moving 8: * inference here keeps the main thread's event loop free — HTTP requests, 9: * SSE streams, and session APIs are no longer blocked during embedding. 10: * 11: * Communication uses `parentPort` message passing with structured clone. 12: * Float32Array vectors are sent back directly (Bun preserves identity). 13: * 14: * The worker applies Nomic's recommended post-processing: 15: * 1. Mean pooling (via pipeline option) 16: * 2. Layer normalization 17: * 3. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/ort-native.test.ts</path>
<type>file</type>
<content>
1: import {
2: mkdirSync,
3: mkdtempSync,
4: realpathSync,
5: rmSync,
6: symlinkSync,
7: writeFileSync,
8: } from "node:fs";
9: import { tmpdir } from "node:os";
10: import { dirname, join } from "node:path";
11: import { describe, expect, test } from "vitest";
12: import {
13: ORT_NATIVE_BINDING_FILE,
14: ORT_NATIVE_TARGETS,
15: type NativeOrtRuntime,
16: nativeIntraOpThreads,
17: ortNativePackageName,
18: ortPlatformTarget,
19: resolveNativeOrtBindingPath,
20: } from "../src/ort-native";
21:
22: const ORT_VERSION = "1.27.0";
23: const GATEWAY_VERSION = "9.9.9";
24: const LINUX_RUNTIME: NativeOrtRuntime = {
25: platform: "linux",
26: arch: "x64",
27: glibcVersionRuntime: "2.39",
28: };
29:
30: function writeJson(path: string, value: unknown): void {
31: mkdirSync(dirname(path), { recursive: true });
32: writeFileSync(path, ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/embedding-worker-types.test.ts</path>
<type>file</type>
<content>
1: import { readFileSync } from "node:fs";
2: import { fileURLToPath } from "node:url";
3: import { describe, expect, test } from "vitest";
4: import {
5: isOomError,
6: isWasmFatalError,
7: isCorruptModelError,
8: isNativeOrtLoadError,
9: isTransformersInferenceDumpLine,
10: looksLikeIntactOnnxFile,
11: MIN_ONNX_FILE_BYTES,
12: resolveModelCacheDir,
13: shouldHealCorruptModel,
14: shouldPostPerRequestError,
15: shouldRequestWasmRespawn,
16: TRANSFORMERS_INFERENCE_DUMP_PREFIXES,
17: } from "../src/embedding-worker-types";
18:
19: describe("isCorruptModelError", () => {
20: test("matches the real truncated-download error observed in production", () => {
21: // The exact message observed when a 137MB model only downloaded ~87MB.
22: const msg =
23: "Load model from /home/byk/.../onnx/model_quantized.onnx ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/embedding-wasm-fallback.test.ts</path>
<type>file</type>
<content>
1: import { afterEach, beforeEach, describe, expect, it } from "vitest";
2: import { EventEmitter } from "node:events";
3: import type { Worker } from "node:worker_threads";
4: import {
5: embed,
6: isAvailable,
7: LocalProviderUnavailableError,
8: _persistEmbedCap,
9: _resetLocalProviderProbe,
10: _resetProviderShutdownTrackingForTest,
11: _restoreProvider,
12: _saveAndClearProvider,
13: _setConstrainedMemoryForTest,
14: _setContainerFreeForTest,
15: _setTestWorkerFactory,
16: shutdownProvider,
17: } from "../src/embedding";
18: import { EMBED_OOM_EXIT_CODE } from "../src/embedding-worker-types";
19: import type { WorkerInitData } from "../src/embedding-worker-types";
20:
21: // Exercises the native→WASM fallback lifecycle in LocalProvider (#1379): when a
22: // native worker reports `init-needs-wasm` (it loaded the ONNX ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/script/bundle.ts</path> <type>file</type> <content> 1: /** 2: * Bundle @loreai/gateway into a self-contained CJS package for npm/npx. 3: * 4: * Produces: 5: * dist/index.cjs — single CJS bundle (gateway + core + all JS deps) 6: * dist/bin.cjs — thin CLI wrapper with Node.js version check 7: * 8: * Everything is bundled except: 9: * - node:* built-ins (resolved at runtime) 10: * 11: * Source code is pure Node.js — no `Bun.*` polyfill layer is needed. 12: * (xxHash64 lives in src/xxhash.ts as a standalone module since there is 13: * no Node.js equivalent of `Bun.hash.xxHash64`.) 14: * 15: * Debug IDs are injected into the JS + sourcemap after bundling for Sentry 16: * source map resolution. When SENTRY_AUTH_TOKEN is set, sourcemaps are 17: * uploaded to Sentry and then deleted (they shouldn't ship to users). ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/script/ort-platform-package.ts</path> <type>file</type> <content> 1: /** 2: * Generate per-platform npm packages that carry the native `onnxruntime-node` 3: * addon + its shared libraries — the esbuild distribution model (see 4: * `@esbuild/<os>-<arch>`), replicated for ONNX Runtime. 5: * 6: * WHY: the `@loreai/gateway` npm bundle ships a self-contained WASM ONNX runtime 7: * so that dist-only installs (AUR, vendored `dist/`) work with zero 8: * `node_modules` (#763). But WASM is single-threaded and 2.7–4.1× slower than 9: * native (#999), and every normal `npm i` / plugin install DOES have a 10: * `node_modules`. We can't just depend on `onnxruntime-node` directly: its 11: * native binary arrives via a **postinstall download** from GitHub releases, 12: * which npm 12 will stop running automatically and which fails in offline / air- 13: * gapped / proxied installs. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/ort-platform-package.test.ts</path>
<type>file</type>
<content>
1: import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
2: import { tmpdir } from "node:os";
3: import { join } from "node:path";
4: import { afterAll, describe, expect, test } from "vitest";
5: import {
6: buildOrtPlatformPackages,
7: ORT_NPM_PLATFORMS,
8: ORT_PACKAGE_BINDING_SUBPATH,
9: ortPackageName,
10: ortPlatformTarget,
11: } from "../script/ort-platform-package";
12: import { ortNodeVersion } from "../script/vendor-ort-native";
13: import { ORT_NATIVE_TARGETS } from "../../core/src/ort-native";
14:
15: // The per-platform ORT packages are found at runtime via
16: // require.resolve(`${ortPackageName(ortPlatformTarget())}/${ORT_PACKAGE_BINDING_SUBPATH}`)
17: // so the (process.platform, process.arch) → package-name derivation MUST match
18: // the names/os/cpu the generator publishes, or a platform silently ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/bundle-exports.test.ts</path> <type>file</type> <content> 1: /** 2: * Smoke test for the npm bundle artifacts. 3: * 4: * Verifies that: 5: * - Every file referenced by package.json `files` and `exports` exists 6: * - The CJS Node bundle uses node:sqlite (not bun:sqlite) 7: * - @loreai/core is inlined (not externalized) in the Bun bundle (#1027) 8: * 9: * These assert on the built `dist/` artifacts. A bundle build runs immediately 10: * before vitest under `pnpm test` (root `pretest` hook) and `pnpm run 11: * test:coverage` (its own `bundle &&` chain, used by CI) — but NOT for 12: * `vitest --watch`, IDE test runners, or a direct `vitest run`. After pulling a 13: * change to the bundle's inputs (e.g. ...
No files found
diff --git a/packages/core/src/embedding-worker-types.ts b/packages/core/src/embedding-worker-types.ts
index 143f0d4fde..39969218a5 100644
--- a/packages/core/src/embedding-worker-types.ts
+++ b/packages/core/src/embedding-worker-types.ts
@@ -223,6 +223,18 @@
return /@huggingface\/transformers|onnxruntime|\bsharp\b/i.test(msg);
}
+/** Detect a selected native ONNX Runtime addon that could not be loaded. */
+export function isNativeOrtLoadError(msg: string): boolean {
+ const nativeRuntime =
+ /onnxruntime_binding\.node|libonnxruntime(?:_providers_[\w-]+)?\.(?:so(?:\.\d+)*|dylib|dll)|\bOrtGetApiBase\b/i.test(
+ msg,
+ );
+ if (!nativeRuntime) return false;
+ return /ERR_DLOPEN_FAILED|invalid (?:ELF|Mach-O|Win32)|file too short|cannot open shared object file|image not found|specified module could not be found|undefined symbol|symbol not found|\bdlopen\b/i.test(
+ msg,
+ );
+}
+
/**
* Decide whether a failed pipeline init should ask the main thread to respawn
...
Resume and complete the read-only review now. Ignore all prior conversation context and inspect only the current files in /home/byk/Code/opencode-lore-embedding-runtime. Scope: packages/core/src/ort-native.ts; native-selection/fallback code in packages/core/src/embedding-worker.ts and embedding-worker-types.ts; packages/core/test/ort-native.test.ts and embedding-worker-types.test.ts; packages/gateway/script/bundle.ts and ort-platform-package.ts; packages/gateway/test/bundle-exports.test.ts and ort-platform-package.test.ts. Do not use Lore/recall. Do not edit, format, network, access any database, signal services, or mutate VCS. First record jj st, exact @ and @- identities, changed paths, and SHA-256 of jj diff --git; repeat them at end and require equality. Review package ownership, npm/pnpm/Yarn behavior, path containment and symlink escapes, native binary validation, target/libc/ABI identity, CJS and Bun artifact defines, dlopen/model-load failure fallback, one-shot behavior, diagnostics, cleanup, and tests that pass for the wrong reason. You may run narrowly focused read-only tests. Return a substantive report with severity-ordered findings, each labeled PASS, CONCERN, or MUST-FIX and exact file:line evidence. State residual risks and end exactly MERGE or DO-NOT-MERGE. Never return a context warning or progress-only output; if blocked, name the exact blocker and still provide all review evidence available.
=== JJ STATUS (ignore working-copy snapshot) === Working copy changes: A packages/core/src/cgroup-memory.ts M packages/core/src/embedding/local.ts M packages/core/src/embedding/pool.ts M packages/core/src/embedding-cap.ts M packages/core/src/embedding-worker-types.ts M packages/core/src/embedding-worker.ts M packages/core/src/embedding.ts M packages/core/src/ort-native.ts A packages/core/test/cgroup-memory.test.ts M packages/core/test/embedding-cap.test.ts M packages/core/test/embedding-pool.test.ts M packages/core/test/embedding-worker-types.test.ts M packages/core/test/ort-native.test.ts M packages/gateway/script/bundle.ts M packages/gateway/script/ort-platform-package.ts M packages/gateway/test/bundle-exports.test.ts M packages/gateway/test/ort-platform-package.test.ts Working copy (@) : tmzmtlss aee4651c fix/embedding-runtime-admission | fix(core): correct embedding runtime selection and admission Parent commit (@-): pxrvwsvv 2cbf4006 main | feat(cch): add seeds for Claude Code ...
=== @ === change=tmzmtlsspstnppsrlpmuulsywurmlnqu commit=aee4651c96b009c28f9e79f40f019fd2c7c49a0a parents=pxrvwsvvkmpoxnsqmrkwrnlqvvkoltwz:2cbf40060c67df229731cf1b9e34d5bf22ec2145 description=fix(core): correct embedding runtime selection and admission === @- === change=pxrvwsvvkmpoxnsqmrkwrnlqvvkoltwz commit=2cbf40060c67df229731cf1b9e34d5bf22ec2145 parents=xpzmsyowwmzsorxottxynvnwlqrykyuo:e977b4b1da8f8197c3238466d41de0bccd8eb054 description=feat(cch): add seeds for Claude Code up to 2.1.272 (#1780)
784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 0d74b4c3251f56d7599060c19ef22bdb9b0da5bdc2968c89305769684bc00353 packages/core/src/embedding-worker.ts 4a7102ba0678b21b9608f6f0560b93429238e3fd70b534f829c5e771bd5a5254 packages/core/src/embedding-worker-types.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f packages/gateway/script/bundle.ts d5b67bf3fe2f5b7f1cb7e8c610fbe54031b1cca6602f3d5a2f76228eda121888 packages/gateway/script/ort-platform-package.ts f1f9863e0b60ce22bb4476241d3f9b28f0f9a59ac69d639d44f626042f18e56f packages/gateway/test/bundle-exports.test.ts 71a3be381ef07ac967653e7aa4104a59d11691402a5b645a4d6d1111ee645449 packages/gateway/test/ort-platform-package.test.ts
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/ort-native.ts</path> <type>file</type> <content> 1: /** 2: * Runtime resolution of the native ONNX Runtime addon shipped as a per-platform 3: * npm package (`@loreai/onnxruntime-<os>-<arch>`), the esbuild distribution 4: * model. See `packages/gateway/script/ort-platform-package.ts` for the build / 5: * publish side — the package name computed here MUST match the names published 6: * there (both are pinned to the literal `@loreai/onnxruntime-<os>-<arch>` shape 7: * by tests on each side). 8: * 9: * The npm gateway worker bundle uses this to prefer native ONNX Runtime over the 10: * bundled WASM fallback. Published packages resolve the platform package that 11: * npm installed through `optionalDependencies`; source workspaces resolve the 12: * gateway's direct `onnxruntime-node` dependency. Both routes are npm-12-safe 13: * and require no postinstall download. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker-types.ts</path>
<type>file</type>
<content>
1: /**
2: * Shared message types for the embedding worker thread.
3: *
4: * The embedding worker (`embedding-worker.ts`) runs ONNX inference via
5: * `@huggingface/transformers` in a separate `node:worker_threads` Worker
6: * so the main thread's event loop stays free during inference. This file
7: * defines the message protocol between the main thread (`LocalProvider`
8: * in `embedding.ts`) and the worker.
9: *
10: * Imported by both sides — keep this file free of runtime dependencies.
11: */
12:
13: // ---------------------------------------------------------------------------
14: // Main thread → Worker
15: // ---------------------------------------------------------------------------
16:
17: /** Request an embedding batch. */
18: export interface EmbedRequest {
19: type: "embed";
20: /** Monotonic request ID for correlating responses. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker.ts</path> <type>file</type> <content> 1: /** 2: * Embedding worker thread — runs ONNX inference via @huggingface/transformers 3: * off the main thread. 4: * 5: * This file is the entry point for a `node:worker_threads` Worker spawned by 6: * `LocalProvider` in `embedding.ts`. It owns the transformers.js pipeline 7: * and processes embed requests sequentially from a priority queue. Moving 8: * inference here keeps the main thread's event loop free — HTTP requests, 9: * SSE streams, and session APIs are no longer blocked during embedding. 10: * 11: * Communication uses `parentPort` message passing with structured clone. 12: * Float32Array vectors are sent back directly (Bun preserves identity). 13: * 14: * The worker applies Nomic's recommended post-processing: 15: * 1. Mean pooling (via pipeline option) 16: * 2. Layer normalization 17: * 3. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/ort-native.test.ts</path>
<type>file</type>
<content>
1: import {
2: mkdirSync,
3: mkdtempSync,
4: realpathSync,
5: rmSync,
6: symlinkSync,
7: writeFileSync,
8: } from "node:fs";
9: import { tmpdir } from "node:os";
10: import { dirname, join } from "node:path";
11: import { describe, expect, test } from "vitest";
12: import {
13: ORT_NATIVE_BINDING_FILE,
14: ORT_NATIVE_TARGETS,
15: type NativeOrtRuntime,
16: nativeIntraOpThreads,
17: ortNativePackageName,
18: ortPlatformTarget,
19: resolveNativeOrtBindingPath,
20: } from "../src/ort-native";
21:
22: const ORT_VERSION = "1.27.0";
23: const GATEWAY_VERSION = "9.9.9";
24: const LINUX_RUNTIME: NativeOrtRuntime = {
25: platform: "linux",
26: arch: "x64",
27: glibcVersionRuntime: "2.39",
28: };
29:
30: function writeJson(path: string, value: unknown): void {
31: mkdirSync(dirname(path), { recursive: true });
32: writeFileSync(path, ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/embedding-worker-types.test.ts</path>
<type>file</type>
<content>
1: import { readFileSync } from "node:fs";
2: import { fileURLToPath } from "node:url";
3: import { describe, expect, test } from "vitest";
4: import {
5: isOomError,
6: isWasmFatalError,
7: isCorruptModelError,
8: isNativeOrtLoadError,
9: isTransformersInferenceDumpLine,
10: looksLikeIntactOnnxFile,
11: MIN_ONNX_FILE_BYTES,
12: resolveModelCacheDir,
13: shouldHealCorruptModel,
14: shouldPostPerRequestError,
15: shouldRequestWasmRespawn,
16: TRANSFORMERS_INFERENCE_DUMP_PREFIXES,
17: } from "../src/embedding-worker-types";
18:
19: describe("isCorruptModelError", () => {
20: test("matches the real truncated-download error observed in production", () => {
21: // The exact message observed when a 137MB model only downloaded ~87MB.
22: const msg =
23: "Load model from /home/byk/.../onnx/model_quantized.onnx ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/script/bundle.ts</path> <type>file</type> <content> 1: /** 2: * Bundle @loreai/gateway into a self-contained CJS package for npm/npx. 3: * 4: * Produces: 5: * dist/index.cjs — single CJS bundle (gateway + core + all JS deps) 6: * dist/bin.cjs — thin CLI wrapper with Node.js version check 7: * 8: * Everything is bundled except: 9: * - node:* built-ins (resolved at runtime) 10: * 11: * Source code is pure Node.js — no `Bun.*` polyfill layer is needed. 12: * (xxHash64 lives in src/xxhash.ts as a standalone module since there is 13: * no Node.js equivalent of `Bun.hash.xxHash64`.) 14: * 15: * Debug IDs are injected into the JS + sourcemap after bundling for Sentry 16: * source map resolution. When SENTRY_AUTH_TOKEN is set, sourcemaps are 17: * uploaded to Sentry and then deleted (they shouldn't ship to users). ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/script/ort-platform-package.ts</path> <type>file</type> <content> 1: /** 2: * Generate per-platform npm packages that carry the native `onnxruntime-node` 3: * addon + its shared libraries — the esbuild distribution model (see 4: * `@esbuild/<os>-<arch>`), replicated for ONNX Runtime. 5: * 6: * WHY: the `@loreai/gateway` npm bundle ships a self-contained WASM ONNX runtime 7: * so that dist-only installs (AUR, vendored `dist/`) work with zero 8: * `node_modules` (#763). But WASM is single-threaded and 2.7–4.1× slower than 9: * native (#999), and every normal `npm i` / plugin install DOES have a 10: * `node_modules`. We can't just depend on `onnxruntime-node` directly: its 11: * native binary arrives via a **postinstall download** from GitHub releases, 12: * which npm 12 will stop running automatically and which fails in offline / air- 13: * gapped / proxied installs. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/bundle-exports.test.ts</path> <type>file</type> <content> 1: /** 2: * Smoke test for the npm bundle artifacts. 3: * 4: * Verifies that: 5: * - Every file referenced by package.json `files` and `exports` exists 6: * - The CJS Node bundle uses node:sqlite (not bun:sqlite) 7: * - @loreai/core is inlined (not externalized) in the Bun bundle (#1027) 8: * 9: * These assert on the built `dist/` artifacts. A bundle build runs immediately 10: * before vitest under `pnpm test` (root `pretest` hook) and `pnpm run 11: * test:coverage` (its own `bundle &&` chain, used by CI) — but NOT for 12: * `vitest --watch`, IDE test runners, or a direct `vitest run`. After pulling a 13: * change to the bundle's inputs (e.g. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/ort-platform-package.test.ts</path>
<type>file</type>
<content>
1: import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
2: import { tmpdir } from "node:os";
3: import { join } from "node:path";
4: import { afterAll, describe, expect, test } from "vitest";
5: import {
6: buildOrtPlatformPackages,
7: ORT_NPM_PLATFORMS,
8: ORT_PACKAGE_BINDING_SUBPATH,
9: ortPackageName,
10: ortPlatformTarget,
11: } from "../script/ort-platform-package";
12: import { ortNodeVersion } from "../script/vendor-ort-native";
13: import { ORT_NATIVE_TARGETS } from "../../core/src/ort-native";
14:
15: // The per-platform ORT packages are found at runtime via
16: // require.resolve(`${ortPackageName(ortPlatformTarget())}/${ORT_PACKAGE_BINDING_SUBPATH}`)
17: // so the (process.platform, process.arch) → package-name derivation MUST match
18: // the names/os/cpu the generator publishes, or a platform silently ...
1.3.14 worker-artifacts-present
packages/gateway/dist/embedding-worker.cjs size=581816 mtime_ns=1789552092.2026-09-16 09:48:12.900065188 +0000 packages/gateway/dist/embedding-worker.js size=581495 mtime_ns=1789552093.2026-09-16 09:48:13.114063732 +0000 packages/core/src/ort-native.ts size=11460 mtime_ns=1789550960.2026-09-16 09:29:20.242828474 +0000 packages/core/src/embedding-worker.ts size=38137 mtime_ns=1789552065.2026-09-16 09:47:45.134255901 +0000 packages/gateway/script/bundle.ts size=21370 mtime_ns=1789492756.2026-09-15 17:19:16.469808146 +0000 eb0ccfc5ef503b0351675b9e5d86579f8152fbfae7c1786aa909f3bbb2f93915 packages/gateway/dist/embedding-worker.cjs e02912f98b6bf4c74f539311093ad08fcb3c2e152f86170d580d6dddf7902025 packages/gateway/dist/embedding-worker.js
Ripgrep JSON record exceeded 65536 bytes
packages/gateway/dist/embedding-worker.cjs LORE_ORT_NODE_VERSION=0 loreOrtNodeVersion=1 glibcVersionRuntime=4 1\.27\.0=4 resolveNativeOrtBindingPath=2 packages/gateway/dist/embedding-worker.js LORE_ORT_NODE_VERSION=0 loreOrtNodeVersion=1 glibcVersionRuntime=4 1\.27\.0=4 resolveNativeOrtBindingPath=2
(no output)
(no output)
bun-e-ok exit=0
exit=0
string exit=0
exit=0
{"hasReport":true,"hasGetReport":"function","platform":"linux","arch":"x64","glibc":"2.39"}
[
{
"message": "/tmp/onnxruntime_binding.node: wrong ELF class: ELFCLASS32",
"classified": false
},
{
"message": "/tmp/onnxruntime_binding.node: version GLIBC_2.38 not found (required by /tmp/libonnxruntime.so.1)",
"classified": false
},
{
"message": "C:\\x\\onnxruntime_binding.node: %1 is not a valid Win32 application.",
"classified": false
},
{
"message": "dlopen(/tmp/onnxruntime_binding.node, 0x0001): incompatible architecture",
"classified": true
}
]
packages/gateway/dist/embedding-worker.cjs __filename=4 import_meta_url=0 __LORE_ORT_BINDING_PATH__=5 __LORE_NPM_WASM_PATHS__=5 packages/gateway/dist/embedding-worker.js __filename=3 import_meta_url=0 __LORE_ORT_BINDING_PATH__=5 __LORE_NPM_WASM_PATHS__=5
{"message":"Library not loaded: @rpath/libonnxruntime.1.dylib\nReason: image not found","classified":false}
784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 0d74b4c3251f56d7599060c19ef22bdb9b0da5bdc2968c89305769684bc00353 packages/core/src/embedding-worker.ts 4a7102ba0678b21b9608f6f0560b93429238e3fd70b534f829c5e771bd5a5254 packages/core/src/embedding-worker-types.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f packages/gateway/script/bundle.ts d5b67bf3fe2f5b7f1cb7e8c610fbe54031b1cca6602f3d5a2f76228eda121888 packages/gateway/script/ort-platform-package.ts f1f9863e0b60ce22bb4476241d3f9b28f0f9a59ac69d639d44f626042f18e56f packages/gateway/test/bundle-exports.test.ts 71a3be381ef07ac967653e7aa4104a59d11691402a5b645a4d6d1111ee645449 packages/gateway/test/ort-platform-package.test.ts
=== JJ STATUS (ignore working-copy snapshot) === Working copy changes: A packages/core/src/cgroup-memory.ts M packages/core/src/embedding/local.ts M packages/core/src/embedding/pool.ts M packages/core/src/embedding-cap.ts M packages/core/src/embedding-worker-types.ts M packages/core/src/embedding-worker.ts M packages/core/src/embedding.ts M packages/core/src/ort-native.ts A packages/core/test/cgroup-memory.test.ts M packages/core/test/embedding-cap.test.ts M packages/core/test/embedding-pool.test.ts M packages/core/test/embedding-worker-types.test.ts M packages/core/test/ort-native.test.ts M packages/gateway/script/bundle.ts M packages/gateway/script/ort-platform-package.ts M packages/gateway/test/bundle-exports.test.ts M packages/gateway/test/ort-platform-package.test.ts Working copy (@) : tmzmtlss aee4651c fix/embedding-runtime-admission | fix(core): correct embedding runtime selection and admission Parent commit (@-): pxrvwsvv 2cbf4006 main | feat(cch): add seeds for Claude Code ...
=== SCOPED FILE HASHES === 784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 0d74b4c3251f56d7599060c19ef22bdb9b0da5bdc2968c89305769684bc00353 packages/core/src/embedding-worker.ts 4a7102ba0678b21b9608f6f0560b93429238e3fd70b534f829c5e771bd5a5254 packages/core/src/embedding-worker-types.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f packages/gateway/script/bundle.ts d5b67bf3fe2f5b7f1cb7e8c610fbe54031b1cca6602f3d5a2f76228eda121888 packages/gateway/script/ort-platform-package.ts f1f9863e0b60ce22bb4476241d3f9b28f0f9a59ac69d639d44f626042f18e56f packages/gateway/test/bundle-exports.test.ts 71a3be381ef07ac967653e7aa4104a59d11691402a5b645a4d6d1111ee645449 ...
All checks used jj --ignore-working-copy so Jujutsu never snapshotted or mutated the worktree.
@: change tmzmtlsspstnppsrlpmuulsywurmlnqu, commit aee4651c96b009c28f9e79f40f019fd2c7c49a0a@-: change pxrvwsvvkmpoxnsqmrkwrnlqvvkoltwz, commit 2cbf40060c67df229731cf1b9e34d5bf22ec2145SHA-256(jj diff --git -r @): f0b8e99bf067fc02503826cb13843a0baf725f9ae83276de21c6da0ba3c5c1dc@ has no file conflicts. Jujutsu reported an unrelated conflicted bookmark, fix/responses-private-references.Changed paths were identical before and after:
A packages/core/src/cgroup-memory.ts
M packages/core/src/embedding/local.ts
M packages/core/src/embedding/pool.ts
M packages/core/src/embedding-cap.ts
M packages/core/src/embedding-worker-types.ts
M packages/core/src/embedding-worker.ts
M packages/core/src/embedding.ts
M packages/core/src/ort-native.ts
A packages/core/test/cgroup-memory.test.ts
M packages/core/test/embedding-cap.test.ts
M packages/core/test/embedding-pool.test.ts
M packages/core/test/embedding-worker-types.test.ts
M packages/core/test/ort-native.test.ts
M packages/gateway/script/bundle.ts
M packages/gateway/script/ort-platform-package.ts
M packages/gateway/test/bundle-exports.test.ts
M packages/gateway/test/ort-platform-package.test.ts
All nine scoped filesystem hashes matched both their initial values and the bytes recorded in @. Generated workers also remained unchanged:
eb0ccfc5ef503b0351675b9e5d86579f8152fbfae7c1786aa909f3bbb2f93915e02912f98b6bf4c74f539311093ad08fcb3c2e152f86170d580d6dddf7902025embedding-worker.ts:231-240 reduces every exception to err.message, discarding err.code. Yet isNativeOrtLoadError() expects ERR_DLOPEN_FAILED inside that message at embedding-worker-types.ts:226-235. Node puts that value in error.code, not reliably in error.message. ...
The OpenCode server restarted and interrupted this background session. Resume your existing read-only native-runtime correctness review in the same session and workspace. Preserve your prior scope and evidence. Do not use recall or any network service. Do not edit files or mutate Jujutsu/Git state. The parent candidate may have advanced since your original frozen snapshot; first report the exact current Jujutsu change/commit and whether it still matches your prior target. If it differs, do not silently redefine the reviewed candidate: inspect only the exact scope authorized in your prior prompt and state the mismatch as an exact blocker or return your substantive prior-candidate findings if already complete. Return a concise evidence-based PASS/CONCERN/MUST-FIX report with exact file:line references and end exactly MERGE or DO-NOT-MERGE. Never return an empty result or a progress-only/context-warning response.
<skill_content name="jj-guide"> # Skill: jj-guide # jj Guide for AI Agents Jujutsu (jj) is a Git-compatible VCS with mutable commits, automatic snapshotting, no staging area, and first-class conflicts. This skill teaches you how to use it safely from a non-interactive agent environment. If `.jj/` exists in the repo root, this is a jj repo. **Use `jj` commands, not `git`.** In a colocated repo (`.jj/` *and* `.git/`), git tools can read the state, but mutations should go through `jj` so the operation log stays consistent. ## Critical Rules - **NEVER** use interactive flags (`-i`, `--interactive`). TUI prompts hang in agent environments. This applies to `jj split -i`, `jj squash -i`, `jj commit -i`, `jj resolve`, `jj diffedit`, etc. - **ALWAYS** pass `-m "msg"` when describing/committing. Without `-m`, an editor opens and hangs. - **VERIFY** mutations with `jj st` and `jj log` after `squash`, `abandon`, `rebase`, `restore`, `commit`. ...
=== CURRENT JJ STATUS === Working copy changes: A packages/core/src/cgroup-memory.ts M packages/core/src/embedding/local.ts M packages/core/src/embedding/pool.ts M packages/core/src/embedding-cap.ts M packages/core/src/embedding-worker-types.ts M packages/core/src/embedding-worker.ts M packages/core/src/embedding.ts M packages/core/src/ort-native.ts A packages/core/test/cgroup-memory.test.ts M packages/core/test/embedding-cap.test.ts M packages/core/test/embedding-pool-memory.test.ts M packages/core/test/embedding-pool.test.ts M packages/core/test/embedding-wasm-fallback.test.ts M packages/core/test/embedding-worker-stdio.test.ts M packages/core/test/embedding-worker-types.test.ts M packages/core/test/ort-native.test.ts M packages/gateway/script/bundle.ts M packages/gateway/script/ort-platform-package.ts M packages/gateway/test/bundle-exports.test.ts M packages/gateway/test/ort-platform-package.test.ts Working copy (@) : tmzmtlss 1a05f4ab fix/embedding-runtime-admission | fix(core): ...
784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 478726a4f708e3bc0895fdd1b2d87a80b2ed04e988e6907be9037394543b0da6 packages/core/src/embedding-worker.ts 2d39540b20111a965f358c0a73c242de25b8068a9b8cc2e6dacaf543cbfb85ed packages/core/src/embedding-worker-types.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f packages/gateway/script/bundle.ts d5b67bf3fe2f5b7f1cb7e8c610fbe54031b1cca6602f3d5a2f76228eda121888 packages/gateway/script/ort-platform-package.ts 7413531f62be1cf2f05be6bee2aafa524261766e5e1f12277c9a09149ac1bc5f packages/gateway/test/bundle-exports.test.ts 71a3be381ef07ac967653e7aa4104a59d11691402a5b645a4d6d1111ee645449 packages/gateway/test/ort-platform-package.test.ts
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker.ts</path>
<type>file</type>
<content>
200: data: Float32Array;
201: normalize(
202: p: number,
203: dim: number,
204: ): { tolist(): number[][]; data: Float32Array; dims: number[] };
205: slice(...args: unknown[]): {
206: normalize(
207: p: number,
208: dim: number,
209: ): { tolist(): number[][]; data: Float32Array; dims: number[] };
210: };
211: })
212: | null = null;
213: let initPromise: Promise<void> | null = null;
214: let initFailed = false;
215: let initError: string | null = null;
216:
217: /**
218: * Ensure the transformers.js pipeline is loaded. Lazy — first call triggers
219: * the dynamic import + pipeline creation, subsequent calls return immediately.
220: * On failure, marks the worker as permanently broken and posts `init-error`. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/embedding-worker-types.ts</path>
<type>file</type>
<content>
70: /** Human-readable error message. */
71: error: string;
72: }
73:
74: /** Model initialization failed inside the worker. All pending and future
75: * requests should be rejected — the worker is unusable. */
76: export interface InitError {
77: type: "init-error";
78: /** Human-readable error message. */
79: error: string;
80: }
81:
82: /**
83: * The worker's native ONNX Runtime backend could not load the model (an
84: * `isCorruptModelError` parse/deserialize failure) even though the on-disk model
85: * files look structurally intact — the hallmark of a native-runtime
86: * incompatibility rather than a corrupt download. The canonical case is running
87: * the npm bundle under **Bun**: `onnxruntime-node`'s NAPI addon resolves and
88: * loads, but `InferenceSession.create()` fails with "protobuf parsing failed"
89: * (Bun ↔ ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/bundle-exports.test.ts</path>
<type>file</type>
<content>
95: } catch {
96: return 0;
97: }
98: }
99: return Number.isFinite(oldest) ? oldest : 0;
100: }
101:
102: // The bundle is fresh iff both asserted artifacts exist and are strictly newer
103: // than every source the bundle is built from:
104: // - gateway/src + core/src — both inlined into the bundle;
105: // - script/ — the whole build-script dir, since bundle.ts imports siblings
106: // (the ORT plugins, debug-id, import-meta-url); tracking only bundle.ts
107: // would miss a build change made in one of those and falsely report fresh;
108: // - package.json — drives the files/exports/deps assertions.
109: // Dependency upgrades (node_modules / the ORT wasm) are intentionally NOT
110: // tracked here — those arrive via `pnpm install`, whose postinstall rebuilds the
111: // bundle. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/src/ort-native.ts</path>
<type>file</type>
<content>
125: }
126:
127: function matchesRuntime(value: unknown, expected: string): boolean {
128: return Array.isArray(value) && value.length === 1 && value[0] === expected;
129: }
130:
131: function isWithin(root: string, path: string): boolean {
132: const child = relative(root, path);
133: return child === "" || (!child.startsWith("..") && !isAbsolute(child));
134: }
135:
136: function resolveDeclaredPackageDir(
137: fromPath: string,
138: packageName: string,
139: ): string | null {
140: try {
141: const manifest = createRequire(fromPath).resolve(
142: `${packageName}/package.json`,
143: );
144: return realpathSync(dirname(manifest));
145: } catch {
146: return null;
147: }
148: }
149:
150: function validNativeBinding(
151: path: string,
152: packageDir: string,
153: platform: string,
154: ): string | null {
155: let fd: ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/embedding-worker-types.test.ts</path>
<type>file</type>
<content>
72: test("is disjoint from OOM classification for OOM codes", () => {
73: // An OOM numeric code must not be treated as a corrupt model (it would
74: // trigger a pointless re-download instead of the correct fatal handling).
75: const oom = "287180544";
76: expect(isOomError(oom)).toBe(true);
77: expect(isWasmFatalError(oom)).toBe(true);
78: expect(isCorruptModelError(oom)).toBe(false);
79: });
80: });
81:
82: describe("isNativeOrtLoadError", () => {
83: test.each([
84: "Error [ERR_DLOPEN_FAILED]: onnxruntime_binding.node: invalid ELF header",
85: "onnxruntime_binding.node: file too short",
86: "libonnxruntime.so.1: cannot open shared object file",
87: "onnxruntime_binding.node: undefined symbol: OrtGetApiBase",
88: ])("matches a native ONNX Runtime loader failure: %s", (msg) => {
89: ...
=== FINAL CURRENT @ === change=tmzmtlsspstnppsrlpmuulsywurmlnqu commit=1a05f4ab33e9ef541ddcb5a9bf62be6b60d85610 parents=pxrvwsvvkmpoxnsqmrkwrnlqvvkoltwz:2cbf40060c67df229731cf1b9e34d5bf22ec2145 === FINAL CONFLICTS === === FINAL DIFF SHA256 === e0b19388dc7503fe3953af260d915172af8307413c1038ec97024142ab5c5670 - === FINAL SCOPED HASHES === 784f55f936ab766188d43382d1aee06fcc3fd45c03aee9baa762fd6424376f36 packages/core/src/ort-native.ts 478726a4f708e3bc0895fdd1b2d87a80b2ed04e988e6907be9037394543b0da6 packages/core/src/embedding-worker.ts 2d39540b20111a965f358c0a73c242de25b8068a9b8cc2e6dacaf543cbfb85ed packages/core/src/embedding-worker-types.ts 774575a632e380ba5d06aa43ad8a283ad1629252d8beba8324a30dc32236a1bf packages/core/test/ort-native.test.ts 0d09dc266eb2d11b3738cec05dab7ee993826864e06772fd9d38153f816863d0 packages/core/test/embedding-worker-types.test.ts 02fd0231a4374de3e859c9168a65608e1227409de5aeea4b9d4ee4ffb420f50f ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/gateway/test/bundle-exports.test.ts</path> <type>file</type> <content> 1: /** 2: * Smoke test for the npm bundle artifacts. 3: * 4: * Verifies that: 5: * - Every file referenced by package.json `files` and `exports` exists 6: * - The CJS Node bundle uses node:sqlite (not bun:sqlite) 7: * - @loreai/core is inlined (not externalized) in the Bun bundle (#1027) 8: * 9: * These assert on the built `dist/` artifacts. A bundle build runs immediately 10: * before vitest under `pnpm test` (root `pretest` hook) and `pnpm run 11: * test:coverage` (its own `bundle &&` chain, used by CI) — but NOT for 12: * `vitest --watch`, IDE test runners, or a direct `vitest run`. After pulling a 13: * change to the bundle's inputs (e.g. ...
<path>/home/byk/Code/opencode-lore-embedding-runtime/packages/core/test/ort-native.test.ts</path>
<type>file</type>
<content>
25: platform: "linux",
26: arch: "x64",
27: glibcVersionRuntime: "2.39",
28: };
29:
30: function writeJson(path: string, value: unknown): void {
31: mkdirSync(dirname(path), { recursive: true });
32: writeFileSync(path, JSON.stringify(value));
33: }
34:
35: function writeNativeFixture(path: string, platform = "linux"): void {
36: const magic =
37: platform === "linux"
38: ? [0x7f, 0x45, 0x4c, 0x46]
39: : platform === "darwin"
40: ? [0xcf, 0xfa, 0xed, 0xfe]
41: : [0x4d, 0x5a, 0x90, 0x00];
42: mkdirSync(dirname(path), { recursive: true });
43: writeFileSync(path, Buffer.from(magic));
44: }
45:
46: interface ResolverFixture {
47: root: string;
48: gatewayDir: string;
49: workerPath: string;
50: workspaceDir: string;
51: workspaceBinding: string;
52: publishedName: string;
53: publishedDir: ...
The current candidate does not match the prior frozen target:
tmzmtlsspstnppsrlpmuulsywurmlnquaee4651c96b009c28f9e79f40f019fd2c7c49a0a1a05f4ab33e9ef541ddcb5a9bf62be6b60d85610f0b8e99bf067fc02503826cb13843a0baf725f9ae83276de21c6da0ba3c5c1dce0b19388dc7503fe3953af260d915172af8307413c1038ec97024142ab5c56702cbf40060c67df229731cf1b9e34d5bf22ec2145@ has no file conflicts.Three reviewed files changed bytes: embedding-worker.ts, embedding-worker-types.ts, and bundle-exports.test.ts. Additional tests outside the prior scope also changed. This prevents carrying the prior frozen-candidate validation forward. Current identity, diff, and scoped hashes remained stable throughout this resumed read-only pass.
embedding-worker.ts:231-233 reduces the exception to err.message, discarding Node’s err.code. isNativeOrtLoadError() accepts only a string at embedding-worker-types.ts:224-234.
It still misses common forms such as wrong ELF class, missing GLIBC_*, Windows %1 is not a valid Win32 application, and versioned Darwin libraries. Tests embed ERR_DLOPEN_FAILED directly in text (embedding-worker-types.test.ts:82-100) or throw the specially matched file too short message (bundle-exports.test.ts:225-229), so they do not exercise a real coded loader error.
ort-native.ts:150-172 accepts ELF or Mach-O magic, or two MZ bytes. It never validates architecture, ELF class, Mach-O CPU, PE signature/machine, or minimum size. ort-native.ts:271-285 accepts any sole napi-v<N> directory without checking runtime compatibility.
The successful fixture is only four bytes (ort-native.test.ts:35-43), allowing tests to pass without a ...
Date: Sep 16, 2026 * 🟡 (22:56) Assistant delivered the required read-only native-runtime correctness report and concluded `DO-NOT-MERGE`. * 🟡 (22:56) Assistant reported a candidate mismatch: change ID remained `tmzmtlsspstnppsrlpmuulsywurmlnqu`, but the commit advanced from `aee4651c96b009c28f9e79f40f019fd2c7c49a0a` to `1a05f4ab33e9ef541ddcb5a9bf62be6b60d85610`; parent remained `2cbf40060c67df2…
Date: Sep 16, 2026 * 🔴 [requested-review] (22:45) User asked to resume the interrupted read-only native-runtime correctness review in the same session and workspace, preserving the prior scope and evidence. * 🔴 [enforced-workflow] (22:45) User required no recall, network service, file edits, or Jujutsu/Git mutations during the resumed review. * 🔴 (22:45) User required first reporting the exact…
Date: Sep 16, 2026 * 🟡 (10:10) `packages/gateway/test/ort-platform-package.test.ts` binds runtime package resolution to generated package metadata: `ORT_NATIVE_TARGETS` and `ORT_NPM_PLATFORMS.map((p) => p.target)` must equal, in order, `linux-x64`, `linux-arm64`, `darwin-arm64`, `win32-x64`, `win32-arm64`; each target must equal `${p.os}-${p.cpu}` and `ortPlatformTarget(p.os, p.cpu)`; package na…
Date: Sep 16, 2026 * 🔴 (10:08) User established that the bundle test builds the bundle on demand in `beforeAll`, so it always runs against a bundle built for the current checkout. * 🔴 (10:08) User established that bundle assertions never run against an artifact that predates source; freshness checks compare source modification times with the oldest required artifact, while dependency upgrades i…
Date: Sep 16, 2026 * 🔴 (10:07) User established that `resolveNativeOrtBindingPath` returns `null` and never throws when native packages are absent. * 🔴 (10:07) User established that native ONNX Runtime binding resolution never resolves an undeclared ancestor workspace package. * 🔴 (10:07) User established that `nativeIntraOpThreads` defaults never throw and return either a valid cap or no over…
Date: Sep 16, 2026 * 🔴 (10:06) User stated the cache-directory resolution/purge path in `packages/core/src/embedding-worker.ts` is never called for vendored binaries; it resolves downloaded models to `<cacheDir>/<modelId>/`. * 🔴 (10:06) User stated shorter texts can never exceed the model limit because the conservative estimate is approximately `~1 char/token`; token counting excludes `[CLS]` a…
Date: Sep 16, 2026 * 🔴 [requested-review] (10:05) User requested immediate completion of a read-only review of the current files in `/home/byk/Code/opencode-lore-embedding-runtime`, inspecting only: `packages/core/src/ort-native.ts`; native-selection/fallback code in `packages/core/src/embedding-worker.ts` and `packages/core/src/embedding-worker-types.ts`; `packages/core/test/ort-native.test.ts`…
Date: Sep 16, 2026 * 🔴 (10:03) User showed a new `isNativeOrtLoadError(msg: string)` detector in both `packages/core/src/embedding-worker-types.ts` and `packages/core/src/embedding-worker.ts`. It first identifies native ONNX Runtime artifacts using `onnxruntime_binding.node`, `libonnxruntime[_providers_*].so`/`.dylib`/`.dll`, or `OrtGetApiBase`, then recognizes loader failures including `ERR_DLO…
Date: Sep 16, 2026 * 🔴 (10:02) User showed `packages/gateway/script/ort-platform-package.ts`, which generates per-platform npm packages containing the native `onnxruntime-node` addon and shared libraries, following the `@esbuild/<os>-<arch>` distribution model. * 🔴 (10:02) User showed the native-ORT packaging decision: direct `onnxruntime-node` dependency was rejected because its binary arrives…
Date: Sep 16, 2026 * 🔴 (10:01) User stated `isTransformersInferenceDumpLine` must match only the leading string of a Transformers inference-error dump line; error text supplied separately as the second `console.error` argument must never match. * 🔴 (10:01) User stated vendored model data is read-only and shipped inside the binary, so it must never be deleted or redownloaded. * 🔴 (10:01) User s…
Date: Sep 16, 2026 * 🔴 (10:01) User stated the cache-model path resolver in `packages/core/src/embedding-worker.ts` resolves to `<cacheDir>/<modelId>/` and is “Never called for vendored binaries.” * 🔴 (10:01) User stated the embedding input-length precheck uses an approximately `~1 char/token` conservative bound so shorter texts can never exceed the limit; `[CLS]` and `[SEP]` special tokens are…
Date: Sep 16, 2026 * 🔴 (10:00) User showed working copy `tmzmtlss` at commit `aee4651c96b009c28f9e79f40f019fd2c7c49a0a` (`fix/embedding-runtime-admission`, message `fix(core): correct embedding runtime selection and admission`) based on `2cbf40060c67df229731cf1b9e34d5bf22ec2145` (`main`, `feat(cch): add seeds for Claude Code up to 2.1.272 (#1780)`). * 🔴 (10:00) User showed embedding-runtime cha…
Date: Sep 16, 2026 * 🔴 [enforced-test-isolation] (09:59) User stated tests use a temporary SQLite database through `packages/core/test/setup.ts` and never the production DB. * 🔴 [enforced-release-workflow] (09:59) User directed never to manually bump versions or edit `CHANGELOG.md`; Sentry Craft handles both automatically. * 🔴 (09:59) User stated Lore is a three-tier memory architecture for AI…
Date: Sep 16, 2026 * 🔴 (09:59) User stated that `jj` never fails on conflict; after `rebase`, `new`, or `squash`, conflicts are recorded in the resulting commit and must be checked with `jj st`, resolved by manually editing files, and confirmed cleared with another `jj st`. * 🔴 [enforced-workflow] (09:59) User directed that repositories containing `.jj/` must use `jj` rather than `git` for muta…
Date: Sep 16, 2026 * 🔴 [requested-security-audit] (09:57) User requested a read-only adversarial correctness/security audit of the CURRENT working copy at `/home/byk/Code/opencode-lore-embedding-runtime`, limited to the native ORT resolver/load/fallback slice. * 🟡 (09:57) Audit scope files: `packages/core/src/ort-native.ts`; `packages/core/src/embedding-worker-types.ts`; native selection/load f…