Dashboard › opencode-lore › Distillation
9fdc6fd9-5282-43cc-b8c3-30fdbd45c588["lore_tm_v1_Gd1ACvnECcFD3cfVIYd_Byew2dRAsQfUOFwJ5I6WK8I","lore_tm_v1_WU9q9Qp3nxCWfHj6uhOTz8HTc89q0N67aDHUFT8kf7E","lore_tm_v1_qvY7Ij-gbPNhPdslRQyZJ2QcH_AqzLw4KxYriRTJg0s","lore_tm_v1__R2GJT34whEamACFGBLTr8GjUMG0P1BYNOpu3hG1sg0","lore_tm_v1_Yd3cN5EJENhlfa3So_J6it04GCYLGlwPLnYYnMjNf6U","lore_tm_v1_PbwQmyl1ruMDonluSdSQi72_jOS1Nkkw89l7GEabBNU","lore_tm_v1_D9b3EcP6Gp6ZM1YbXzWoWDlDsNdMV7OmBKoRlgJs_Yc"]
Date: Sep 16, 2026
/home/byk/Code/opencode-lore-responses-reference-v2 is a colocated Jujutsu repository containing both .jj/ and .git/; mutations must use jj, not git, so the operation log remains consistent.rebase, new, and squash record conflicts in the resulting commit rather than aborting. Afterward, run jj st, resolve files manually, and verify the conflict clears; do not use interactive jj resolve.-i, --interactive); always pass -m "msg" when describing or committing; verify squash, abandon, rebase, restore, and commit mutations with jj st and jj log; prefer stable change IDs over hexadecimal commit IDs; never rebase or describe immutable commits.jj undo, jj op log, jj op restore <op-id>, and jj workspace update-stale; the working copy is commit @, its parent is @-, edits auto-amend @, and there is no staging area..craft.yml, .git/, .github/, .jj/, .lore.md, AGENTS.md, CHANGELOG.md, codecov.yml, package.json, packages/, patches/, quality/, scripts/, supabase/, vitest.config.ts, vitest.evals.config.ts, and vitest.mutation.config.ts.~/.local/share/lore/lore.db.@loreai/core at packages/core/ (shared memory engine), @loreai/gateway at packages/gateway/ (transparent LLM proxy and lore CLI), @loreai/opencode at packages/opencode/ (OpenCode lifecycle adapter), and @loreai/pi at packages/pi/ (Pi coding-agent extension).packages/core/src/temporal.ts; store() writes converted message text to temporal_messages with FTS5 indexing, uses a distilled=0/1 flag, and separates chunks with \x1f.packages/core/src/distillation.ts; run() performs resetOrphans() β fetch undistilled messages β detectSegments() β distillSegment(), with a maximum of 16K tokens per segment. More than 20 generation-0 distillations triggers metaDistill(); generation-0 segments remain recall-searchable but are excluded from the in-context prefix.packages/core/src/gradient.ts; transform() uses 4 layers: Layer 0 full passthrough, Layer 1 distilled prefix plus compressed raw content, Layer 2 aggressive tool-output stripping, and Layer 3 emergency compression.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-based pattern extraction in packages/core/src/pattern-extract.ts, 3. .lore.md import in packages/core/src/agents-file.ts, and 4. curator.ts consolidate() when entry count exceeds maxEntries of 25.packages/core/test/setup.tsβnever the production DB.pnpm install, pnpm test, pnpm run typecheck, pnpm run lint, pnpm run lint:fix, pnpm run format, pnpm run format:check, and pnpm run build.quality/REVIEW.md; the review process separates correctness review from maintainability review and uses a two-reviewer rule.Γ10), and review evidence must end with an explicit overall MERGE or DO-NOT-MERGE, not an unstructured βLGTM.βCHANGELOG.md; Craft handles both automatically.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 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. adding the accepted label triggers npm OIDC publishing and a GitHub Release with binaries and patches.package.json identifies lore-monorepo as private ESM software under FSL-1.1-Apache-2.0; it pins pnpm@10.28.0 and Volta versions Node 24.16.0 and pnpm 10.28.0."test": "vitest run", "pretest": "pnpm --filter @loreai/gateway run bundle", "test:coverage": "pnpm --filter @loreai/gateway run bundle && vitest run --coverage", "lint": "oxlint --type-aware", "format": "oxfmt", "evals": "vitest run --config vitest.evals.config.ts", and "mutation": "stryker run".packages/gateway/test/openai-responses-recall-aware-stream.test.ts, packages/gateway/test/openai-responses.test.ts, and packages/gateway/test/openai-responses-stream.test.ts.zkttmwun, commit ID a51d94f1, description fix(responses): close reference lifecycle gaps; its parent is change ID wywumkpt, commit ID 8063355c, description fix(responses): keep item references private.packages/gateway/src/pipeline.ts and packages/gateway/test/openai-responses-recall-aware-stream.test.ts.fix/responses-private-references-v2 points at the parent commit, while bookmark fix/responses-private-references is conflicted; jj advises inspecting with jj bookmark list and resolving via jj bookmark set <name> -r <rev>.