Dashboard › opencode-lore › Distillation
4aaa29ea-5a68-4cec-9504-3b2968f699a3["lore_tm_v1_bkyqx5YpTmT79TSfR9BujG9i86pLgE3hDVxwF7CtcYQ","lore_tm_v1_ltqs0YuUqHCdG_yGgzDfPrQZd2GUvWpoy8Bt7sL9NNM","lore_tm_v1_GqoeIkQxNBhMx-df2tmA61xA596E8l8NxCmAPIvCW-c","lore_tm_v1_4mhvTXhn4GMnrO7PgRQPZnqyVDGVbj3IwZHz6W3yvf4","lore_tm_v1_C0EoX4OsadcbFm2fae2lJL2F1W9IE4-sESrHjF7Wz7I","lore_tm_v1_McYB885AqhiVj2uKSQ4v06HtJn2dK8AAMhg1mcZPB_s"]
Date: Sep 16, 2026
jj never fails on conflict; rebase/new/squash records conflicts in the resulting commit, after which jj st must be checked and files resolved manually rather than with interactive jj resolve.jj rather than git for mutations when .jj/ exists; /home/byk/Code/opencode-lore-embedding-runtime is a colocated repository containing both .jj/ and .git/.-m "msg" when describing/committing; verify mutations with jj st and jj log; prefer stable letter-based change IDs over hexadecimal commit IDs; never rebase or describe immutable commits; use jj undo or jj op restore <op-id> for recovery.pnpm workspace monorepo; root package.json pins Volta Node 24.16.0, pnpm 10.28.0, and packageManager pnpm@10.28.0.packages/core/test/setup.ts, never the production database at ~/.local/share/lore/lore.db.CHANGELOG.md.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 tests and builds npm tarballs, standalone binaries, and delta patches, 5. Craft opens a publish issue that triggers publishing when labeled accepted, 6. npm packages are published through OIDC and a GitHub Release receives binaries and patches.gh workflow run release.yml -f version=auto for conventional-commit-determined semver or gh workflow run release.yml -f version=0.23.0 for an explicit version.NOT EXISTS, latest <> 'upsert', and content matching; each skip branch needs a test that makes it skip something it should not.pnpm test, pnpm run typecheck, pnpm run lint, and pnpm run format:check; inspect exit codes because a blank tail can conceal lint/format failures; run property tests ×10; hash-verify that the working tree remains unmodified; and report per-point PASS/FAIL/CONCERN/MUST-FIX findings with file:line evidence plus an overall MERGE/DO-NOT-MERGE verdict.SYNCED_TABLES must be covered by packages/core/test/sync-registry-contract.test.ts; MIGRATIONS must have a db.test.ts schema-version assertion using toBe(MIGRATIONS.length) plus migration-specific behavior tests; AGENTS must be covered by agents.test.ts, validating name, displayName, binary, detect(), and a constant placeholder string for binary.db().query monkeypatches are shadowed by the tracing Proxy; SQL-statement-counting tests must use log.registerSink({ withDbSpan }).syncedColumns PRAGMA cache, so accidental mutation throws TypeError in strict mode rather than silently corrupting shared state.test: "vitest run" with pretest: "pnpm --filter @loreai/gateway run bundle", typecheck: "pnpm -r run typecheck", lint: "oxlint --type-aware", format:check: "oxfmt --check", build: "pnpm -r run build", and mutation: "stryker run".