Dashboard › opencode-lore › Distillation
96c7dd16-77dc-4653-844e-c4e34b14c2b3["lore_tm_v1_q8rvXvrYbhAvYYpsSXig14RReIe33s7ad1s9NgODpCc","lore_tm_v1_yheHD-Ft_oZBS2Xu7elbK8hTQl6naqEOKv9bT2PqCww","lore_tm_v1_HQD3hR9I5855pDL5wA21RWmueoTFPdOtal8Dpt7W8o4","lore_tm_v1_RHrn6VZxj_3kdrPhGVz7z8hO8lE1XNNhf98z0zyJ6aA","lore_tm_v1_LtIsb5ePfQrzr0HvhiuHeCWO8VWg-It1elk85yP1wk4","lore_tm_v1_tz3qbKHCNgGT1YpCUJ5NAfUajLm-fi-HpfLilXm_mwQ","lore_tm_v1_cSOvi0twqO1_3a5RPBOMeIyAi5RV7n38M3whU5Op1x4"]
Date: Sep 17, 2026
pnpm workspaces, Node.js >=22.5, SQLite in WAL mode with FTS5, and production data stored at ~/.local/share/lore/lore.db; root tooling pins pnpm@10.28.0 and Volta pins Node 24.16.0 plus pnpm 10.28.0.@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 adapter), and @loreai/pi at packages/pi/ (Pi adapter). @loreai/core version is 0.40.0.packages/core/src/temporal.ts; Tier 2 distillation in packages/core/src/distillation.ts, with at most 16K tokens per segment and meta-distillation when gen-0 count exceeds 20; Tier 3 gradient context management in packages/core/src/gradient.ts, using four layers from full passthrough through 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. Creation paths are LLM curator, regex pattern extraction, .lore.md file import, and consolidation when entry count exceeds maxEntries (25).packages/core/test/setup.ts, never the production DB.CHANGELOG.md, because Craft handles both automatically. Releases are triggered with 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. conventional commits generate the changelog; 3. a release/X.Y.Z branch is created and pushed; 4. CI tests and builds npm tarballs, standalone binaries, and delta patches; 5. Craft opens a publish issue and the Publish workflow runs after it receives the accepted label; 6. publishing uses npm OIDC trusted publishing and creates a GitHub Release with binaries and patches. .craft.yml defines four npm workspace targets, the legacy opencode-lore alias, and the GitHub Release target.pnpm test (Vitest), pnpm run typecheck, pnpm run lint (oxlint --type-aware), pnpm run lint:fix, pnpm run format (oxfmt), pnpm run format:check, pnpm run build, pnpm run test:coverage, pnpm run evals, and pnpm run mutation.packages/core/src/cgroup-memory.ts resolves Linux cgroup memory files dynamically from /proc/self/cgroup and /proc/self/mountinfo, decoding procfs octal escapes, rejecting non-absolute paths, NUL bytes, and .. path components, and preferring an explicit cgroup v1 memory controller over a unified cgroup v2 membership on hybrid hosts.readLinuxCgroupMemoryHeadroomBytes() computes cgroup v2 headroom using memory.current against both memory.high and memory.max, computes cgroup v1 headroom using memory.usage_in_bytes against memory.limit_in_bytes, walks from the process cgroup directory toward the mount point, and takes the minimum finite headroom across boundaries.undefined, with a narrow exception allowing the unresource-controlled cgroup v2 root to omit memory.current, memory.high, and memory.max.SYNCED_TABLES via packages/core/test/sync-registry-contract.test.ts; MIGRATIONS via the db.test.ts schema-version assertion plus migration-specific tests; and AGENTS via agents.test.ts, validating name, displayName, binary, and detect() with binary as a constant placeholder string.SYNCED_TABLES; per-operation sync invariants in packages/core/src/sync-data.ts through assertSyncInvariants; and sequence properties in packages/gateway/test/sync.property.test.ts covering invariants after every operation, prune-floor progress, eventual convergence, no ping-pong, and currentTier correctness.log.registerSink({ withDbSpan }) because the tracing Proxy shadows direct db().query monkeypatches.pnpm test, pnpm run typecheck, pnpm run lint, and pnpm run format:check; inspect exit codes because a blank output tail may conceal lint or format failures; run property tests Γ10; hash-verify that the working tree ends unmodified; and report per-point PASS, FAIL, CONCERN, or MUST-FIX verdicts with file:line evidence plus an overall MERGE or DO-NOT-MERGE verdict. Unstructured βLGTMβ is not acceptable.