Dashboard › opencode › Distillation
Distillation
ID: 121fb18d-4884-4fa4-8565-27d74b544782
Generation: 0
Tokens: 418
R_compression: 3.231
C_norm: 0.000
Archived: Yes
Created: 2026-09-17 08:58:44
Source IDs:
["lore_tm_v1_FryKV3qu57ZMGwxiJ-lV_xAG_ysB6B8oHp3ZvJNKC4g"]
Observations
Date: Sep 17, 2026
- 🔴 [required-ownership-invariant] (01:38) User specified the provider-dispatch invariant: “never dispatches a provider after ownership changes”.
- 🔴 [required-ownership-invariant] (01:38) User specified the streamed-output invariant: “never publishes streamed output after ownership changes”.
- 🔴 [required-ownership-invariant] (01:38) User specified the local-tool invariant: “never starts a local tool after ownership changes”.
- 🔴 [required-ownership-invariant] (01:38) User specified the interrupted-tool invariant: “never fails interrupted tools after ownership changes”.
- 🔴 [required-continuation-invariant] (01:38) User specified the hosted-tool reconciliation invariant: “never commits continuation before unresolved hosted tools are reconciled”.
- 🟡 (01:38) The supplied test patch imports
asc, eq, and sql from "drizzle-orm".
- 🟡 (01:38) Hosted-tool reconciliation coverage installs trigger logic matching
NEW.type = 'session.next.tool.failed.1' and queries EventTable.type for "session.next.step.ended.2".
- 🟡 (01:38) Ownership-change test coverage uses
LLMEvent.textEnd({ id: "text-final" }) and LLMEvent.stepFinish({ index: 0, reason: "tool-calls" }).
- 🟡 (01:38) Tool/finalizer fixtures include tools named
declined_with_finalizer and blocked_with_finalizer; the streamed blocked call uses ID "call-blocked-finalizer" and name "blocked_with_finalizer".
- 🟡 (01:38) The patch resets
modelResolveHook = Effect.void and inspects assistant messages via (yield* session.context(sessionID)).find((message) => message.type === "assistant") and .filter((message) => message.type === "assistant").