Dashboard › opencode-lore › Distillation
f577aa1c-c440-4097-96ca-8ec36f5748d4["lore_tm_v1_E0AAgAaysW_blT8NU5cTSCBMIAYG8NalJ1PXqiiW_Is","lore_tm_v1_jMr5hXK60ap053KAiRs3XAYtqcJYbuzETcNq8IlBmWY","lore_tm_v1_1Tb9LmEML4d32yqjWY21gqu95gnD46wBVl-9zAeedeU","lore_tm_v1_KlQdcAyE8gFDpK-ckq98Frn9yjrbp-ToJ3gcutID3no","lore_tm_v1_ON6cJJS6DlCLm_rKSn5pnxRsQVK8hQqtMbDG17_aYUw","lore_tm_v1_DNBJx_trjqnntiHlIa_fXIV2ZXYChiG4Fh1jcxxJlM0"]
Date: Sep 16, 2026
/home/byk/Code/opencode-lore-codex-reasoning: exact child change wlpsntppxyyxpvwnnywkpvkskzvtktvp, commit b588d81bfd33e0b30e5040c694c893b3a116e363; parent rtwyxzrr, commit b9feb17a1feb58a72a080cca0e493130427c506f; expected diff SHA 8553e8714cf769789ec17e29f4ae2d3ade02d5cbd8662e1ef33981871dcd15a7; expected changes exactly pipeline.ts and the recall-aware test.CI=1 NO_COLOR=1 SENTRY_AUTH_TOKEN= SENTRY_ENABLED=0 pnpm test -- --printConsoleTrace with sufficient timeout.jj never fails on conflict: after rebase/new/squash, conflicts are recorded in the resulting commit and must be detected with jj st, resolved manually without interactive jj resolve, and confirmed cleared via jj st..jj/ exists; mutations must use jj, not git, even though the repository is colocated with both .jj/ and .git/.-m "msg" when describing/committing; verify mutations using jj st and jj log; prefer stable letter-based change IDs over hexadecimal commit IDs; never rebase or describe an immutable commit; use jj undo or jj op restore <op-id> for recovery./home/byk/Code/opencode-lore-codex-reasoning contained 28 entries, including .git, .jj/, .lore.md, AGENTS.md, CHANGELOG.md, node_modules/, package.json, packages/, patches/, quality/, scripts/, supabase/, vitest.config.ts, vitest.evals.config.ts, and vitest.mutation.config.ts.AGENTS.md requires every non-trivial PR to receive an adversarial correctness review before merge, following quality/REVIEW.md.>=22.5; it implements a three-tier AI-agent memory architecture backed by SQLite in WAL mode with FTS5, normally stored at ~/.local/share/lore/lore.db.@loreai/core at packages/core/ for the shared memory engine; @loreai/gateway at packages/gateway/ for the transparent LLM proxy and lore CLI; @loreai/opencode at packages/opencode/ for OpenCode lifecycle hooks; and @loreai/pi at packages/pi/ for the Pi extension adapter.packages/core/src/temporal.ts; 2. distillation in packages/core/src/distillation.ts, with segments capped at 16K tokens and meta-distillation after gen-0 count exceeds 20; 3. the four-layer gradient context manager in packages/core/src/gradient.ts.packages/core/src/ltm.ts use categories decision, pattern, preference, architecture, and gotcha; fields are id (UUIDv7), project_id, category, title, content (maximum 1200 characters), confidence (0.0β1.0), and cross_project.packages/core/src/curator.ts; 2. regex pattern extraction in packages/core/src/pattern-extract.ts; 3. .lore.md import in packages/core/src/agents-file.ts; 4. curator.ts consolidate() when entry count exceeds maxEntries of 25.packages/core/src/ltm.ts APIs are create(), update(), remove(), forSession(), search(), and searchScored(); search uses FTS5 BM25 with a LIKE fallback..lore.md entries use <!-- lore:UUID --> markers and are sorted alphabetically by title within category. exportLoreFile() skips writes when the content hash is unchanged; importLoreFile() updates a known changed UUID or creates an unknown UUID; shouldImportLoreFile() checks mtime and then content hash.packages/core/test/setup.ts and never the production DB.packages/gateway/script/build.ts, which produces a CJS bundle; script/bundle.ts creates a standalone binary. Core build code is packages/core/script/build.ts, producing Node.js-compatible CJS output.gh workflow run release.yml -f version=auto for conventional-commit-derived semver or gh workflow run release.yml -f version=0.23.0 for an explicit version.scripts/bump-version.sh; 2. generate changelog from conventional commits; 3. create and push release/X.Y.Z; 4. CI tests and builds npm tarballs, standalone binaries, and delta patches; 5. Craft opens a publish issue; 6. labeling it accepted triggers npm OIDC publishing and a GitHub Release with binaries and patches.MERGE or DO-NOT-MERGE; an unstructured βLGTMβ is not acceptable.package.json identifies package lore-monorepo, uses "type": "module", package manager pnpm@10.28.0, Volta Node 24.16.0, Volta pnpm 10.28.0, and workspaces packages/*."test": "vitest run" and "pretest": "pnpm --filter @loreai/gateway run bundle"; coverage uses pnpm --filter @loreai/gateway run bundle && vitest run --coverage.pnpm -r run typecheck, pnpm -r run build, oxlint --type-aware, oxlint --type-aware --fix, oxfmt, oxfmt --check, vitest run --config vitest.evals.config.ts, and stryker run.esbuild, onnxruntime-node, and sharp; patches @sentry/node@10.56.0 via patches/@sentry__node@10.56.0.patch; and runs pnpm --filter @loreai/gateway run build on postinstall.