Dashboard › opencode › Distillation
6597b25b-abb3-4f6b-a05a-1f357375e12b["lore_tm_v1_bDQdPI5rPQljTyQknlCunpbzTgzzXZKXShrgU0qVYAw","lore_tm_v1_nSeRisRE0up2Dt6s-UH4cHCdiCpSiCRu2LrC559Rcv4","lore_tm_v1_zI0NDb9yzZatybxT5LyPpE59KEqvuM7HcrninLBFFII","lore_tm_v1_S1ttNANRZk1KhVFSngjgxH5B9FwfD1LKlFFRCMIThrc","lore_tm_v1_KwWso7Is8-Yu4rlMDksIsGWUYOyBhlhunN7YFSmAujk","lore_tm_v1_C2TwGLvCaMkZe9_doE_zSxEeDnlzmx9Qm7k0RA0-qV4","lore_tm_v1_IUI0_f_txrXKK9lkK8j9ABCS4aliZr2Qv5nAlDK3jJg","lore_tm_v1_dlzJ-u9LRjv6GHXcbYUgJ_uzV8aTV_RmW3nCcZiGHfs"]
jj) invariant: “jj never fails on conflict.” Conflicts are recorded in the resulting commit after operations such as rebase, new, or squash, then detected with jj st and resolved by editing files rather than using interactive jj resolve.jj workflow rules for repositories containing .jj/: use jj rather than git for mutations; never use -i/--interactive; always pass -m "msg" to describe/commit commands; verify mutations with jj st and jj log; prefer stable letter-form change IDs over hexadecimal commit IDs; and avoid rebasing or describing immutable commits./home/byk/Code/opencode-lore-v2/packages/opencode/dist contains exactly 2 entries: server.js and server.js.map./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:268-270 exposes only server_default as default; no additional named export appears at the end of the artifact./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:69-71 defines gatewayPackage = "@loreai/gateway", knownGatewayPorts = [3207, 5673], and module-global gatewayLeasePromise./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:72-96 implements acquireServerRuntime(projectPath, dependencies = {}): it disables activation during tests unless LORE_OPENCODE_FORCE_ACTIVE === "1", disables on LORE_DISABLED === "1" or "true", acquires a gateway lease, obtains (dependencies.gitRemote ?? getGitRemote)(projectPath) ?? "", releases the lease if git-remote lookup throws, and returns an idempotent release() guarded by released./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:98-116 implements concurrent acquireGatewayLease(resolveGateway): callers share gatewayLeasePromise; custom resolveGateway() results are extended with { refs: 0 }; a lease whose closing promise exists is awaited before retrying; successful acquisition increments lease.refs; failed acquisition clears gatewayLeasePromise only when it still equals the failed promise./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:118-136 implements createGatewayLease(): it first calls resolveGatewayUrl(), otherwise dynamically imports @loreai/gateway, calls startGateway({ quiet: true, local: true }), uses http://127.0.0.1:${handle.port}, and includes shutdown: handle.shutdown only when handle.owned is truthy./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:138-163 gateway discovery order is: reachable LORE_REMOTE_URL; reachable LORE_GATEWAY_URL; port from dynamically imported @loreai/gateway via readPortFile(); then known ports 3207 and 5673; otherwise null. Unreachable LORE_REMOTE_URL logs that discovery is falling through locally./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:164-176 implements releaseGatewayLease(lease): decrements lease.refs, returns while refs remain positive, sets lease.closing to invoke optional lease.shutdown(), clears the shared gatewayLeasePromise in finally if it still matches the captured active promise, and awaits closing./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:177-195 builds gateway headers including x-lore-session-id, x-lore-agent, x-lore-project, x-lore-git-remote, and x-lore-provider; conditionally adds x-parent-session-id and x-lore-upstream-url; and filters LORE_UPSTREAM_EXTRA_HEADERS so it does not forward x-lore-*, x-api-key, x-goog-api-key, or authorization./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:198-202 defines 3 hidden subagent workers in order: 1. lore-distill — “Lore memory distillation worker”; 2. lore-curator — “Lore knowledge curator worker”; 3. lore-query-expand — “Lore query expansion worker”./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:205-235 plugin setup acquires runtime using ctx.location.project.directory, registers the worker transform, and registers model.request; the model hook calls ctx.session.get({ sessionID: event.sessionID }).catch(() => void 0), omits parentID when lookup fails or has no parent, assigns generated headers to event.headers, and changes event.baseURL to ${runtime.gatewayBase}/v1 only when x-lore-upstream-url exists./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:236-244 registers http.request and replaces event.request with await rewriteRequest(event.request, runtime.gatewayBase, {})./home/byk/Code/opencode-lore-v2/packages/opencode/dist/server.js:245-265 setup failure cleanup uses Promise.allSettled() over all completed registration disposals plus runtime.release(), then rethrows the original setup error. Normal cleanup is idempotent via cleaned, also uses Promise.allSettled(), and throws new AggregateError(failures, "Lore plugin cleanup failed") if any disposal or runtime release rejects./home/byk/Code/opencode-lore-v2/packages/core/package.json identifies @loreai/core version 0.40.0; main is ./dist/node/index.js; top-level types is ./dist/node/index.d.ts; package export "." maps types to ./dist/types/index.d.ts, development to ./src/index.ts, bun to ./dist/bun/index.js, and default to ./dist/node/index.js; published files include src/, dist/, README.md, and LICENSE; Node requirement is >=22.5./home/byk/Code/opencode-lore-v2/package.json configures pnpm@10.28.0, Volta Node 24.16.0, workspaces packages/*, root build command pnpm -r run build, and postinstall command pnpm --filter @loreai/gateway run build./home/byk/Code/opencode-lore-v2/.craft.yml:15-16 requires release status contexts "test" and "Generate Release Patches"; lines 25-28 consume CI artifacts npm-tarball, release-binaries, and release-patches./home/byk/Code/opencode-lore-v2/.craft.yml:29-57 defines npm publication for 4 workspace packages via workspaces: true; a legacy opencode-lore target filtered by /^opencode-lore-\d.*\.tgz$/; and generated native ONNX Runtime packages filtered by /^loreai-onnxruntime-.*\.tgz$/./home/byk/Code/opencode-lore-v2/.github/workflows/ci.yml:429-451 release branches run pnpm run build, then pack packages/core, packages/opencode, packages/pi, and packages/gateway with pnpm pack --pack-destination ../../dist-tarballs; comments state pnpm pack is required because it rewrites workspace:* dependencies to actual package versions, whereas npm pack leaves literal workspace:* and breaks installs./home/byk/Code/opencode-lore-v2/.github/workflows/ci.yml:454-462 creates the legacy opencode-lore-${version}.tgz by extracting loreai-opencode-${version}.tgz, changing only package/package.json name to "opencode-lore" with jq, and repacking the package directory./home/byk/Code/opencode-lore-v2/.github/workflows/ci.yml:464-469 runs pnpm tsx packages/gateway/script/pack-ort-npm.ts --version "$version" --tarballs "$GITHUB_WORKSPACE/dist-tarballs" to pack all 6 native ONNX Runtime platform packages and inject them as optional dependencies into the gateway tarball, with bundled WASM as the dist-only fallback./home/byk/Code/opencode-lore-v2/.github/workflows/ci.yml:525-530 uploads all dist-tarballs/*.tgz as the npm-tarball release artifact.