Dashboard › opencode › Distillation
Distillation
ID: b2d492d9-8bf1-4cd8-ab44-ad6ba526c425
Generation: 0
Tokens: 957
R_compression: 15.071
C_norm: 0.000
Archived: Yes
Created: 2026-09-15 14:00:22
Source IDs:
["lore_tm_v1_dQDoTEIh_5tMuTP_7iBFiborZMTzKTcjMhS1_zufsZI"]
Observations
Date: Sep 15, 2026
- π΄ (13:53) User requires plugin activation teardown to update inventory and release activation-lock ownership before asynchronously closing scopes; joining disabled-plugin finalizers while holding the activation lock or readiness hold can deadlock when user finalizers await readiness. The readiness token must always be released even if cleanup or reporting fails. Documented in
/home/byk/Code/opencode/.lore.md line 225.
- π΄ (13:53) User stated βalways provide itβ; the referenced object was not included in the visible excerpt.
- π΄ [enforced-workflow] (13:53) User requires always following repository-specific workflows and house style: inspect and obey local instructions, existing code patterns, and authoritative references before researching, editing, building, or validating; use relevant package directories and exact project commands rather than prohibited repository-root commands; for Effect work, verify current Effect v4/effect-smol APIs in
.opencode/references/effect-smol and nearby code; preserve documented architecture, dependency direction, error semantics, import rules, testing conventions, and generated-file workflows; avoid speculative abstractions. Documented in /home/byk/Code/opencode/.lore.md line 409.
- π΄ (13:53) User requires always treating the newest assistant turn as authoritative: inspect only the latest assistant row when finding current or recoverable work; never fall back to an older incomplete row when the latest row is completed; scope projection updates, streaming events, tool-state changes, and recovery actions to the owning assistant message ID; never resume superseded incomplete projections. Documented in
/home/byk/Code/opencode/.lore.md line 499.
- π΄ (13:53) User requires durable lease/epoch fencing whenever OpenCode runs in a cluster. Every acquisition, renewal, event commit, phase transition, context update, and provider/tool dispatch must match the fencing token, require an unexpired lease, and affect exactly one row; only expired claims may be replaced. Claim IDs and owner IDs alone are insufficient because an expired runner could renew or mutate after takeover, and same-owner re-entry could overwrite a live claim. Documented in
/home/byk/Code/opencode/.lore.md line 568.
- π΄ (13:53) User requires clustered session execution and recovery to use durable leases and unique execution IDs, verify ownership at provider, tool, and durable event-publication boundaries, and make lifecycle mutations atomic with event commits. Expired or uncertain executions must be reconciled before waking pending inputs; claims are preserved only for genuinely interrupted work; superseded executions must not recover; replayable projectors remain separate from local operational state.
- π΄ [requested-tests] (13:53) User requires focused regressions for clustered session-execution takeover, restart, replay idempotency, claim lifecycle, duplicate recovery, and stale-owner fencing, followed by typechecks, affected tests, and migration validation.
- π΄ (13:53) User requires Session execution and recovery work to remain frozen until correctness and security reviews pass. Provider/tool outcomes after crashes must be treated as unknown, with no silent re-execution of uncertain side effects; unresolved lifecycle or integrity findings prohibit reloading the active server, merging, or publishing. Combined review blockers must be fixed and validated in isolation, fresh approvals obtained, and then one controlled reload performed.
- π‘ (13:53) Repository note on legacy V1 durability: transcript events and SQL projections are durable, but
SessionRunState, public busy/retry status, permissions, background jobs, and execution ownership remain instance-memory state. Transcript reconciliation was chosen over automatic restart replay because startup has no recovery scan or durable attempt boundary, leaving interrupted provider/tool work uncertain and permitting another process to execute the same Session concurrently.
- π‘ (13:53) Repository note on physical attempts: each physical attempt of a logical Step uses exactly one explicit
llm.stream(request) and reloads projected history before continuation. This was chosen over an in-memory tool loop to keep continuation durable and replayable; the LLM executor may still retry retryable transport failures, and overflow recovery permits only one rebuilt attempt before durable output or side effects.
- π‘ (13:53) SQLite migration trap for
session_execution: adding expires_at integer NOT NULL directly fails when an upgraded database already contains rows. Required migration sequence: add a nullable or defaulted column, backfill existing rows using an explicit expiry policy, then enforce NOT NULL through a table rebuild if needed. Documented in /home/byk/Code/opencode/.lore.md line 315.