Dashboard › opencode-lore › Distillation
c71e9f52-4caa-416e-afc4-1d013d255c14["lore_tm_v1_Eu0whWiMZgYPWGaw5QHlYkL_FsypWqSZftwlJmN7H4o","lore_tm_v1_Ohtod00VblRbncIXs9OOBEtL7Z6BWyqhdQGaH--nFOQ","lore_tm_v1_zVKunCRRKD3b7l8mW4EyOfKB0_9MeG-CBtzO7TaDXfE","lore_tm_v1_mETNx1MbxEY2mDwSe2UHJLfc2myLV82gB0mq6cG_qi8","lore_tm_v1_gZ045oa8qDgLX_Je3pjUplBld4akNHY-b2TVUmxYl8Q","lore_tm_v1_8qEmk1xH5q_bysB7ZQXQATJ5roapiUSSsTf7BfdR1MU","lore_tm_v1_p_jHlH2zCtLMekYAEWa16LP8HmYa8WxVpqFK-Fh-B0E","lore_tm_v1_Kn9f4zTmvjF4mtdkiPerWoWuADXu_JGPCoYIFSPf4HQ","lore_tm_v1_ymRe6sF6daNPsQHuy_z7z-yMRf2ugw2EzwKadZ82fl0","lore_tm_v1_9C1yfRaBLNpEs3bQr6dlZUvb1PMvfY3z8seeG1gY6Fs","lore_tm_v1_H1LxP7lsGVRJLBm6T89TvVvgYzOGboq67XmVR-emB9A","lore_tm_v1_2CELKmizjTR6KDqEcbAyuA56ihkuJsyOZKNQnOPC29k","lore_tm_v1_8vYA_TvKaIxjWRJMiTvBJXdxk-fgNQ2_BxtBt94Ck9Y","lore_tm_v1_vnS9vbBtByVoSsEGGu50wIsGz9tfK5nr4vDXFxD5304","lore_tm_v1_6i0Zu5gYk6vqejgqoFPsy7e6mzQq6K7n6ThVU5DsidA","lore_tm_v1_pZe9p2x4KZJt5aDX6-Rdq4LLP9Vk3-jTv4cx9hrDADo","lore_tm_v1_P4H97Grzmg1j02HdaO1Gsn7XJT2dNpmz6SjWkq-MFpc","lore_tm_v1_Ko5HmAeGPQbXkcOu6BvU1tK-3iugU3xLVd3aSINCn88","lore_tm_v1_3ZsHds8hFcJnTdtMu_5vgQfbqPhXS2tKOl0t03QOXyc"]
Date: Sep 17, 2026
AGENTS.md requires every non-trivial PR to receive an adversarial correctness review before merge, following quality/REVIEW.md.pnpm workspaces, SQLite WAL mode, and FTS5, with the normal database stored at ~/.local/share/lore/lore.db.@loreai/core at packages/core/, @loreai/gateway at packages/gateway/, @loreai/opencode at packages/opencode/, and @loreai/pi at packages/pi/; gateway bundles core into CJS via esbuild, while opencode ships raw TypeScript.packages/core/test/setup.ts β βnever the production DB.βgh workflow run release.yml -f version=auto or an explicit version such as gh workflow run release.yml -f version=0.23.0.scripts/bump-version.sh updates all package.json versions; 2. changelog is generated from conventional commits; 3. a release/X.Y.Z branch is created and pushed; 4. CI runs tests and builds npm tarballs, standalone binaries, and delta patches; 5. Craft opens a βpublishβ issue; 6. labeling it accepted triggers npm publication through OIDC trusted publishing and a GitHub Release with binaries and patches.package.json identifies lore-monorepo, uses pnpm@10.28.0, Volta Node 24.16.0, and Volta pnpm 10.28.0."test": "vitest run" and "pretest": "pnpm --filter @loreai/gateway run bundle"; therefore pnpm test bundles the gateway before running the full Vitest suite. Other scripts include pnpm -r run typecheck, pnpm -r run build, oxlint --type-aware, oxfmt, vitest run --coverage, and stryker run.packages/gateway/package.json identifies @loreai/gateway version 0.40.0; its scripts are typecheck: tsc --noEmit, build: tsx script/build.ts, bundle: tsx script/bundle.ts, build:binary: tsx script/build.ts --binary, build:binary:sea: tsx script/build-binary-sea.ts, and start: tsx src/index.ts.files are dist/bin.cjs, dist/embedding-worker.cjs, dist/embedding-worker.js, dist/index.bun.js, dist/index.cjs, dist/index.d.cts, dist/ort-wasm-simd-threaded.mjs, dist/ort-wasm-simd-threaded.wasm, dist/vector-worker.cjs, and dist/vector-worker.js; package engine requirement is Node.js >=22.15.jj, not Git, for mutations when .jj/ exists; interactive flags such as -i/--interactive and interactive commands such as jj resolve must never be used in the agent environment, and descriptions/commits must receive -m "msg".jj st and jj log, prefers stable letter-based change IDs over hexadecimal commit IDs, and prohibits rebasing or describing immutable commits such as tracked main.rebase, new, or squash can record conflicts in the resulting commit, so jj st must be run afterward and conflicts resolved by editing files rather than using interactive jj resolve.pnpm test runs the gateway bundle pretest followed by the full Vitest suite, with packages/core/test/setup.ts providing temporary SQLite isolation; assistant then began recording immutable Jujutsu revision, ancestry, conflicts, changed paths, diff hash, and source hashes before tests.@ change ID muqyuuym, commit 60d399b5, empty and undescribed; parent @- was change ID kwmswwmt, commit 6d9f8d6a, bookmark fix/responses-hidden-output*, description fix(responses): sanitize projected output.muqyuuymnqowvvlummtrsvzouxtvxoks / 60d399b59adf5fe372207c43efbd0aceca6c9f41, parent kwmswwmtzlnxuvpkqymrwrxttlwowsys / 6d9f8d6a8a1953c655061bd8e37b33c91788d498, and upstream/base commit shown as pxrvwsvvkmpoxnsqmrkwrnlqvvkoltwz / 2cbf40060c67df229731cf1b9e34d5bf22ec2145, description feat(cch): add seeds for Claude Code up to 2.1.272 (#1780).fix/responses-private-references has conflicts; the working-copy commit and candidate ancestry commits themselves were reported with conflict=false.kwmswwmt / 6d9f8d6a8a1953c655061bd8e37b33c91788d498, fix(responses): sanitize projected output; 2. lnvrxqoq / f30236708bc928ee2e12739d1de7a7d21871c7d2, fix(responses): complete hidden-output state; 3. zlsmzknt / a3fa555bdcabb376aa33278bdb76007269f1940a, fix(responses): harden hidden-output projection; 4. ozrmvotw / 583020fad43e1481470aac2588251b8636d16251, fix(responses): stabilize sparse principal projection; 5. unznwpyl / ab979df5cddfec3952680e423e39564664e881fe, fix(responses): project hidden output consistently; 6. pxrvwsvv / 2cbf40060c67df229731cf1b9e34d5bf22ec2145, feat(cch): add seeds for Claude Code up to 2.1.272 (#1780). Every listed commit had conflict=false.packages/gateway/src/pipeline.ts and packages/gateway/test/openai-responses-recall-aware-stream.test.ts.packages/gateway/src/pipeline.ts had 1,074 displayed changed lines and packages/gateway/test/openai-responses-recall-aware-stream.test.ts had 1,028 displayed changed lines.c447298696afdce49d888cc6c8e107cdf2aac3a973d5adfe9e2578d25bcaaa95.packages/gateway/src/pipeline.ts = c39782a6d2751747ab68b005c6036d934af0bf2807396dc5d29df5cde965d939; packages/gateway/test/openai-responses-recall-aware-stream.test.ts = d3cd573fb7afb72de805317cb2c9da529ee2c935112df7ad266286da57ea7828; packages/core/test/setup.ts = 71e31dcd221a2a13b9ff7ac22b4958b3ae802134f95adc41d72f1191a2b3150b; packages/gateway/dist/index.cjs = 9489ca4f2fbc91906eaea4520a63f607ecce50a1324feeef783b97855f5b08dd.packages/core/test/setup.ts creates one isolated test-run directory with mkdtempSync(join(tmpdir(), "lore-test-")), sets process.env.LORE_DB_PATH = join(tmp, "test.db"), closes the database in afterAll, and removes the temporary directory using rmSync(tmp, { recursive: true, force: true }).packages/core/test/setup.ts blocks live requests specifically to https://models.dev/api.json by replacing globalThis.fetch with a guard that returns canned HTTP 200 JSON for that URL and delegates all other requests to the original fetch.claude-opus-4-6 with costs input 5/output 25/cache_read 0.5 and limits context 1,000,000/output 128,000; claude-sonnet-4-20250514 with costs 3/15/0.3 and limits 1,000,000/64,000; claude-haiku-4-5 with costs 1/5/0.1 and limits 200,000/64,000; and OpenAI gpt-5.4-mini with costs 0.75/4.5/0.19 and limits 400,000/100,000.silenceStderr(false) after every test because Pi/OpenCode force-active plugin tests may silence stderr; the intended invariant is that silenced state βnever crosses a test boundary.βinvalidateProjectIdCache() after every test because the full run shares one temporary database and one db() instance; this prevents cached path-to-ID mappings created by one test from being served to another.vitest.mutation.config.ts, vitest.evals.config.ts, and vitest.config.ts.